Linux防火墙高级操作教程:2026最新版iptables / nftables / firewalld实战指南
问题说明:为什么Linux必须进行防火墙高级配置
在Linux服务器或生产环境中,网络安全风险非常高,常见攻击包括端口扫描、暴力破解、DDoS攻击、未授权访问等。如果只依赖默认配置,系统很容易暴露在公网风险之下。
Linux防火墙的核心作用是:控制入站与出站流量、限制端口访问、过滤非法请求、保护服务安全。
一、Linux防火墙体系结构
Linux主流防火墙方案包括:
iptables(经典)
nftables(新一代推荐)
firewalld(RHEL/CentOS默认)
UFW(Ubuntu简化工具)
二、firewalld高级配置(推荐主流系统)
1. 查看防火墙状态
systemctl status firewalld
2. 启动防火墙
systemctl start firewalld
systemctl enable firewalld
3. 查看开放端口
firewall-cmd --list-all
三、端口管理(核心操作)
1. 开放端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
2. 关闭端口
firewall-cmd --permanent --remove-port=3306/tcp
firewall-cmd --reload
3. 限制IP访问端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="22" protocol="tcp" accept'
四、iptables高级规则(经典核心)
1. 查看规则
iptables -L -n -v
2. 允许SSH访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
3. 禁止某个IP
iptables -A INPUT -s 192.168.1.100 -j DROP
4. 默认拒绝所有入站
iptables -P INPUT DROP
五、nftables(新一代防火墙)
1. 查看规则
nft list ruleset
2. 添加规则
nft add rule inet filter input tcp dport 80 accept
3. 创建基础规则集
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 ; }
六、防火墙安全策略设计(核心重点)
1. 默认拒绝策略(推荐)
默认拒绝所有入站
仅开放必要端口
2. 最小开放原则
仅允许:
SSH(22)
HTTP/HTTPS(80/443)
必要业务端口
3. IP白名单策略
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" accept'
七、防止暴力破解(重要)
1. 限制SSH访问频率
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
2. 禁止root远程登录
修改SSH配置:
PermitRootLogin no
八、连接追踪与流量控制
1. 查看连接状态
conntrack -L
2. 限制连接数
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
九、防DDoS基础策略
1. 限制新连接速率
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
2. 丢弃异常流量
iptables -A INPUT -m state --state INVALID -j DROP
十、防火墙日志与审计
1. 开启日志记录
iptables -A INPUT -j LOG --log-prefix "DROP_PACKET: "
2. 查看日志
dmesg | grep DROP_PACKET
十一、防火墙高级最佳实践
1. 分层防护策略
网络层(防火墙)
系统层(权限控制)
应用层(认证机制)
2. 只开放必要端口
生产环境最小暴露原则
3. 使用白名单机制
默认拒绝 + 白名单允许
4. 定期审计规则
清理无用规则
检查异常开放端口
常见问题(FAQ)
Q1:iptables和firewalld哪个更好?
firewalld更易用,iptables更底层更灵活。
Q2:防火墙会影响性能吗?
正常规则影响极小,高负载规则可能略有影响。
Q3:误封SSH怎么办?
需要物理/控制台登录恢复规则。
总结
Linux防火墙高级配置的核心是“默认拒绝 + 精确放行”,通过 firewalld、iptables、nftables 可以实现多层网络控制。
真正安全的Linux系统防护体系应包括:
防火墙控制(网络入口)
SSH安全加固(登录入口)
流量限制(攻击防护)
日志审计(行为追踪)
合理配置后,可以显著降低服务器被攻击的风险,并提升整体系统安全性。