#!/bin/bash
DATE=`date +%d/%b/%Y:%H:%M`
LOG_FILE=/var/log/httpd/access_log
【SHELL脚本:Dos 攻击防范(自动屏蔽 IP)】ABNORMAL_IP=`tail -n 1000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a) if(a[i]>10) print i}'`
for IP in $ABNORMAL_IP
do
if [ $(firewall-cmd --list-all |grep -c "$IP") -eq 0 ]
then
firewall-cmd --add-rich-rule="rule family=ipv4 source address='$IP' drop"
echo "$(date +'%F %T') $IP" >> /tmp/drop_ip.log
fi
done
推荐阅读
- Linux 系统日常巡检脚本
- linux系统下禁止上传目录执行php脚本?
- 分享一个日常使用的一段shell脚本
- 一文搞懂shell脚本
- Shell 脚本中经典的13个面试题
- 国产|全面自主可控!首个全链路国产操作系统OpenCloudOS发布
- mysql 主库备份脚本
- 有什么类 XShell 或者 Putty 的工具?最最最好用的远程工具没有之一
- 怎样让脚本发现问题自动在jira记录bug
- iPad|老外上手iPadOS 16:安卓再次被甩远了