解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟

方法一:在awk中已经判断好并发连接数量的ip地址,传给while read执行防火墙规则封掉对应的ip。
root@centos8 ~]# cat ddos.sh
#!/bin/bash
ss -nt |awk -F  '[ :]+' '/ESTAB/{ip[$(NF-2)]++}END{for(i in ip)if(ip[i]>100) print i}'|awk -F ']' '{print $1}' |while read IP;do iptables -A INPUT -s $IP -j REJECT;done

方法二:取出ip地址并排序,if判断并发超过100的ip,并执行防火墙规则封掉对应的ip。
root@centos8 ~]# cat deny_dos.sh
#!/bin/bash
LINK=100
while true;do
ss -nt | awk -F"[[:space:]]+|:" '/^ESTAB/{print $(NF-2)}' |tr -d "]"|sort |uniq -c|while read count ip;do
if [ $count -gt $LINK ];then
iptables -A INPUT -s $ip -j REJECT
fi
done
done

root@centos8 ~]##chmod +x /root/deny_dos.sh
[root@centos8 ~]#crontab -e
[root@centos8 ~]#crontab -l
*/10 * * * *   /root/deny_dos.sh

 

posted @   小糊涂90  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示