我有 solr(用于搜索的 http web 服务器)在端口 8334 上运行,rabbitmq 消息服务器在端口 6633 上运行。
在同一台机器上,我有一个可以从外界访问的 Web 服务器。
现在我该如何保护 solr 和 rabbit-mq 服务器,以便外部网络的任何人都无法访问 tcp 服务器端口?这意味着 solr 和 rabbit-mq 服务器只能在本地计算机内调用。
我在同一个系统中运行 Web 服务器、数据库服务器、solr 和 rabbitmq。我使用 ubuntu 9.10 服务器。
有人可以帮我吗?
答案1
另一个允许仅本地访问服务的好的(且简单的)做法是将您的服务绑定到 127.0.0.1...
答案2
基本的 IPtables 防火墙应该能够阻止任何人访问您不希望人们访问的任何端口。
只需允许 tcp 80 和 443(或您用于 Web 服务器的其他端口)并拒绝所有其他端口。
http://easyfwgen.morizot.net/gen/
应该是一个很好的起点。
答案3
修改 iptables,你可以将特定端口限制在一定范围的 IP 上:(更改 LAN 的 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
答案4
互联网和服务器之间没有某种防火墙或至少 NAT 路由器吗?为此,您应该为公共 Web 服务器正在监听的端口配置端口转发。
你应该考虑将服务器放入 DMZ。这样就无需让整个互联网进入你的本地网络。