执行
#sysctl -a|grep net.ipv4.tcp_max_syn_backlog
在返回的”net.ipv4.tcp_max_syn_backlog=512″中显示 Linux队列的最大半连接容量是512
简单数量的DDOS分布式攻击就可以让网站打不开
可以修改其最大连接限制,如修改为2000;
# sysctl -w net.ipv4.tcp_max_syn_backlog=2000
这样就设置了最大的连接数,不会因为连接数量被占用导致网站打不开.
打开SYN COOKIE功能:
# sysctl -w net.ipv4.tcp_syncookies=1
还可以执行以下指令:
# sysctl -w net.ipv4.tcp_synack_retries=1
Linux中建立TCP连接时,在客户端和服务器之间创建握手过程中,当服务器未收到客户端的确认包时,会重发请求包,一直到超时才将此条目从未连接队列是删除,也就是说半连接存在一定的存活时间,超过这个时间,半连接就会自动断开.半连接存活时间实际上是系统所有重传次数等待的超时时间之和,这个值越大,半连接数占用的Backlog队列的时间就越长,系统能处理的 SYN请求就越少,因此,缩短超时时间就可以有效防御SYN攻击,这可以通过缩小重传超时时间和减少重传次数来实现.在Linux中默认的重传次数为5 次,总超时时间为3分钟
以上指令就是将重传次数改1,有效减少DDOS的攻击造成的服务器崩溃.
因为DDOS基本都是使用”肉鸡”实现TCP攻击,占用服务器资源,很难查找出发起点的IP,但被”肉鸡”的IP还是可以查看的
执行: netstat -atnp
查看当前连接的IP,使用kill命令来杀除
当然也可以记下IP,添加到APAPCHE或者.htaccess,进行拦截.
*********************************************
附加其他iptable指令的其他防御方法:
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
也可以写成:
#iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT
–limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改
防止各种端口扫描
# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp –icmp-type
echo-request -j DROP
**********************************************
针对更多apache查看连接数和并发数的相关方法:
关于作者