默认策略是防火墙的姿态
链的默认策略决定「没有规则匹配时怎么办」:设为丢弃表示一切未显式放行的流量都不通,设为接受则表示未列出的全部放行。加固只需要把入站与转发链的默认策略改为丢弃,但这一步的副作用是即时生效——改错的瞬间现有连接就会被切断。因此正确的做法是先建好放行规则,再带定时回滚地收口策略。
基本信息
| 加固项 | 默认拒绝姿态 |
|---|---|
| 适用平台 | 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 # 复核,确认放行规则在策略之前策略与规则的关系
| 要素 | 作用 | 注意事项 |
|---|---|---|
| 入站默认策略 | 未匹配流量一律丢弃 | 最后设置,且必须先有放行规则 |
| 转发默认策略 | 影响过境与容器转发流量 | 宿主机承担转发职责时需评估 |
| 出站默认策略 | 按组织要求设置 | 过严可能导致系统更新与时间同步失败 |
| 规则顺序 | 先匹配者生效 | 放行规则必须在兜底丢弃之前 |
| 规则留档 | 记录改动前后的规则集 | 缺少留档难以回滚与复盘 |
云主机失去远程连接后只能靠控制台恢复:操作前确认带外通道可用,并保留第二个已登录会话作为对照。使用定时回滚机制时,要确认定时任务服务已在运行,否则兜底动作不会执行。
规则默认只在内存中生效,重启后丢失,需要按发行版提供的方式持久化。另外转发链的默认策略会影响容器网络与路由转发场景:在运行容器或承担网关职责的主机上收紧该策略前,先确认容器网络对转发的要求。
自锁防护清单
执行前的检查可以固化成清单:是否已有一份可用的现状留档、是否保留了独立会话、带外通道是否可用、回滚动作是否已排入且其依赖服务在运行、放行规则是否覆盖了当前使用的管理来源。五项都确认后再收口默认策略,任何一项缺失都意味着恢复成本会显著上升。