您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# IPTables防火墙怎么用
## 目录
1. [IPTables简介](#iptables简介)
2. [基本概念与术语](#基本概念与术语)
3. [安装与启动](#安装与启动)
4. [基础规则配置](#基础规则配置)
5. [高级应用场景](#高级应用场景)
6. [规则持久化](#规则持久化)
7. [常见问题排查](#常见问题排查)
8. [安全最佳实践](#安全最佳实践)
---
## IPTables简介
Linux内核内置的包过滤框架,作为Netfilter项目的用户空间工具,提供:
- 网络地址转换(NAT)
- 数据包过滤
- 状态跟踪
- 流量控制等核心功能
**典型应用场景**:
- 服务器安全防护
- 网络边界控制
- 端口转发服务
- DDoS基础防护
---
## 基本概念与术语
### 规则链(Chains)
| 内置链 | 作用时机 |
|--------|----------|
| INPUT | 目标为本机的数据包 |
| OUTPUT | 本机发出的数据包 |
| FORWARD | 经过本机转发的数据包 |
| PREROUTING | 路由决策前 |
| POSTROUTING | 路由决策后 |
### 表(Tables)
```bash
filter表(默认):包含INPUT/OUTPUT/FORWARD链
nat表:用于地址转换(PREROUTING/POSTROUTING)
mangle表:特殊包修改(TTL/TOS等)
raw表:连接跟踪豁免
ACCEPT:允许通过
DROP:静默丢弃
REJECT:拒绝并返回错误
LOG:记录日志
SNAT/DNAT:地址转换
# Debian/Ubuntu
sudo apt install iptables
# RHEL/CentOS
sudo yum install iptables-services
# 现代系统可能需安装兼容层
sudo apt install iptables-legacy
# 传统SysVinit系统
sudo service iptables start
sudo service iptables save
# systemd系统
sudo systemctl enable iptables
sudo systemctl start iptables
lsmod | grep ip_tables
modprobe ip_tables
iptables -L -n -v # 详细模式查看
iptables -t nat -L # 查看NAT表
iptables -F
iptables -t nat -F
iptables -X # 删除自定义链
iptables -P INPUT DROP # 默认拒绝所有入站
iptables -P OUTPUT ACCEPT # 允许所有出站
iptables -P FORWARD DROP # 禁止转发
# 允许本地回环
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 -j ACCEPT
# 允许PING
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 限速HTTP连接(每秒3个新连接)
iptables -A INPUT -p tcp --dport 80 -m limit --limit 3/second -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 203.0.113.5
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
iptables -A INPUT -p tcp --dport 22 -m time --timestart 09:00 --timestop 17:00 -j ACCEPT
iptables-save > /etc/iptables.rules
iptables-restore < /etc/iptables.rules
# 安装持久化工具
sudo apt install iptables-persistent
# 保存规则
sudo netfilter-persistent save
echo "iptables-restore < /etc/iptables.rules" >> /etc/rc.local
chmod +x /etc/rc.local
iptables -L -n --line-numbers
iptables -L -v
iptables -A INPUT -j LOG --log-prefix "[IPTABLES-DENY] "
tail -f /var/log/syslog
# 错误:忘记允许ESTABLISHED状态
# 现象:能ping出但收不到回复
# 解决:添加状态规则
# 错误:NAT规则未启用IP转发
# 解决:
echo 1 > /proc/sys/net/ipv4/ip_forward
最小权限原则:只开放必要端口
日志监控:记录所有DROP/REJECT操作
防御措施:
定期审计:
# 对比当前规则与保存规则
diff <(iptables-save) <(cat /etc/iptables.rules)
组合使用:与fail2ban联动实现动态封禁
提示:生产环境建议先通过
iptables -P INPUT ACCEPT
设置临时宽松策略,测试完成后再改为严格模式。
”`
注:实际使用时可根据需要调整各章节深度,本文档已包含基础到进阶的核心知识点,完整展开每个示例可达3500字左右。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。