Linux防火墙规则编写核心是“最小权限原则”+“明确流向控制”,推荐nftables;默认策略设为DROP,先放行lo、ESTABLISHED/RELATED连接,再按需精准开放SSH、HTTP/HTTPS等端口,并限制连接频率,最后保存规则防重启丢失。

Linux防火墙规则编写核心在于“最小权限原则”+“明确流向控制”,用 iptables 或 nftables(推荐新系统用 nftables)实现,关键不是堆规则,而是理清“谁访问谁、走什么协议、开哪几个端口、默认怎么处理”。
先定策略:默认拒绝,再精准放行
绝大多数安全问题源于默认允许。务必把默认策略设为 DROP:
- iptables:运行 iptables -P INPUT DROP、iptables -P FORWARD DROP、iptables -P OUTPUT ACCEPT(出站通常宽松些)
- nftables:在 base chain 中设 policy drop,例如:nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
- 切记:执行前确保已有 SSH 规则且已测试连通,否则可能锁死自己
只开必需端口:按服务而非IP粗放放行
别写 “-s 0.0.0.0/0 -p tcp --dport 22 -j ACCEPT” 就完事——要加状态跟踪和连接限制:
- SSH 安全写法(iptables):iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
- HTTP/HTTPS(仅限 Web 服务器):iptables -A INPUT -p tcp -m multiport --dports 80,443 -m state --state NEW -j ACCEPT
- 本地回环必须放通:iptables -A INPUT -i lo -j ACCEPT(所有规则前建议加这条)
善用连接状态(state / ct state),避免“半开漏洞”
无状态规则易被绕过。实际生效的几乎都依赖连接追踪:
标签: linux centos 防火墙 端口 ubuntu ai
还木有评论哦,快来抢沙发吧~