温馨提示×

Debian iptables如何管理链和表

小樊
40
2025-03-04 16:29:50
栏目: 智能运维
Debian服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian系统中,iptables是一个用于配置Linux内核防火墙(netfilter)规则的工具。它允许系统管理员定义规则来过滤流量和NAT(网络地址转换)。iptables规则被组织成不同的表(tables),每个表包含一组特定的链(chains)。以下是如何管理和操作这些链和表的基本指南:

表(Tables)

iptables有五个内置表:

  1. filter:默认表,用于控制流量是否被允许通过。
  2. nat:用于网络地址转换(NAT),如源地址转换(SNAT)和目的地址转换(DNAT)。
  3. mangle:用于特殊的数据包修改,比如更改TTL值。
  4. raw:用于配置免除连接跟踪的规则。
  5. security:用于强制访问控制(MAC)规则。

链(Chains)

每个表包含预定义的链,以及用户自定义的链:

  • INPUT:处理进入本机的数据包。
  • FORWARD:处理通过本机转发的数据包。
  • OUTPUT:处理从本机发出的数据包。
  • PREROUTING:用于目标地址转换(DNAT)的规则,在路由决策之前处理数据包。
  • POSTROUTING:用于源地址转换(SNAT)的规则,在路由决策之后处理数据包。

常用的iptables命令

  • 查看所有规则:

    sudo iptables -L -n -v
    
  • 清空所有规则:

    sudo iptables -F
    
  • 删除特定规则:

    sudo iptables -D INPUT 1
    

    这将删除INPUT链中的第一条规则。

  • 添加新规则:

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    

    这将添加一条规则,允许进入的SSH连接。

  • 允许已建立的连接:

    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
  • 保存规则:

    sudo iptables-save > /etc/iptables/rules.v4
    

    这将保存IPv4的规则。对于IPv6,使用iptables-save > /etc/iptables/rules.v6

  • 恢复规则:

    sudo iptables-restore < /etc/iptables/rules.v4
    

持久化iptables规则

在Debian系统中,iptables规则默认不会在重启后保留。要使规则持久化,可以使用iptables-persistent包。

安装iptables-persistent

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

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

如果你已经安装了iptables-persistent,但忘记了保存规则,可以手动保存:

sudo netfilter-persistent save

或者,如果你使用的是IPv6:

sudo netfilter-persistent save --ipv6

请注意,管理防火墙规则可能会影响系统的网络连接和安全性。在进行更改之前,请确保你了解每个命令的作用,并在生产环境中谨慎操作。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:Debian iptables如何与其他服务集成

0