iptables常用的防御功能实例

利用iptables控制并发访问与连接建立,防范CC/DOS/DDoS攻击
本文介绍如何通过iptables的connlimit、limit和recent模块,有效控制并发访问和连接建立,防止CC/DOS/DDoS攻击。包括配置示例、效果展示及与其他模块如geoip的结合应用。

一、使用connlimit模块,控制并发访问(CC / DOS)量:

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j LOG --log-prefix "WEB Attack"

示例配置如下:

 

*filter
-A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j LOG --log-prefix "WEB Attack"
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

结果图:

image

效果图:

sudo tail -f /var/log/messages

image

二、使用limit模块,限制连接建立(DDOS/ SYN)频率,示例

*filter
-P INPUT DROP
-A INPUT -j SYN-FLOOD
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A SYN-FLOOD -m limit --limit 100/sec --limit-burst 300 -j RETURN
-A SYN-FLOOD -j DROP
COMMIT

效果图:

image

三、使用recent模块,控制访问频率,示例:

*filter
-P INPUT DROP
-A INPUT  -p tcp --dport 80 -m state --state NEW -m recent --set --name HTTP
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 7722 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT  -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 300 --hitcount 10 --name HTTP -j LOG --log-prefix "HTTP Attack"

本例只打印日志,效果和并发控制相同。结果示例:

image

当然,还可以配合geoip模块进行地域控制。

转载于:https://www.cnblogs.com/higkoo/articles/iptables_against_cc_dos_ddos.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值