在Debian系统中,编写iptables脚本可以帮助你自动化地配置防火墙规则。以下是一个简单的示例脚本,用于设置基本的iptables规则。这个脚本将允许SSH、HTTP和HTTPS流量,并拒绝所有其他流量。
sudo nano /etc/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服务以应用新规则
systemctl restart netfilter-persistent
保存并关闭文件。
使脚本可执行:
sudo chmod +x /etc/iptables.sh
sudo /etc/iptables.sh
这个脚本将清除现有的iptables规则,设置默认策略为拒绝所有输入和转发流量,允许本地回环接口的流量,允许已建立的连接和相关流量,允许SSH、HTTP和HTTPS连接,并保存规则。
请注意,这个脚本只是一个基本的示例,你可能需要根据你的具体需求进行调整。在应用任何防火墙规则之前,请确保你了解这些规则的含义以及它们对你的系统的影响。