Linux

-P INPUT ACCEPT 對 iptables 意味著什麼?

  • April 24, 2016

我對 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 查找,並且許多事情會意外失敗。

引用自:https://serverfault.com/questions/766198