我在使用启用了 iptables 的 Tomcat 7 时遇到了以下问题。
1)也就是说,我运行的是 Tomcat 7 实例服务器-1(直接暴露),并且此 Tomcat 实例托管 REST Web 服务。Tomcat 本身配置了 SSL(NIO,而非 APR/native),并带有clientAuth="true"
. 密钥库、证书,一切似乎都已设置好并正常运行。
在此服务器上,iptables 已启动并运行,允许所有来自服务器-2,过滤器 INPUT 链中的最后一条规则是:
-A 输入 -j 拒绝 --拒绝 icmp 主机禁止
现在,从服务器-2,我尝试调用 web 服务但由于连接/读取超时异常而失败。
2) Tomcat 无法关闭 - 当我尝试通过其关闭脚本关闭它时,我收到“没有路由到主机”异常消息。
一旦在 iptables 中指定的最后一条规则服务器-1被删除后,两个问题都消失了...两台服务器都运行 CentOS 6 64。
有人可以解释一下吗?
编辑
以下是所有其他当前的 INPUT 规则:
// VPN 相关
-A 输入 -s xx.xx.xx.xx -j 接受
-A 输入 -i eth0 -p tcp -m tcp --dport 1723 -j 接受
-A 输入 -i eth0 -p gre -j 接受
-A 输入 -m state --state RELATED,ESTABLISHED -j 接受
-A 输入 -i eth0 -p udp -m udp --dport 1701 -j 接受 -A
输入 -i eth0 -p udp -m udp --dport 4500 -j 接受 -A 输入
-i eth0 -p udp -m udp --dport 443 -j 接受
-A 输入 -i eth0 -p tcp -m tcp --dport 443 -j 接受
-A 输入 -i eth0 -p udp -m udp --dport 500 -j 接受 -A
输入 -i eth0 -p tcp -m tcp --dport 1701 -j 接受
// FreeRadius
-A 输入 -i eth0 -p tcp -m tcp --dport 1812 -j 接受 -A
输入 -i eth0 -p tcp -m tcp --dport 1813 -j 接受
-A 输入 -i eth0 -p udp -m udp --dport 1812 -j 接受
-A 输入 -i eth0 -p udp -m udp --dport 1813 -j 接受
// Tomcat
-A 输入 -i eth0 -p tcp -m tcp --dport 4445 -j 接受
-A 输入 -i eth0 -p tcp -m tcp --dport 8345 -j 接受
-A INPUT -i eth0 -p tcp -m tcp --dport 8007 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 4445 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 8345 -j ACCEPT
// 允许来自服务器 2 的所有内容
-A INPUT -i eth0 -s xx.xx.xx.xx -j ACCEPT
// 系统
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
// 拒绝
-A INPUT -j REJECT --reject-with icmp-host-prohibited