![iptables 将输出默认设置为 DROP](https://linux22.com/image/646074/iptables%20%E5%B0%86%E8%BE%93%E5%87%BA%E9%BB%98%E8%AE%A4%E8%AE%BE%E7%BD%AE%E4%B8%BA%20DROP.png)
我有两台服务器:一台是 Web 服务器,一台是数据库服务器。数据库服务器位于私有网络上。
我认为我需要将 Web 服务器上的默认 OUTPUT 限制为 DROP,并创建 OUTPUT 规则以接受。但是,当 OUTPUT 默认设置为 DROP 时,Web 服务器无法访问数据库服务器。eth0 是公共的,eth1 是私有的。我在这里遗漏了什么?
网络服务器
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 10.131.181.201/32 -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 10.131.181.201/32 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 465 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 3306 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --sport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --sport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 465 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
答案1
您的规则完全自相矛盾或多余。您接受 eth0 上的所有传出流量,但随后又添加了更多特定规则。您使用-m tcp
时-p tcp
已经加载了模块。您使用-m conntrack --ctstate
时还写入了弃用-m state --state
等...这需要进行大规模清理。
但最主要的是,你颠倒了 sport 和 dport。
-A INPUT -i eth1 -p tcp -m tcp --dport 3306 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --sport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
应该 :
-A INPUT -i eth1 -p tcp -m tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
固定配置应如下所示:
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443,465 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 465 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -s 10.131.181.201/32 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -s 10.131.181.201/32 -p tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp --sport 465 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT