【iptables防火墙】 -- DDos防御

最近有客户要定制路由器的默认防火墙等级,然后涉及到了DDos规则,对比客户提供的规则发现我们现有的规则存在明显的错误,在此记录一下如何使用iptables防护DDoS攻击

直接贴一下规则

#开启TCP SYN Cookies 机制
sysctl -w net.ipv4.tcp_syncookies=1
#减少发送SYN-ACK包的重试次数,从而达到减少半连接的存活时间效果,尽快释放队列
sysctl -w net.ipv4.tcp_synack_retries=3
#扩大半连接队列的容量
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
#每秒允许100个syn请求,且允许突发150个请求
iptables -w -I SYNFLOOD -p tcp -m tcp --syn -m limit --limit 100/s --limit-burst 150 -j RETURN
iptables -w -A SYNFLOOD -p tcp -m tcp --syn -j DROP

1.内核参数优化

sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_max_syn_backlog=2048

当服务器收到大量 TCP SYN 包(三次握手的第一步)时,内核的半连接队列(SYN Queue)可能被占满,导致合法用户无法建立连接,以此瘫痪服务器。启用 tcp_syncookies 后,内核会在队列满时生成加密的 Cookie 值代替存储连接信息,客户端返回的 ACK 包会携带此 Cookie 进行验证,从而​绕过半连接队列限制,即使攻击者发送百万级 SYN 包,也不会耗尽队列资源。

2.防火墙规则

iptables -w -I SYNFLOOD -p tcp -m tcp --syn -m limit --limit 100/s --limit-burst 150 -j RETURN
iptables -w -A SYNFLOOD -p tcp -m tcp --syn -j DROP

这一步主要是要注意将SYNFLOOD子链放在INPUT的第一个,如此即可达到限制syn连接数的同时又不影响到后续其他规则的生效。

3.清空连接跟踪表(conntrack)

快速清理被攻击占用的连接资源

conntrack -F

需要注意DDos攻击无法完全防御,如果需要更好的效果,可以使用钞能力~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值