防止DDOS攻击相关配置 – 作者:凯信特安全团队

防止DDOS攻击相关配置

一.Syn-flood

sysctl -a | grepsyn(查看SYN相关配置)

tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie 功能,该功能可以防止部分SYN***。tcp_synack_retries和tcp_syn_retries定义SYN 的重试次数。加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分 SYN***,降低重试次数也有一定效果。

1、     缩短SYNTimeout时间,20秒一下。由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度x SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃该连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。

2、     设置SYNcookie值

调整上述设置的方法是:

@增加SYN队列长度到2048:

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

@打开SYNCOOKIE功能:

sysctl -w net.ipv4.tcp_syncookies=1

@降低重试次数:

sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -wnet.ipv4.tcp_syn_retries=3

@为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。

@防止同步包洪水(SyncFlood):
# 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 –limit1/s -j ACCEPT

@Ping洪水(Ping ofDeath):
# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -jACCEPT

@使用TCP Wrapper进行访问控制。

二、Ack flood:(利用nf_conntrack防护)

是否仅仅允许为经过TCP三次握手的流创建nf_conntrack表项还是说为任意收到的TCP数据包(有可能是一个构造出来的攻击包)查询未果后均创建新的nf_conntrack表项。我们只需要将nf_conntrack_tcp_loose设置为0即可:

sysctl -wnet.netfilter.nf_conntrack_tcp_loose=0

既然识别了不关联任何表项的数据包都是恶意的攻击包,那么显然下面的iptables规则将会阻止这类数据包进一步深入协议栈:

iptables -A INPUT-i eth4 -p tcp -m state –state INVALID -j DROP

这条规则会将数据包阻止在IP层。因此我们已经有了对抗纯ACK攻击(即发送海量仅携带ACK标识的数据包)的手段。

来源:freebuf.com 2019-03-04 15:40:59 by: 凯信特安全团队

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论