什么是iptables?

iptables是Linux系统内置的包过滤工具,用于配置NAT(网络地址转换)和防火墙规则。它通过操作内核的Netfilter模块实现网络流量控制,是Linux防火墙的核心组件。

iptables架构图

安装与启用

  1. 检查是否已安装
    sudo apt list --installed | grep iptables  # Debian/Ubuntu
    sudo yum list installed | grep iptables    # CentOS/RHEL
    
  2. 安装iptables
    • Debian/Ubuntu:
      sudo apt install iptables
      
    • CentOS/RHEL:
      sudo yum install iptables-services
      
  3. 启动服务
    sudo systemctl start iptables
    sudo systemctl enable iptables
    

基础命令结构

所有规则操作基于链(Chain),主要链包括:

  • INPUT:处理进入本机的流量
  • OUTPUT:处理离开本机的流量
  • FORWARD:处理转发的流量
  • PREROUTINGPOSTROUTING:用于NAT转换

常用命令格式

sudo iptables -t <表名> -A <链名> -s <源地址> -d <目标地址> -p <协议> --dport <端口> -j <动作>

常见规则配置

1. 允许SSH访问

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
SSH规则示例

2. 禁止所有流量

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP

3. 允许本地回环流量

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

4. 配置NAT转发

sudo iptables -t NAT -A POSTROUTING -o eth0 -j MASQUERADE

⚠️ 需配合FORWARD链允许转发:

sudo iptables -A FORWARD -i eth0 -j ACCEPT

规则保存与恢复

  • 保存规则(需安装iptables-save):
    sudo iptables-save > /etc/iptables/rules.v4
    
  • 恢复规则
    sudo iptables-restore < /etc/iptables/rules.v4
    

扩展阅读

图片示例

iptables规则链
iptables应用场景