Linux
-P INPUT ACCEPT 對 iptables 意味著什麼?
我對 iptables 還很陌生,我想弄清楚我是否正確配置了我的規則集。關於我的問題的**-P INPUT ACCEPT**部分,我試圖確定這在我要應用的規則的上下文中是否有效。請參閱下文了解更多詳情。
我已將iptables-restore與包含以下規則的文件一起使用。本質上,我試圖允許環回流量、已建立/相關的連接、SSH 和 HTTP。應拒絕所有其他流量。
*filter :fail2ban-ssh - [0:0] # Input chain rules -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh # Reject all other inbound traffic -A INPUT -j REJECT # Output chain rules -A OUTPUT -o lo -j ACCEPT -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT # Forward chain rules -A FORWARD -j REJECT # fail2ban-ssh chain rules -A fail2ban-ssh -s 146.0.77.33/32 -j REJECT --reject-with icmp-port-unreachable -A fail2ban-ssh -s 62.75.236.76/32 -j REJECT --reject-with icmp-port-unreachable -A fail2ban-ssh -j RETURN COMMIT
如果我執行iptables -S,我會收到以下輸出:
-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N fail2ban-ssh -A INPUT -i lo -j ACCEPT -A INPUT -s 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -o lo -j ACCEPT -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT -A fail2ban-ssh -s 146.0.77.33/32 -j REJECT --reject-with icmp-port-unreachable -A fail2ban-ssh -s 62.75.236.76/32 -j REJECT --reject-with icmp-port-unreachable -A fail2ban-ssh -j RETURN
我對 iptables 做了一些閱讀,我的理解是前幾行(例如,“- P INPUT ACCEPT ”)本質上意味著如果沒有其他規則適用,則預設操作是接受流量(在這種情況下,用於輸入、轉發和輸出)。
如果是這種情況,我是否應該在我的規則文件中明確放入以下行並再次恢復 iptables?
-P INPUT DROP -P FORWARD DROP -P OUTPUT DROP
非常感謝您閱讀此完整問題的任何人!這有點長,但我認為有必要包含上述所有細節以充分解釋我的場景。
要回答您實際提出的問題,策略應該出現在普通
iptables-save
文件中,而不是作為-P
規則的參數。相反,它們應該與您對任何自定義鏈的聲明及其策略一起出現在開頭,如下所示:
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] :fail2ban-ssh - [0:0]
自定義鏈的連字元是缺少策略參數,因為使用者定義的鏈沒有策略。
請注意,使用您編寫的防火牆,如果您將所有策略更改為
DROP
,您的伺服器將難以進行 DNS 查找,並且許多事情會意外失敗。