在Debian系統中,使用iptables編寫自定義腳本可以幫助你自動化地配置防火墻規則。以下是一個簡單的示例,展示了如何編寫一個自定義的iptables腳本。
創建腳本文件:
首先,創建一個新的腳本文件。例如,創建一個名為setup_iptables.sh
的文件:
nano setup_iptables.sh
添加腳本內容: 在腳本文件中添加以下內容。這個示例腳本將設置一些基本的防火墻規則,包括允許SSH、HTTP和HTTPS流量,并拒絕所有其他流量。
#!/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 -j ACCEPT
# 允許HTTP和HTTPS連接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允許ICMP echo請求(ping)
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# 記錄所有被拒絕的連接
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
# 保存規則
iptables-save > /etc/iptables/rules.v4
賦予腳本執行權限: 保存并關閉文件后,賦予腳本執行權限:
chmod +x setup_iptables.sh
運行腳本: 運行腳本來應用防火墻規則:
sudo ./setup_iptables.sh
持久化規則:
為了確保重啟后規則仍然有效,可以將規則保存到/etc/iptables/rules.v4
文件中,并在系統啟動時自動加載這些規則。你可以使用iptables-persistent
包來實現這一點。
安裝iptables-persistent
:
sudo apt-get update
sudo apt-get install iptables-persistent
在安裝過程中,選擇“是”以保存當前規則,并選擇“否”以避免在啟動時提示配置IPv6規則。
通過以上步驟,你就可以創建一個自定義的iptables腳本,并在Debian系統中應用這些規則。根據你的具體需求,可以進一步修改和擴展腳本中的規則。