我正在尝试远程登录到端口 50000 上的主机,我已验证该主机正在侦听 DB2 实例 (db2inst1)。
telnet [host] 50000
telnet [ip_adress] 50000
但它给出了错误:连接超时
我检查了 /etc/sysconfig/iptables 文件,端口 50000 的防火墙规则已正确设置(它们已保存并重新启动了 iptables 服务):
-A INPUT -p tcp -m tcp --dport 50000 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 50000 -j ACCEPT
但我仍然无法远程登录到该端口。我禁用了该服务iptables
,但它允许我连接,这意味着防火墙规则有问题。
答案1
您的防火墙规则不起作用的问题是,当一台计算机连接到您的数据库服务器时,从数据库服务器的角度来看,它确实是目标端口;然而,当数据包离开数据库服务器时,从数据库服务器的角度来看,数据库服务/侦听端口是源端口。
因此,直接纠正您的规则应该是:
-A INPUT -p tcp -m tcp --dport 50000 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 50000 -j ACCEPT
还要注意多个守护进程经常需要的本地主机连接;您可能需要在规则的顶部:
-A INPUT -i lo -j ACCEPT
-A OUTPUT -i lo -j ACCEPT
根据您的安全要求和规则数量,我会看看ESTABLISHED 和 RELATED 指令。它将允许您使用状态防火墙感知规则来简化规则。
ESTABLISHED 表示数据包与已在两个方向上看到数据包的连接关联,NEW 表示数据包已启动新连接,或以其他方式与未在两个方向上看到数据包的连接关联,RELATED 表示数据包正在启动新连接,但与现有连接相关联,例如 FTP 数据传输或 ICMP 错误。