性能·网络 / 命令文档
iptables
概述
Linux防火墙运维实战指南
企业级安全防护核心技术
基础概念 常用规则 实战场景 高级配置 规则管理
表(Tables)结构
filter表 - 默认表,负责过滤数据包
nat表 - 网络地址转换
mangle表 - 修改数据包头部信息
raw表 - 跳过连接跟踪
链(Chains)类型
INPUT - 处理入站数据包
OUTPUT - 处理出站数据包
FORWARD - 处理转发数据包
PREROUTING - 路由前处理
POSTROUTING - 路由后处理
iptables工作原理
数据包进入系统后,按照 表 → 链 → 规则 的顺序进行匹配处理。每个规则包含匹配条件和处理动作,当数据包匹配某条规则时,执行相应的动作(ACCEPT、DROP、REJECT等)。
基本命令结构
iptables -t 表名 -操作 链名 -匹配条件 -j 动作 # 常用操作参数 -A # 在链尾添加规则 -I # 在链头插入规则 -D # 删除规则 -L # 列出规则 -F # 清空链中规则 -P # 设置默认策略
基础端口开放
# 开放SSH端口(22) iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 开放HTTP端口(80) iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 开放HTTPS端口(443) iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 开放多个端口 iptables -A INPUT -p tcp -m multiport --dports 80,443,8080 -j ACCEPT
IP地址限制
# 允许特定IP访问 iptables -A INPUT -s 192.168.1.100 -j ACCEPT # 允许整个网段 iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # 禁止特定IP iptables -A INPUT -s 10.0.0.5 -j DROP # 只允许特定IP访问SSH iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP
状态连接跟踪
# 允许已建立的连接 # 允许已建立的连接 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许本地回环 iptables -A INPUT -i lo -j ACCEPT # 丢弃无效连接 iptables -A INPUT -m state --state INVALID -j DROP
速率限制
# 限制SSH连接频率 iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min --limit-burst 3 -j ACCEPT # 防止ping洪水攻击 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/sec -j ACCEPT # 限制HTTP连接数 iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT
重要安全提醒
在配置防火墙规则时,务必先设置允许SSH连接的规则,否则可能会锁定远程连接。建议在本地终端或通过控制台进行初次配置。