在Ubuntu系统中,iptables
是一个用于配置Linux内核防火墙的命令行工具。你可以编写脚本来自动化iptables
规则的添加、删除和修改。以下是一些基本步骤和示例,帮助你开始使用iptables
脚本。
1. 创建一个基本的iptables脚本
首先,创建一个新的脚本文件,例如setup_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 state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state 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 # 允许特定IP地址访问 iptables -A INPUT -s 192.168.1.100 -j ACCEPT # 保存规则 iptables-save > /etc/iptables/rules.v4 # 重启iptables服务以应用新规则 systemctl restart netfilter-persistent
2. 赋予脚本执行权限
在终端中运行以下命令,赋予脚本执行权限:
chmod +x setup_iptables.sh
3. 运行脚本
运行脚本来应用iptables规则:
sudo ./setup_iptables.sh
4. 查看iptables规则
你可以使用以下命令查看当前的iptables规则:
sudo iptables -L -v -n
5. 持久化规则
在Ubuntu中,iptables
规则默认不会持久化。为了确保重启后规则仍然有效,你需要安装并配置netfilter-persistent
服务:
sudo apt-get update sudo apt-get install netfilter-persistent
在安装过程中,系统会提示你是否保存当前的iptables规则。选择“是”以保存规则。
6. 调试和日志
如果你遇到问题,可以启用iptables的调试和日志功能来帮助诊断问题。例如:
iptables -I INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH attempt: "
这将记录所有尝试连接到SSH端口的流量。
通过这些步骤,你可以创建和管理Ubuntu系统上的iptables
规则,并确保它们在系统重启后仍然有效。