公司的网站服务器,平时访问不大,但是每次从凌晨开始到八点多左右,网站后台会受到很多暴力破解帐号的***,造成网站到晚上了nagios频繁报警。
处理方法:
根据access.log的访问记录,每个20分钟统计一次,如果访问次数logging.php在100次以上,封掉IP;当然awk条件匹配的时候,你可以加上错误代码..
#!/bin/bash# cron 01:00 - 08:00 / 20#set -x_FILE='/home/logs/access_****.log'awk '/logging.php/{stat[$1]++}END{for(i in stat){if(stat[i] >= '100')print i}}' $_FILE >>/tmp/badip.$(date +%F).txtfor ip in `sort -u /tmp/badip.$(date +%F).txt`doif /sbin/iptables -nL|grep DROP|grep $ip >/dev/null 2>&1 ;then:else/sbin/iptables -I INPUT 10 -s $ip -j DROP[ $? == 0 ] && echo "Time: $(date +"%F %T") : $ip" >> /root/ycan/drop_record.txtfidone
2. 添加到计划任务
*/20 00-08 * * * /root/ycan/badip.sh