在Debian系統中,使用iptables進行防火墻規則配置時,可以通過編寫腳本來實現自動化。以下是一個簡單的示例,展示了如何使用腳本自動化地添加、刪除和保存iptables規則。
iptables.sh
的腳本文件:#!/bin/bash
# 清除現有規則
iptables -F
iptables -X
# 設置默認策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允許本地回環接口的流量
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 允許已建立的連接和相關的數據包通過
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允許SSH連接
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
# 允許HTTP和HTTPS連接
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
# 保存規則
iptables-save > /etc/iptables/rules.v4
# 重啟iptables服務以應用新規則
iptables-restore < /etc/iptables/rules.v4
chmod +x iptables.sh
./iptables.sh
這個腳本會清除現有的iptables規則,設置默認策略,允許本地回環接口的流量,允許已建立的連接和相關的數據包通過,允許SSH、HTTP和HTTPS連接,并保存規則。
你可以根據自己的需求修改腳本中的規則。在運行腳本之前,請確保你了解腳本中的每一條規則,以免意外地阻止了自己的訪問。
注意:在Debian 10及更高版本中,系統默認使用nftables
作為防火墻。如果你使用的是這些版本,請考慮使用nftables
而不是iptables
。