iptables-apply 解决什么问题
远程改防火墙最怕自锁:一条写错的规则会让 SSH 会话立刻中断,之后只能求人进机房。iptables-apply 用「先应用、再限时确认、超时自动回滚」的方式把风险控制住——应用新规则集后,运维需要在指定秒数内确认,不确认就恢复备份。
基本信息
| 适用平台 | Debian/Ubuntu 等默认自带;其他发行版可复制该脚本使用 |
|---|---|
| 输入格式 | iptables-save 完整格式的规则文件 |
| 核心参数 | -t 指定确认超时秒数(配合 iptables-restore 与备份文件) |
| 风险等级 | 中:属于网络访问控制的高危变更 |
典型使用场景
- 远程调整 inbound 策略:默认策略从 ACCEPT 改为 DROP 前先留好回滚
- 批量下发新规则集:在跳板机上逐个应用并确认,避免批量自锁
- 应急封禁:临时插入拒绝规则后,确认业务无影响再持久化
- 合规演练:验证「开新会话确认」这一操作纪律是否被团队执行
备份与安全应用
备份与安全应用
# 1) 先备份当前规则,作为回滚点
iptables-save > /root/rules.bak.v4
# 2) 新规则集必须用 iptables-save 的完整格式写
# 3) 应用并留出确认窗口(30 秒)
iptables-apply -t 30 /root/rules.new.v4
# 4) 立刻另开一个会话验证 SSH 与业务端口
ssh -o ConnectTimeout=5 user@host 'ss -tlnp | head'常见失败与对策
| 现象 | 原因 | 对策 |
|---|---|---|
| 连接直接断开且未恢复 | 新规则拦掉了管理端口,且回滚未触发 | 改前保留一个已建立的会话,并确保回滚文件可读 |
| 提示规则文件格式错误 | 手工拼接的片段不是完整 dump | 用 iptables-save 导出后逐行修改 |
| 确认后仍无法访问 | 规则本身正确但业务端口漏放 | 把端口清单与监听清单交叉核对后再应用 |
| 重启后规则消失 | 未做持久化 | 用 iptables-services 或发行版提供的持久化机制保存 |
自动回滚只保护「忘记确认」的场景:如果你确认了错误的规则集,照样会被锁在外面。验证步骤与回滚文件一个都不能省。
远程操作时的通用纪律:保留原会话不退出,用新会话验证通过后再退出旧会话;这条纪律比任何工具都可靠。