试图清除我的 RedHat Linux 服务器中的防火墙设置。
给出之后iptables -F
,我无法访问服务器。
# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:diamondport
ACCEPT tcp -- anywhere anywhere tcp dpt:33336
ACCEPT sctp -- anywhere anywhere sctp dpts:1024:65535
ACCEPT udp -- anywhere anywhere udp dpt:gtp-user
ACCEPT udp -- anywhere anywhere udp dpts:6000:lm-x
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
# iptables -F
请帮我解决这个问题。
答案1
当你运行 iptables -F 时,你将删除每个链中的所有规则。但是,每个链都有一个政策您没有删除,在您的情况下,删除的是 INPUT 链的 DROP。因此,您删除了所有规则,并对任何不匹配规则的流量应用 DROP 策略,这意味着所有内容都会被丢弃。
您可以通过运行以下命令来确认这一点:iptables -L -n。您应该会看到类似以下内容:
Chain INPUT (policy DROP)
target prot opt source destination
[it's empty]
这是正常行为。您可以更改默认策略,但这会导致安全性方面完全不同的行为:如果没有匹配的规则,流量将始终被接受,这可能不是您想要的。
最好的办法是避免在修改 iptables 策略时刷新并保存它们,以使它们持久化iptables-save
。这样,您可以保存以前的配置并iptables-restore < rules.bak
根据需要恢复它()或修改它。
答案2
控制台重启后即可访问主机。谢谢