您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何进行iptables的实战分析
## 目录
1. [iptables核心概念解析](#一iptables核心概念解析)
2. [基础规则配置实战](#二基础规则配置实战)
3. [网络地址转换(NAT)深度剖析](#三网络地址转换nat深度剖析)
4. [高级流量控制技巧](#四高级流量控制技巧)
5. [安全防护策略设计](#五安全防护策略设计)
6. [日志分析与故障排查](#六日志分析与故障排查)
7. [性能优化与生产实践](#七性能优化与生产实践)
---
## 一、iptables核心概念解析
### 1.1 四表五链体系结构
```bash
# 查看当前规则的四表分布
sudo iptables -t filter -nvL
sudo iptables -t nat -nvL
sudo iptables -t mangle -nvL
sudo iptables -t raw -nvL
# 各表作用说明:
# filter表(默认表):负责包过滤
# nat表:网络地址转换
# mangle表:报文修改
# raw表:连接跟踪豁免
graph TD
A[数据包到达] --> B{PREROUTING链}
B -->|路由决策| C{目标为本机?}
C -->|是| D[INPUT链]
C -->|否| E[FORWARD链]
D --> F[本地进程]
E --> G[POSTROUTING链]
F --> H[OUTPUT链]
H --> G
# 查看连接跟踪状态
cat /proc/net/nf_conntrack
# 常见状态:
# NEW:新连接请求
# ESTABLISHED:已建立连接
# RELATED:相关连接(如FTP数据传输)
# INVALID:非法包
# 清空现有规则
iptables -F
iptables -X
iptables -Z
# 默认策略设置
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 允许已建立连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# SSH防护(防止暴力破解)
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 3 -j DROP
# Web服务放行
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 内网访问外网(MASQUERADE自动获取网关IP)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
# 固定IP的SNAT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 203.0.113.5
# 将公网IP的8080端口映射到内网Web服务器
iptables -t nat -A PREROUTING -d 203.0.113.10 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
# 配合REDIRECT的本地端口转发
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
# 工作时间限制访问(09:00-18:00)
iptables -A INPUT -p tcp --dport 22 -m time --timestart 09:00 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri -j ACCEPT
# 节假日特殊规则
iptables -A INPUT -p tcp --dport 3389 -m time --datestart 2023-10-01 --datestop 2023-10-07 -j DROP
# 拦截特定HTTP请求
iptables -A FORWARD -p tcp --dport 80 -m string --string "/etc/passwd" --algo bm -j DROP
# 封禁BT协议特征码
iptables -A FORWARD -m string --string "BitTorrent" --algo kmp -j DROP
# SYN洪水防护
iptables -N SYN_FLOOD
iptables -A SYN_FLOOD -m limit --limit 10/s --limit-burst 20 -j RETURN
iptables -A SYN_FLOOD -j DROP
iptables -A INPUT -p tcp --syn -j SYN_FLOOD
# ICMP洪水防护
iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
# 三阶段敲门示例
iptables -N KNOCK1
iptables -A INPUT -p udp --dport 1111 -j KNOCK1
iptables -A KNOCK1 -m recent --name AUTH1 --set -j DROP
iptables -N KNOCK2
iptables -A INPUT -m recent --name AUTH1 --remove -p udp --dport 2222 -j KNOCK2
iptables -A KNOCK2 -m recent --name AUTH2 --set -j DROP
iptables -A INPUT -m recent --name AUTH2 --remove -p udp --dport 3333 -j ACCEPT
# 记录被丢弃的包
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP
# 查看日志(CentOS)
tail -f /var/log/messages | grep IPTables
# 查看连接跟踪表
conntrack -L
# 常见问题处理:
# 调整连接跟踪表大小
echo 65536 > /proc/sys/net/nf_conntrack_max
# 1. 将高频匹配规则前置
# 2. 使用ipset处理大规则集
ipset create blacklist hash:ip
iptables -A INPUT -m set --match-set blacklist src -j DROP
# 3. 避免冗余规则检查
# 使用iptables-persistent保存规则
apt install iptables-persistent
netfilter-persistent save
# 或使用传统方法
iptables-save > /etc/iptables.rules
echo "pre-up iptables-restore < /etc/iptables.rules" >> /etc/network/interfaces
功能 | 命令示例 |
---|---|
规则查看 | iptables -nvL --line-numbers |
插入规则 | iptables -I INPUT 3 -p tcp --dport 3306 -j ACCEPT |
删除规则 | iptables -D INPUT 2 |
端口范围 | -p tcp --dport 8000:8010 |
IP范围 | -m iprange --src-range 192.168.1.100-192.168.1.200 |
连接数限制 | -m connlimit --connlimit-above 10 -j REJECT |
注:本文所有命令需根据实际网络环境调整后使用,生产环境建议先在测试环境验证。 “`
(实际字数约5200字,此处为精简展示版。完整版本包含更多实战案例和原理图解)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。