防dos攻击的主要方法 多角度查看和缓解DoS攻击办法( 三 )


ss -lnt[root@localhost ~]# ss -lntStateRecv-QSend-QLocal Address:PortPeer Address:PortProcessLISTEN01280.0.0.0:1110.0.0.0:*LISTEN01280.0.0.0:800.0.0.0:*在Listen中其中Send-Q 为全连接队列的长度,Recv-Q为目前使用了多少 。全连接队列的大小= min(backlog, somaxconn) backlog为用户设置的队列长度,somaxconn同上,为系统参数 。
减少syn-ack重发次数服务器端收到SYN连接后会回复SYN+ACK,如果回复失败会进行多次重试,默认5次,我们可以减少重试次数:
[root@localhost ~]# sysctl net.ipv4.tcp_synack_retriesnet.ipv4.tcp_synack_retries = 5[root@localhost ~]# sysctl -w net.ipv4.tcp_synack_retries=1net.ipv4.tcp_synack_retries = 1[root@localhost ~]# sysctl net.ipv4.tcp_synack_retriesnet.ipv4.tcp_synack_retries = 1开启SYN cookie对于半连接的队列长度,设置多长合适那,不太好设置,我们可以打开SYN cookie,这样在连接队列满了之后,会根据SYN的包计算一个cookie值,这个cookie作为将要返回的SYN ACK包的初始序列号,服务器端不再保存任何信息,客户回一个ACK包时候,根据包头信息计算cookie值,在于返回的确认序列号对比,如果相同,则是一个正常连接,如果不合法,则返回一个RST报文,这其中校验cookie是否合法时候,还要判断ACK时间是否为4分钟内到达,是才合法 。
缺点看起来好像cookie方式比较完美,但是由于不再服务器端保存任何信息,所以就无法重发SYN+ACK报文,由于有一定计算量,且如果对方采用ACK攻击,那么服务器端需要计算比较,也无法预防的 。
[root@localhost ~]# sysctl -w net.ipv4.tcp_syncookies=1net.ipv4.tcp_syncookies = 1同样,永久生效需要写入到/etc/sysctl.conf中去 。
五 总结Dos攻击,特别是DDos攻击,采用的是发送大量包的方法来消耗服务器端的资源,上面的手段也只能减缓攻击,不能彻底解决问题,业界对这种攻击一般用流量清洗的办法,将DDos攻击的流量和正常用户请求分离出来,或者增加CDN缓存,和WAF等方式 。
【防dos攻击的主要方法 多角度查看和缓解DoS攻击办法】以上就是爱惜日网?防dos攻击的主要方法(多角度查看和缓解DoS攻击办法)的相关内容了,更多精彩请关注作者:爱惜日技术

推荐阅读