首页/安全/安全加固速查/iptables 默认策略(安全顺序与自锁防护)
防火墙与访问控制50 条

iptables 默认策略(安全顺序与自锁防护)

链默认策略是防火墙的姿态(INPUT/FORWARD 通常 DROP);但改策略瞬间生效,正确顺序是先建放行规则、带定时回滚、再收策略。

安全加固速查安全更新于 2026-10-13

默认策略是防火墙的姿态

链的默认策略决定「没有规则匹配时怎么办」:设为丢弃表示一切未显式放行的流量都不通,设为接受则表示未列出的全部放行。加固只需要把入站与转发链的默认策略改为丢弃,但这一步的副作用是即时生效——改错的瞬间现有连接就会被切断。因此正确的做法是先建好放行规则,再带定时回滚地收口策略。

基本信息

加固项默认拒绝姿态
适用平台Linux(iptables 与 iptables-nft 兼容层)
风险等级高
基线入站与转发链默认丢弃,出站链按组织策略
执行要求远程操作前预留带外通道与回滚手段

典型使用场景

  • 主机加固:把默认姿态从接受改为拒绝,消除未登记端口
  • 暴露面收敛:清理长期累积的临时放行后重新收口
  • 故障排查:逐条放宽再收紧,定位是端口还是来源受限
  • 容器与网关主机:确认转发链策略是否与主机职责匹配
  • 合规整改:默认拒绝是边界防护条款最常见的落地要求

安全实施顺序(带兜底回滚)

安全实施顺序(带兜底回滚)
iptables -S | head -30                       # 先留档现状
(echo 'iptables -P INPUT ACCEPT; iptables -P FORWARD ACCEPT' | at now + 10 minutes) 2>/dev/null   # 兜底
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 10.20.0.0/16 --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -S | head -30                       # 复核,确认放行规则在策略之前

策略与规则的关系

要素作用注意事项
入站默认策略未匹配流量一律丢弃最后设置,且必须先有放行规则
转发默认策略影响过境与容器转发流量宿主机承担转发职责时需评估
出站默认策略按组织要求设置过严可能导致系统更新与时间同步失败
规则顺序先匹配者生效放行规则必须在兜底丢弃之前
规则留档记录改动前后的规则集缺少留档难以回滚与复盘
云主机失去远程连接后只能靠控制台恢复:操作前确认带外通道可用,并保留第二个已登录会话作为对照。使用定时回滚机制时,要确认定时任务服务已在运行,否则兜底动作不会执行。
规则默认只在内存中生效,重启后丢失,需要按发行版提供的方式持久化。另外转发链的默认策略会影响容器网络与路由转发场景:在运行容器或承担网关职责的主机上收紧该策略前,先确认容器网络对转发的要求。

自锁防护清单

执行前的检查可以固化成清单:是否已有一份可用的现状留档、是否保留了独立会话、带外通道是否可用、回滚动作是否已排入且其依赖服务在运行、放行规则是否覆盖了当前使用的管理来源。五项都确认后再收口默认策略,任何一项缺失都意味着恢复成本会显著上升。

易错点

  • 先清空规则再设默认丢弃:链内没有任何放行规则,丢弃会立即切断所有连接
  • 放行规则写在兜底丢弃之后:永远不会被匹配,等同于没有放行
  • 兜底回滚未生效:未确认定时服务运行,出问题时自动恢复不会发生
  • 转发策略照搬:容器与网关主机的转发流量被切断,故障现象与防火墙改动不易关联
  • 改动不留档:缺少改动前的规则集,回滚时只能凭记忆重建

数据来源与参考

  • iptables(8) 手册
  • CIS Linux Benchmark:Ensure default deny policies

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌