iptables网络安全基线配置的核心是“默认拒绝、按需放行”,即先执行iptables -P INPUT DROP、-P FORWARD DROP、-P OUTPUT DROP设默认策略,再依次放行本地回环、已建立连接、必要服务端口(如SSH、HTTP/HTTPS)及ICMP,并可选加入限频、SYN防护和日志记录等基础防御规则。

iptables 网络安全基线配置的核心是“默认拒绝、按需放行”,不是堵住所有漏洞,而是先切断一切未知流量,再精准开通业务必需通道。它不依赖复杂规则堆砌,而靠逻辑清晰的策略顺序和关键链的默认策略控制来筑起第一道防线。
INPUT/FORWARD/OUTPUT 链默认策略设为 DROP
这是整个基线的起点。未显式允许的流量一律拒绝,避免遗漏规则导致意外开放。
- 执行命令:iptables -P INPUT DROP、iptables -P FORWARD DROP、iptables -P OUTPUT DROP
- 注意:必须在添加任何 ACCEPT 规则前设置,默认策略会覆盖链尾隐式规则
- 云服务器建议同步配置云平台安全组作为“逃生通道”,尤其保留你的办公IP对SSH端口的访问权限
优先放行已建立和关联连接
让服务器能正常响应已有会话,避免自断通信。这条规则通常放在 INPUT 和 OUTPUT 链最前端。
- INPUT 链放行响应流量:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- OUTPUT 链放行新建及响应流量:iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- 现代内核中推荐用 ctstate 替代 state(如 -m conntrack --ctstate ESTABLISHED,RELATED),更准确且兼容性更好
显式开放必要服务端口
只开业务真正需要的端口,禁止宽泛放行。常见组合示例如下:
- SSH 远程管理(建议改非标端口后放行):iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- Web 服务:iptables -A INPUT -p tcp --dport 80 -j ACCEPT、iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- 本地回环(lo)接口不限制:iptables -A INPUT -i lo -j ACCEPT
- ICMP 基础诊断(可选):iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
防御基础扫描与暴力尝试
在放行服务规则之后、默认 DROP 之前,加入轻量级防护规则,提升对抗自动化攻击的能力。
- 限制单IP对SSH的新连接频率:iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP - 阻止无效SYN洪泛(配合内核参数更有效):iptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
- 记录可疑连接(便于审计):iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j LOG --log-prefix "SSH_SCAN: "


















