iptables 配置错误阻止传出连接

iptables 配置错误阻止传出连接

这是我设置的规则..

iptables -P INPUT DROP
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT

当我尝试建立传出连接时,连接被阻止了。

少了什么东西?


以下是输出iptables -n -L

    Chain INPUT (policy DROP)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           source IP range 93.0.0.0-93.255.255.255 
           tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW recent: SET name: DEFAULT side: source 
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW recent: UPDATE seconds: 60 hit_count: 15 name: DEFAULT side: source 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

注意..第一条规则用于阻止特定范围,接下来的两条规则用于限制任何人在 60 秒内可以发出的请求数量。

答案1

我没有看到任何允许传出连接的规则。你为什么认为它应该起作用?也许你忽略了一个事实,如果你建立传出连接端口 80,返回数据包为端口 80,不是端口 80。

如果你想建立联系端口 80,您有两种方法让返回数据包进入:

1)允许数据包端口 80。

2) 允许属于现有会话的数据包。

我没有看到任何证据表明你做过这两件事。

答案2

为了详细说明戴维的回答,您可以通过在表中添加以下规则来允许属于现有会话的数据包filter

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许ESTABLISHED状态下的输入数据包将允许大多数传出连接按预期工作,包括非 TCP“无连接”内容,例如 DNS 查询(UDP)和 ping(ICMP)。

允许RELATED状态下的输入数据包使您能够接收可能因连接到管理上禁止的端口/主机/网络等的连接尝试而返回的 ICMP 错误消息。

相关内容