单向有状态高安策略的核心在于四条input规则的严格顺序与默认drop策略:1.放行lo;2.放行established,related;3.节制放行new(如22端口);4.丢弃invalid;最后设-p input drop。

这条命令本身只是单条规则,不能单独实现“单向有状态高安策略”。真正起作用的是它在整个规则链中的位置、上下文和配套动作。关键不在加不加这一句,而在于怎么用它构建闭环逻辑。
必须前置的四条规则顺序
iptables 按从上到下逐条匹配,一旦命中即执行并停止。所以这四条必须严格按以下顺序配置(推荐用 -I 插入链首):
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
放行本地回环:
iptables -I INPUT 1 -i lo -j ACCEPT
避免本机服务(如数据库、监控)自断连接。放行已建立与关联连接:
iptables -I INPUT 2 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
现代内核推荐用conntrack替代旧state模块;这条保障你 SSH 连上后不会黑屏、HTTP 响应能回来、FTP 数据连接可通。节制放行新建连接:
iptables -I INPUT 3 -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
只开必要端口,比如 SSH;若需 Web,再加一行--dport 80;严禁无条件放行所有 NEW。显式丢弃无效连接:
iptables -I INPUT 4 -m conntrack --ctstate INVALID -j DROP
拦截伪造包、分片异常、状态混乱流量,防止绕过检测。
为什么 ESTABLISHED 和 RELATED 必须一起放行
- ESTABLISHED 是双向通信已确认的数据包(如 TCP 握手完成后的 HTTP body);
- RELATED 是逻辑上依附于已有连接的新流,比如:
- FTP 被动模式下,控制连接(21端口)建立后触发的数据连接;
- DNS 查询响应、ICMP “端口不可达” 报文;
- 若只放 ESTABLISHED,FTP 列目录失败、traceroute 显示不全、DNS 解析超时会立刻出现。
默认策略与安全兜底
- 执行
iptables -P INPUT DROP设为默认拒绝; - 这条必须在上述四条之后设置,否则规则还没加完就锁死自己;
- 它是整个策略的“最后一道门”,确保所有未被明确允许的 NEW 包一律被拦。
补充防护建议(非必需但强烈推荐)
管理IP白名单优先级最高:
iptables -I INPUT -s 203.0.113.42 -j ACCEPT
插在最前面,避免改规则时误操作导致失联。对 NEW 连接限速防暴力:
iptables -I INPUT -p tcp --syn --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/minute --limit-burst 5 -j ACCEPT
后面紧跟一条... -j DROP拦超量请求。OUTPUT 链保持 ACCEPT 即可
除非有特殊隔离需求,否则无需限制本机出向流量,不影响“单向入站”目标。
不复杂但容易忽略。










