shell脚本 防御dos攻击

shell脚本 防御dos攻击

firewalld禁用IP总是忘记,这里记录一下

用于云服务器dos攻击的防御脚本。

当某个IP连接数超过指定数后,屏蔽到此IP,我的脚本设置的连接数超过100,请根据自己情况而定,循环10秒执行一次。你也可以删除我的循环,定义计划任务。

后期措施:禁止IP访问后,建议禁止一段时间后再删除禁止的IP,可以再根据情况而定。

#!/bin/bash
#允许一个IP最大连接数,超过则禁止访问
NUM=100

#判断是否安装netstat
netstat --help > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "开始安装net-tools"
yum -y install net-tools
fi
while true
do
#获取最大连接数
IPGITNUM=`netstat -nt |awk  -F " +|:" '{print $6}'|sort|uniq -c|sort -r|head -n1|awk '{print $1}'`
if [ $IPGITNUM -gt $NUM ];then
	#获取连接数大于连接数的第一个IP
	IPDENY=`netstat -nt |awk  -F " +|:" '{print $6}'|sort|uniq -c|sort -r|awk '$1>$NUM'|head -n1|awk '{print $2}'`
	sed -i "/<\/zone>/i <rule family="ipv4">    <source address="$IPDENY"/>    <reject/>  </rule>" /etc/firewalld/zones/public.xml
	firewall-cmd --reload

fi
sleep 10
done
good good study, day day up!

发表评论

textsms
account_circle
email

shell脚本 防御dos攻击
firewalld禁用IP总是忘记,这里记录一下 用于云服务器dos攻击的防御脚本。 当某个IP连接数超过指定数后,屏蔽到此IP,我的脚本设置的连接数超过100,请根据自己情况而定,循环10秒…
扫描二维码继续阅读
2021-11-30