性能·网络 / 命令文档

iptables

$ iptables 8 个章节 Linux 命令详解

概述

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连接的规则,否则可能会锁定远程连接。建议在本地终端或通过控制台进行初次配置。

同分类 · 其他命令文档