🔥 iptables 完整入门与实战技巧:Linux 防火墙配置详解
本帖最后由 lin 于 2025-4-21 10:56 编辑在 Linux 运维中,iptables 是最常用的防火墙工具之一。尽管许多系统现在默认使用 firewalld,但 iptables 依然在很多生产环境中扮演着重要角色。它轻量、强大、可控性强,非常适合对网络安全有更高掌控需求的用户。
本文将带你从入门到实战,全面掌握 iptables 的使用。
📌 一、什么是 iptables?
iptables 是 Linux 内核自带的包过滤系统,用于控制进出服务器的数据包。通过配置规则,它可以:
[*]拒绝恶意访问
[*]限制端口访问
[*]防止暴力破解
[*]实现简单的 NAT 或转发
📌 二、iptables 基础概念
概念说明
链(Chain)包含一组规则,例如:INPUT、OUTPUT、FORWARD
表(Table)iptables 的规则按用途分类:filter、nat、mangle
规则(Rule)针对某个条件采取的动作(如允许、拒绝)
动作(Target)ACCEPT、DROP、REJECT、LOG 等
常用的链:
[*]INPUT:处理进入本机的数据包
[*]OUTPUT:处理由本机发出的数据包
[*]FORWARD:处理转发的数据包(非本机)
📌 三、iptables 常用命令
1. 查看所有规则
sudo iptables -L -n -v参数解释:
[*]-L:列出规则
[*]-n:不解析域名/IP,提高速度
[*]-v:显示详细信息(包括命中次数)
2. 允许端口访问(如 80 或 8000)
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT3. 拒绝某个 IP 访问
sudo iptables -I INPUT -s 192.168.1.100 -j DROP4. 屏蔽 ping(ICMP 请求)
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP5. 允许本地回环访问(必须保留)
sudo iptables -A INPUT -i lo -j ACCEPT📌 四、默认策略设置
将默认策略设为拒绝所有,然后逐条放通所需服务:
sudo iptables -P INPUT DROPsudo iptables -P FORWARD DROPsudo iptables -P OUTPUT ACCEPT然后你再允许常用服务(如 22、80、443):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT📌 五、保存与恢复规则(重要!)
保存规则(CentOS):
sudo service iptables save或:
sudo /usr/libexec/iptables/iptables.init save恢复规则:
sudo iptables-restore < /etc/sysconfig/iptables📌 六、清空所有规则(危险操作)
sudo iptables -F清空所有链并设置默认为 ACCEPT(不推荐用于线上):
sudo iptables -Fsudo iptables -P INPUT ACCEPTsudo iptables -P FORWARD ACCEPTsudo iptables -P OUTPUT ACCEPT📌 七、iptables 配置示例(安全模板)
# 清空已有规则
iptables -F
iptables -X
# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许回环接口
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许 SSH、HTTP、HTTPS
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
📌 八、iptables 与 firewalld 对比
功能iptablesfirewalld(现代)
配置方式命令手动写规则使用区域/服务概念,更高级抽象
易用性略复杂相对简单,适合新手
灵活性高,精细控制中等,适合常规用途
适合场景老系统、需要精确控制的场景云服务器、容器环境、桌面系统
✅ 总结
iptables 是一把双刃剑,用得好可以帮你把网络安全控制得非常细致;用得不好也可能导致自己连不上服务器。
建议:
[*]配置前一定备份当前规则;
[*]实验时保留 SSH 端口,避免锁死自己;
[*]推荐将规则写成脚本或保存为文件,方便恢复。
如果你对 iptables 更深层的功能(如 NAT、端口转发、限速等)感兴趣,可以告诉我,我可以出一篇 “iptables 高级用法” 的专题内容。也可以结合你具体的业务场景,帮你量身写防火墙策略!
总有人会把自己的ssh端口屏蔽掉嘛。。。
页:
[1]