Как обезопасить локальные серверы?
У меня solr (веб-сервер http, используемый для поиска) работает на порту 8334, сервер обмена сообщениями rabbitmq работает на порту 6633.
На той же машине у меня есть веб-сервер, доступ к которому осуществляется из внешнего мира.
Теперь, как я могу защитить сервер solr и rabbit-mq, чтобы никто из внешней сети не мог получить доступ к порту сервера tcp? Это означает, что сервер solr и rabbit-mq следует вызывать только на локальном компьютере.
Я запускаю веб-сервер, db server, solr и rabbitmq в одной системе. Я использую сервер Ubuntu 9.10.
Может ли кто-нибудь помочь мне в этом?
4 ответа
Другая хорошая (и простая) практика, разрешающая только локальный доступ к службам, - это привязка ваших служб к 127.0.0.1...
Изменяя iptables, вы можете ограничить определенные порты диапазоном IP-адресов: (Изменить диапазон IP-адресов для вашей локальной сети)
http веб-сервер, используемый для поиска:
-A INPUT -p tcp --destination-port 8334 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT
Сервер обмена сообщениями rabbitmq:
-A INPUT -p tcp --destination-port 6633 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT
У вас нет какого-то брандмауэра или хотя бы NAT-роутера между интернетом и вашим сервером? Для этого вы должны настроить переадресацию портов для портов, которые слушает ваш публичный веб-сервер.
И вы должны рассмотреть вопрос о помещении сервера в DMZ. Это исключило бы необходимость пропускать весь интернет в вашу локальную сеть.
Базовый брандмауэр IPtables должен иметь возможность запретить кому-либо доступ к любому порту, к которому вы не хотите, чтобы люди обращались.
Просто разрешите tcp 80 и 443 (или другие порты, которые вы используете для своего веб-сервера) и запретите все остальное.
http://easyfwgen.morizot.net/gen/
Должно быть хорошей отправной точкой.