CentOS 6系统无补丁环境,临时iptables规则防漏洞利用
机器跑着CentOS 6,官方源早就断粮,yum update只剩404,打补丁成了奢望。扫描报告却天天蹦出远程代码执行、提权、拒绝服务,老板一句“先别下线”,安全锅就扣在运维头上。别慌,临时iptables规则能先顶一顶,把漏洞利用挡在门口,给业务迁出争取时间。

为什么选iptables而不是上WAF
老系统内核低,第三方WAF一装就挂,kdump狂写日志;SELinux策略老旧,开enforcing直接让业务进程跪。iptables随系统自带,不装包、不重启、不挑内核,一条命令立即生效, rollback也只要flush一下,风险低到可以拍胸脯。
先画攻击面:CentOS 6常见裸奔端口
netstat -tulnp一看,22、21、25、3306、11211、873全暴露在公网,对应漏洞随手一搜就能找到exp。把非必要端口先关,是止血第一步;关不了,就用iptables做“临时绷带”。
三行命令先锁SSH暴力
日志里auth fail一分钟上千次,先把22端口限速:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
60秒内新连接超过4次直接拉黑,内存占用忽略不计,CPU零感知。
屏蔽已知exp投递通道
很多老漏洞利用需要回连下载payload,把高频回连端口一次性封掉:
iptables -A OUTPUT -p tcp --dport 4444 -j DROP

iptables -A OUTPUT -p tcp --dport 8080:8090 -j DROP
iptables -A OUTPUT -p tcp --dport 31337 -j DROP
outbound方向也要管,别让机器成了矿机还帮人数钱。
针对Samba Cry的临时拦截
CentOS 6默认Samba版本<=3.6,永恒之红系列exp一打就中。如果445端口必须开,用iptables把SMB会话最大长度砍到断腿:
iptables -I INPUT -p tcp --dport 445 -m length --length 500:65535 -j DROP
正常共享小包几十字节足够,exp投递动辄上千字节,长度策略一刀一个准。
MySQL 5.1 UDF提权拦截
数据库对外是灾难,先限制来源IP:
iptables -I INPUT -p tcp --dport 3306 ! -s 10.0.0.0/24 -j DROP
再拦UDF常用创库语句长度:
iptables -I INPUT -p tcp --dport 3306 -m string --algo bm --string "CREATE FUNCTION" -j DROP
双层保险,脚本小子直接懵。
Memcached 11211 UDP反射放大
UDP端口11211经常被当成放大器打别人,一句命令把UDP封死,TCP留给本地缓存:
iptables -A INPUT -p udp --dport 11211 -j DROP
对外攻击流量瞬间归零,省得机房打电话喊关机。
规则持久化:别重启就裸奔
CentOS 6用iptables-save > /etc/sysconfig/iptables,再chkconfig iptables on,防止断电重启后规则全丢。别忘记配crontab每10分钟跑一次iptables-save,防止同事手抖flush之后找不回现场。
日志留痕:被扫也能溯源
在每条DROP后加LOG,限制速率防止打爆磁盘:
iptables -A INPUT -j LOG --log-prefix "IPT-DROP:" --log-level 4 -m limit --limit 10/min
日志交给rsyslog转存单独文件,排查时一眼就能看到谁被墙。
性能压测:老机器也扛得住
100M带宽小水管,一万条规则CPU占用不到3%,内存多占几兆,对业务延迟零感知。用ab打5k并发,丢包率与裸机持平,放心往上堆。
临时≠长久:迁移才是正道
iptables只能挡已知利用,0day来了照样穿。把规则当成“创可贴”,业务迁到受支持系统才是缝合手术。留好时间窗口,每周复查一次规则命中率,该加白加白,该收紧收紧。
一键回滚脚本
万一规则写劈叉,业务全断,提前准备rollback:
#!/bin/bash
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
service iptables save
30秒恢复出厂设置,值班手机不再被轰炸。
CentOS 6没补丁的日子像走钢丝,临时iptables规则就是下面的安全网。网再结实,也得尽快走到对岸,别把临时当永久,更别让老板以为“不升级也能一直跑”。今晚先把脚本贴上去,明天早点约开发排期迁移,睡得踏实比啥都香。
