У меня solr (веб-сервер http, используемый для поиска) работает на порту 8334, сервер обмена сообщениями rabbitmq работает на порту 6633.
На той же машине у меня есть веб-сервер, доступ к которому осуществляется из внешнего мира.
Как я могу защитить сервер solr и rabbit-mq, чтобы никто из внешней сети не мог получить доступ к порту сервера tcp? Это означает, что серверы solr и rabbit-mq должны вызываться только на локальной машине.
Я запускаю веб-сервер, сервер базы данных, solr и rabbitmq в одной системе. Я использую сервер ubuntu 9.10.
может кто-нибудь помочь мне в этом?
Другой хороший (и простой) способ разрешить только локальный доступ к сервисам - это привязать ваши сервисы к 127.0.0.1 ...
Разве у вас нет брандмауэра или хотя бы NAT-маршрутизатора между интернетом и вашим сервером? При этом вы должны настроить переадресацию портов для портов, которые прослушивает ваш общедоступный веб-сервер.
И вам следует подумать о том, чтобы поместить сервер в DMZ. Это избавит от необходимости подключать весь Интернет в вашу локальную сеть.
Изменяя iptables, вы можете ограничить определенные порты диапазоном IP-адресов: (Измените диапазон IP для вашей LAN)
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
Базовый брандмауэр IPtables должен быть в состоянии остановить кого-либо от доступа к любому порту, к которому вы не хотите, чтобы люди получали доступ.
Просто разрешите tcp 80 и 443 (или другие порты, которые вы используете для своего веб-сервера) и запретите все остальное.
http://easyfwgen.morizot.net/gen/
Должно быть хорошей отправной точкой.