iptables设置输出默认为DROP

我有两个服务器:一个networking,一个数据库。 数据库服务器在专用networking上。

我以为我需要将Web服务器上的默认OUTPUT限制为DROP,并将OUTPUT规则创build为ACCEPT。但是,当OUTPUT默认设置为DROP时,Web服务器无法访问数据库服务器。 eth0是公开的,eth1是私有的。 我在这里错过了什么?

networking服务器

-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 

你的规则是完全矛盾的或多余的。 您接受eth0上的所有传出stream量,但添加更多特定规则。 您使用-m tcp-p tcp已经加载模块。 你使用-m conntrack --ctstate同时你也写了不推荐的-m state --state等等。这需要一个很大的清理会话。

但主要的是你倒立的运动和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 

一个固定的configuration应该是这样的:

 -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