Debian iptables如何管理链

268
2025/2/22 0:32:50
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian系统中,iptables是一个用于配置Linux内核防火墙(netfilter)规则的工具。通过iptables,你可以管理不同的链(chains),这些链定义了数据包在网络栈中的处理流程。以下是一些常用的iptables命令和概念,帮助你管理链:

基本概念

  1. 链(Chains)
    • INPUT:处理进入本机的数据包。
    • OUTPUT:处理从本机发出的数据包。
    • FORWARD:处理经过本机转发的数据包。
    • PREROUTING:用于目标地址转换(DNAT)。
    • POSTROUTING:用于源地址转换(SNAT)。

常用命令

  1. 查看所有链的规则

    sudo iptables -L -n -v
    
    • -L:列出规则。
    • -n:以数字形式显示地址和端口。
    • -v:详细模式,显示更多信息。
  2. 查看特定链的规则

    sudo iptables -L INPUT -n -v
    
  3. 添加规则

    • INPUT链的末尾添加一条规则,拒绝所有来自特定IP的流量:
      sudo iptables -A INPUT -s 192.168.1.100 -j DROP
      
    • INPUT链的开头添加一条规则,允许SSH连接:
      sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
      
  4. 删除规则

    • 删除INPUT链中第一条规则:
      sudo iptables -D INPUT 1
      
    • 根据规则编号删除规则(需要先查看规则编号):
      sudo iptables -L INPUT --line-numbers -n -v
      sudo iptables -D INPUT <规则编号>
      
  5. 清空所有链的规则

    sudo iptables -F
    
    • -F:清空指定链的所有规则。
    • -t <表>:指定表(如filternatmangle)。
  6. 保存规则: Debian系统通常使用iptables-persistent来保存和恢复iptables规则。

    • 安装iptables-persistent
      sudo apt-get install iptables-persistent
      
    • 保存当前规则:
      sudo netfilter-persistent save
      
    • 恢复规则:
      sudo netfilter-persistent reload
      

示例

假设你想允许来自特定IP的SSH连接,并拒绝所有其他SSH连接,可以这样做:

  1. 允许特定IP的SSH连接:

    sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
    
  2. 拒绝所有其他SSH连接:

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

通过这些命令,你可以灵活地管理Debian系统中的iptables链和规则。记得在修改防火墙规则时要小心,以免意外阻止必要的网络流量。

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

推荐阅读: Debian Aliases在项目管理和组织中的作用