Ubuntu
iptables 阻止除 http/https/ssh 之外的所有內容
我的 vps 上有這個 iptables 配置,它應該執行 Wordpress。我想要做的是阻止每個傳入的請求,除了埠 80 上的 http、埠 443 上的 https 和埠 22 上的 ssh。
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 f2b-sshd tcp -- anywhere anywhere multiport dports ssh Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain f2b-sshd (1 references) num target prot opt source destination 1 REJECT all -- [retracted_ip] anywhere reject-with icmp-port-unreachable 2 REJECT all -- [retracted].com anywhere reject-with icmp-port-unreachable 3 RETURN all -- anywhere anywhere
我在網上找到了一些命令,但我不確定它們是否會與 fail2ban 衝突。
一般來說:
防火牆規則按照設置和出現的順序進行處理(在 、 和/或類似命令的輸出
iptables -L -v -n --line-numbers
中)iptables -L -v -n -t nat --line-numbers
。iptables-save
在錯誤的鍊和/或錯誤的順序中創建新規則將導致不良後果、破壞功能、安全性和/或鎖定有效流量。
請注意,執行低級
iptables
命令來管理防火牆可能並不總是最好的解決方案。據我所知,在 Ubuntu 中使用 UFW 工具是首選,並且可以與 fail2ban 一起可靠地工作。Fail2ban 創建一個或多個自定義鏈(處理大部分用於阻止特定行為不端的 IP 地址的繁重工作),例如該
f2b-sshd
鏈。通常你讓 fail2ban 管理這些鏈中的條目。此外,fail2ban 為它在鏈中創建的自定義鏈創建規則
INPUT
。通常,這些規則必須在您創建的任何其他規則之前出現在鏈中。INPUT
在您目前的防火牆配置中,當您使用帶有
-A
開關的 iptables 將新規則附加到 INPUT 鏈時,一切都應該正常工作。執行以下命令將附加正常規則以創建允許 ssh、http 和 https 並阻止所有其他傳入流量的防火牆。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited