Linux安全之SYN攻击原理及其应对措施

一、SYN攻击原理
这里写图片描述
TCP在传递数据前需要经过三次握手,SYN攻击的原理就是向服务器发送SYN数据包,并伪造源IP地址。

服务器在收到SYN数据包时,会将连接加入backlog队列,并向源IP发送SYN-ACK数据包,并等待ACK数据包,以完成三次握手建立连接。

由于源IP地址是伪造的不存在主机IP,所以服务器无法收到ACK数据包,并会不断重发,同时backlog队列被不断被攻击的SYN连接占满,导致无法处理正常的连接。

二、SYN攻击的应对措施
1、减少SYN-ACK数据包的重发次数(默认是5次):

net.ipv4.tcp_synack_retries=3
net.ipv4.tcp_syn_retries=3

2、使用SYN Cookie技术

net.ipv4.tcp_syncookies=1
#此参数是为了防止洪水攻击的,但对于大并发系统,要禁用此设置,即net.ipv4.tcp_syncookies = 0  

3、增加backlog队列(默认是512或者1024):

net.ipv4.tcp_max_syn_backlog=4096
#参数决定了SYN_RECV状态队列的数量,一般默认值为512或者1024,即超过这个数量,系统将不再接受新的TCP连接请求,一定程度上可以防止系统资源耗尽。

4、限制SYN并发数:

iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT –limit 1/s

三、加固TCP/IP协议

#将以下内容加到/etc/sysctl.conf配置文件中,保存,使用 "sysctl -p" 生效
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.secure_redirects = 0

net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_ignore=1    #应答进行控制
net.ipv4.conf.all.arp_announce=2  #回应限制
net.ipv4.conf.lo.arp_ignore=1     
net.ipv4.conf.lo.arp_announce=2 

四、大并发下内核参数设置

net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_syn_backlog=4096   #这个值根据自己网站情况设定

#参数决定是否加速TIME_WAIT的sockets的回收,默认为0。
net.ipv4.tcp_tw_recycle

#参数决定是否可将TIME_WAIT状态的sockets用于新的TCP连接,默认为0。
net.ipv4.tcp_tw_reuse

#参数决定TIME_WAIT状态的sockets总数量,可根据连接数和系统资源需要进行设置。
net.ipv4.tcp_max_tw_buckets
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值