ubuntu

Ubuntu iptables如何使用脚本

小樊
55
2025-03-10 05:35:05
栏目: 智能运维

在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规则,并确保它们在系统重启后仍然有效。

0
看了该问题的人还看了