服务器防火墙实战:iptables核心语法

一、核心概念

1. 基本结构

  • 表(Table)filter(过滤)、nat(地址转换)
  • 链(Chain)INPUT(入站)、OUTPUT(出站)、FORWARD(转发)
  • 规则:匹配条件 + 处理动作

2. 常用命令

1
2
3
4
5
6
7
8
9
# 查看规则
iptables -L -n --line-numbers

# 清空规则
iptables -F

# 设置默认策略
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

3. 规则组成

匹配条件:

  • -p tcp/udp:协议
  • --dport 22:目标端口
  • -s 192.168.1.0/24:源IP
  • -m state --state NEW,ESTABLISHED:连接状态

处理动作:

  • -j ACCEPT:允许
  • -j DROP:丢弃(推荐)
  • -j REJECT:拒绝

二、实用配置示例

Web服务器基础配置

1
2
3
4
5
6
7
8
9
10
11
12
13
# 设置默认策略
iptables -F
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

# 基础规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT

# 开放服务端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT # Web

NAT配置(网关服务器)

1
2
3
4
5
6
7
8
# 启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward

# 内网共享上网
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# 端口转发
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80

安全增强配置

1
2
3
4
5
# 限制SSH连接频率
iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min -j ACCEPT

# 限制连接数(防DDoS)
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP

三、规则管理

持久化配置

1
2
3
4
5
6
7
# RHEL/CentOS
dnf install iptables-services
service iptables save

# Ubuntu/Debian
apt install iptables-persistent
netfilter-persistent save

备份与恢复

1
2
3
4
5
# 备份规则
iptables-save > backup.rules

# 恢复规则
iptables-restore < backup.rules

提示: 生产环境使用DROP策略,修改前务必备份。