在 CentOS 系統中,iptables 是一個用于配置內核防火墻的命令行工具
查看當前的 iptables 規則:
使用以下命令查看當前的 iptables 規則:
sudo iptables -L -n -v
這將顯示所有鏈(INPUT、OUTPUT 和 FORWARD)的規則,以及每個規則的詳細信息(如目標、協議、輸入/輸出接口等)。
清除所有 iptables 規則:
如果你想從零開始調試 iptables 規則,可以先清除所有現有規則:
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
逐條添加規則并測試:
為了避免一次性添加過多規則導致問題,建議逐條添加規則并進行測試。例如,如果你想允許來自特定 IP 地址的 SSH 連接,可以添加以下規則:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
然后,嘗試從該 IP 地址連接到服務器,以驗證規則是否生效。
使用日志記錄:
為了更好地了解規則匹配情況,可以在 iptables 規則中添加日志記錄。例如:
sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH connection attempt: "
這將在系統日志中記錄所有嘗試連接到 SSH 服務的活動。你可以使用以下命令查看日志:
sudo tail -f /var/log/messages
使用 iptables-save 和 iptables-restore:
如果你想保存當前的 iptables 配置并在其他系統上恢復它,可以使用以下命令:
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v4
這可以幫助你在不同的系統之間遷移或備份 iptables 配置。
通過以上方法,你可以逐步調試 CentOS 系統中的 iptables 規則,以找到適合你需求的配置。