Iptables防火墙攻击测试
<1>iptables来防止web服务器被CC攻击
#NEW:这个包是我们看到的第一个包;
#以下是控制一定时间内的新连接的数量,用到recent这个模块。每个IP地址1秒中只能刷新浏览器100次,超过100次TCP重置
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name apache_server --update --seconds 1 --hitcount 100 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name apache_server --set -j ACCEPT
<2>为了增强iptables防止CC攻击的能力,可以调整一下ipt_recent的参数如下:
cat/etc/modprobe.conf
options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
#记录1000个IP地址,每个地址记录60个数据包
modprobe ipt_recent
<3>防止SYN攻击 轻量级预防
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT
测试域名:monitor.xxxxxx.com:10000/logion.php
测试工具:CC攻击器
测试前系统状态,内存使用率、CPU使用率、TCP连接数、进程数,取当前值状态
测试结果统计:
参数 | 内存使用率 | CPU使用率 | TCP连接数 | 进程数 | 防火墙状态 | 备注 |
测试前系统信息 | 1133MB | 1%~3% | 238 | 开启未使用策略 | ||
测试中系统信息 | 3113MB | 85%~90% | TIME_WAIT 1052 | 475 | 开启未使用策略 | |
防火墙开启系统信息 | 1637MB | 1%~13% | TIME_WAIT 7 | 254 | 开启并使用策略 | |
攻击测试(拒绝服务攻击)
1.测试IP地址:192.168.1.222 测试端口 22
2.测试工具:syn_flood.c
3.测试前系统状态,内存使用率、CPU使用率、TCP连接数、进程数,取当前值状态
参数 | 内存使用率 | CPU使用率 | TCP连接数 | 系统进程 | 系统现象 | 网络流量 |
测试状态 | 359MB | 1%~%2 | 正常 | 141 | 正常 | 正常 |
攻击测试22端口 | 303MB | 35%~57% | 正常 | 141 | 无法连接SSH,机器反应迟钝 | 大量垃圾流量 |
防火墙测试 | 302MB | 2%~4% | 正常 | 141 | 正常 | 拦截59G流量 |
总结:使用防火墙规则可以减轻对应攻击对服务器压力,可根据当前生产环境灵活调整当前参数。