我有两个服务器:一个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