iptables限制连接数

本文提供了一个使用iptables进行DDoS防护的脚本,并介绍了三种限制连接数的方法:限制局域网内每个用户的连接数、限制指定局域网用户的连接数以及限制除特定用户外的IP连接数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近不停地被 CC (DDOS的一种)频繁干扰,分享一个 iptables 屏蔽 DDOS 的脚本。 
让 crond 每分钟运行一次。 
############### KILL DDOS ##############
iptables_log="/data/logs/iptables_conf.log"
### Iptables 配置导出的路径,可任意修改 ###
########################################
status=`netstat -na|awk '$5 ~ /[0-9]+:[0-9]+/ {print $5}'|awk -F ":" -- '{print $1}' |sort -n|uniq -c |sort -n|tail -n 1|grep -v 127.0.0.1`
NUM=`echo $status|awk '{print $1}'`
IP=`echo $status|awk '{print $2}'`
result=`echo "$NUM > 200" | bc`
### 如果同时连接数大于 200 则干掉!###
if [ $result = 1 ]
then
echo IP:$IP is over $NUM, BAN IT!
/sbin/iptables -I INPUT -s $IP -j DROP
fi
########################################
iptables-save > ${iptables_log}
### 输出当前的 iptable 配置作为日志 ###
########################################

这里介绍三种限制方式

1、限制局域网内每个用户的连接数为50

iptables -I FORWARD -p tcp -m connlimit –connlimit-above 50 -j REJECT

2、限制指定局域网用户XXX.XXX.XXX.XXX的连接数为50 (这里的XXX.XXX.XXX.XXX改成大家要限制的用户的IP)

iptables -I FORWARD -p tcp -s XXX.XXX.XXX.XXX -m connlimit –connlimit-above 50 -j REJECT

这里举个例子,比如要限制192.168.1.2这个用户的连接数为50

iptables -I FORWARD -p tcp -s 192.168.1.2 -m connlimit –connlimit-above 50 -j REJECT

3、限制除用户XXX.XXX.XXX.XXX以外的IP连接数为50 (也就是除了XXX.XXX.XXX.XXX用户不限制其它的都限,这个好吧,可以给自己开特权^_^)

iptables -I FORWARD -p tcp -s !XXX.XXX.XXX.XXX -m connlimit –connlimit-above 50 -j REJECT

这里也举个例子,比如要除了不限制192.168.1.2外,限制其它所有用户的连接数为50

iptables -I FORWARD -p tcp -s !192.168.1.2 -m connlimit –connlimit-above 50 -j REJECT



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值