温馨提示×

Ubuntu iptables如何添加新的规则

小樊
64
2025-05-23 17:48:04
栏目: 智能运维

在 Ubuntu 系统中,iptables 是一个用于配置内核防火墙(netfilter)规则的命令行工具。要添加新的 iptables 规则,你可以使用 iptables 命令及其各种选项。以下是一些基本步骤和示例,帮助你添加新的规则:

1. 查看当前的 iptables 规则

在添加新规则之前,建议先查看当前的规则,以确保不会意外覆盖或冲突现有的规则。

sudo iptables -L -n -v

2. 添加新的 iptables 规则

允许特定 IP 地址访问

例如,允许 IP 地址 192.168.1.100 访问你的服务器:

sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT

允许特定端口访问

例如,允许 TCP 端口 80(HTTP)和 443(HTTPS)的流量:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

拒绝特定 IP 地址访问

例如,拒绝 IP 地址 192.168.1.101 访问你的服务器:

sudo iptables -A INPUT -s 192.168.1.101 -j DROP

允许特定协议访问

例如,允许 ICMP(ping)请求:

sudo iptables -A INPUT -p icmp -j ACCEPT

3. 保存 iptables 规则

默认情况下,iptables 规则在系统重启后会丢失。为了使规则在重启后仍然有效,你需要保存规则。

使用 iptables-persistent 保存规则

Ubuntu 提供了一个名为 iptables-persistent 的包,可以用来保存和恢复 iptables 规则。

  1. 安装 iptables-persistent

    sudo apt-get update
    sudo apt-get install iptables-persistent
    

    在安装过程中,系统会提示你是否保存当前的 iptables 规则。选择“是”。

  2. 手动保存规则:

    sudo netfilter-persistent save
    sudo netfilter-persistent reload
    

4. 删除 iptables 规则

如果你需要删除某个规则,可以使用 iptables -D 命令。例如,删除之前添加的允许 192.168.1.100 访问的规则:

sudo iptables -D INPUT -s 192.168.1.100 -j ACCEPT

注意事项

  • 修改 iptables 规则时要小心,错误的规则可能导致服务器无法访问。
  • 在生产环境中,建议在进行任何更改之前备份当前的 iptables 规则。
  • 如果你使用的是 UFW(Uncomplicated Firewall),则需要使用 ufw 命令来管理防火墙规则,而不是直接使用 iptables

通过以上步骤,你应该能够在 Ubuntu 系统中成功添加新的 iptables 规则。

0