Security
iptables 設置輸出預設為 DROP
我有兩台伺服器:一台網路,一台數據庫。db 伺服器位於專用網路上。
我想我需要將 Web 伺服器上的預設 OUTPUT 限制為 DROP,並將 OUTPUT 規則創建為 ACCEPT 但是當 OUTPUT 預設設置為 DROP 時,Web 伺服器無法訪問 db 伺服器。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
你的規則是完全矛盾的或多餘的。您接受 eth0 上的所有傳出流量,然後添加更具體的規則。您
-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
固定配置應如下所示:
-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