本文是小舞在IT天空 Skyfree 的个人博客上看到的一篇文章,虽然现在小舞的网站流量不大,但是网站安全的问题小舞一直都看的很重,哪怕当作笔记也要写下来,以后自己慢慢领悟就好了。现在看不懂不代表以后看不懂,虽然现在看得懂,但是小舞一直把博客当作笔记本来使用的,什么第三方笔记本哪有自己网站用着放心。

1、更改CentOS关于Sync的设置

SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。

查看CentOS内核中关于SYN的配置:

  1. sysctl -a | grep syn

显示:

  1. net.ipv4.tcp_max_syn_backlog = 1024
  2. net.ipv4.tcp_syncookies = 0
  3. net.ipv4.tcp_synack_retries = 5
  4. net.ipv4.tcp_syn_retries = 5

其中:

  1. tcp_max_syn_backlog,SYN队列长度
  2. tcp_syncookies,SYN Cookie功能的开关,用于防止 Sync Flood 攻击
  3. tcp_synack_retries和tcp_syn_retries,允许重试的次数

增长队列、打开Cookie功能,并减少允许重试的次数,可以一定程度上缓解 Sync Flood 攻击带来的影响。

具体操作为:
增加SYN队列长度(另据说改至8000以上效果较好)

  1. sysctl -w net.ipv4.tcp_max_syn_backlog=5120

打开SYN COOKIE功能

  1. sysctl -w net.ipv4.tcp_syncookies=1

降低重试次数

  1. sysctl -w net.ipv4.tcp_synack_retries=3
  2. sysctl -w net.ipv4.tcp_syn_retries=3

2、启用iptables中防御 Sync Flood 攻击的规则

防止Sync Flood(–limit 1/s 限制SYN并发数每秒1次,可以根据自己的需要修改)

  1. iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

防止各种端口扫描

  1. iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

防止 Ping of Death 攻击

  1. iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

发表回复

后才能评论