如何在Linux中防止SYN Flood攻击

SYN泛洪攻击(SYN Flood)是指使用不完善的TCP/IP三次握手,恶意发送大量只包含SYN握手序列的数据包的攻击方法。这种攻击方法可能会导致被攻击的计算机拒绝服务甚至崩溃,从而使潜在的连接占用大量的系统资源,无法完成三次手。如果您遭受SYN洪水攻击下的Linux服务器,您可以设置以下:

减少SYN-超时时间:

iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
iptables -A INPUT -i eth0 -m limit –limit 1/sec –limit-burst 5 -j ACCEPT

每秒最多3个syn数据包

iptables -N syn-flood
iptables -A INPUT -p tcp –syn -j syn-flood
iptables -A syn-flood -p tcp –syn -m limit –limit 1/s –limit-burst 3 -j RETURN
iptables -A syn-flood -j REJECT

设置syncookies

sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=3072
sysctl -w net.ipv4.tcp_synack_retries=0
sysctl -w net.ipv4.tcp_syn_retries=0
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.forwarding=0
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1

防止ping命令

sysctl -w net.ipv4.icmp_echo_ignore_all=1

阻止特定的IP范围

iptables -A INPUT -s 192.168.5.1/8 -i eth0 -j Drop

猜你喜欢

转载自www.linuxidc.com/Linux/2020-03/162542.htm