什么是iptables?
iptables是Linux系统内置的包过滤工具,用于配置NAT(网络地址转换)和防火墙规则。它通过操作内核的Netfilter模块实现网络流量控制,是Linux防火墙的核心组件。
安装与启用
- 检查是否已安装
sudo apt list --installed | grep iptables # Debian/Ubuntu sudo yum list installed | grep iptables # CentOS/RHEL
- 安装iptables
- Debian/Ubuntu:
sudo apt install iptables
- CentOS/RHEL:
sudo yum install iptables-services
- Debian/Ubuntu:
- 启动服务
sudo systemctl start iptables sudo systemctl enable iptables
基础命令结构
所有规则操作基于链(Chain),主要链包括:
INPUT
:处理进入本机的流量OUTPUT
:处理离开本机的流量FORWARD
:处理转发的流量PREROUTING
和POSTROUTING
:用于NAT转换
常用命令格式:
sudo iptables -t <表名> -A <链名> -s <源地址> -d <目标地址> -p <协议> --dport <端口> -j <动作>
常见规则配置
1. 允许SSH访问
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
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