Centos

如何在不被鎖定的情況下配置 CentOS Iptables

  • April 1, 2022

我正在嘗試應用這些防火牆規則:

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -m state --state INVALID -j DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
/sbin/iptables -A OUTPUT -m state --state INVALID -j DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
/sbin/iptables -A FORWARD -m state --state INVALID -j DROP
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -A FORWARD -i lo -o lo -j ACCEPT
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X
/sbin/iptables -t mangle -Z
/sbin/iptables -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P INPUT ACCEPT
/sbin/iptables -t mangle -P FORWARD ACCEPT
/sbin/iptables -t mangle -P POSTROUTING ACCEPT
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t nat -Z
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 12443 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 11443 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 11444 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 8447 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 8443 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 8880 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 21 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 22 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 587 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 465 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 995 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 993 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 106 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 5432 -j DROP

/sbin/iptables -A INPUT -p tcp --dport 9008 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 9080 -j DROP

/sbin/iptables -A INPUT -p udp --dport 137 -j DROP
/sbin/iptables -A INPUT -p udp --dport 138 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 139 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 445 -j DROP

/sbin/iptables -A INPUT -p udp --dport 1194 -j DROP




/sbin/iptables -A INPUT -p tcp --dport 26 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 2095 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 2096 -j ACCEPT

/sbin/iptables -A INPUT -p udp --dport 465 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 26 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 37 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 43 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 113 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 465 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 873 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --dport 2089 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp --dport 465 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp --dport 873 -j ACCEPT




/sbin/iptables -A INPUT -p icmp --icmp-type 8/0 -j DROP

/sbin/iptables -A INPUT -j DROP

/sbin/iptables -A OUTPUT -j ACCEPT

/sbin/iptables -A FORWARD -j DROP

但是,當我將它們複製並粘貼到命令行時,我被鎖定在伺服器之外(當然,因為規則是逐行應用的)。我如何一次應用這些規則,因為 /sbin/iptables -P INPUT DROP 首先執行,但是允許 shell 訪問的行在後面(我已經刪除了它以保護我的 IP。

我不會試圖通過將它們粘貼到終端來執行它們。我會將它們 scp 並從單個腳本執行它們(可能只是一個 bash 腳本,它們都粘貼在其中。

在您擁有的數據量差不多的情況下,我遇到過將其粘貼到 ssh 終端實際上導致一些數據失去的情況(因為失去了幾行)。在這樣的事情上,這真的不是一個好主意。顯然,發生這種情況的可能性取決於鏈路質量和頻寬。

另外,如果您正在使用 iptables 並且擔心自己可能會被鎖定,請設置一個腳本來清除 iptables(或將它們設置為您喜歡的工作),然後設置一個 cron 作業來執行它,或者讓在您應用規則時打開另一個視窗,只需執行“sleep 100 && ./cleariptables”或類似的操作。當新規則成功並且您確定您仍然可以登錄時,按 Ctrl+c

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