我的标准策略INPUT
设置为DROP
。
但是,由于此设置,我无法连接到外部邮件主机。我需要什么规则才能启用到此外部主机的连接?
请注意,这ping
也不起作用,尽管这只是为了测试目的(它不需要工作,但可能有助于找到根本问题)。
编辑
[root@webshop ~]# iptables -L -v -n
Chain INPUT (policy DROP 150 packets, 18963 bytes)
pkts bytes target prot opt in out source destination
378K 178M ACCEPT all -- * * xxxxxxxxxxxxx 0.0.0.0/0
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:56988 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:56988
628 42832 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,8181
7682 765K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,8181
Chain OUTPUT (policy ACCEPT 933 packets, 616K bytes)
pkts bytes target prot opt in out source destination
答案1
通信是双向的,您向另一台主机发送查询(通过 OUTPUT),另一台主机响应(通过 INPUT)。您当前的规则会导致所有响应被丢弃。尝试添加以下规则以接受这些响应:
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
如果没有此规则,TCP ACK 数据包、ICMP 回显应答等将会被丢弃,因为没有规则允许它们。