昨天写了linux下的shell脚本防ssh/vsftpd等暴力破解,平时所用的最多的也就是FreeBSD,今天在补一个FreeBSD下的,废话不多说,贴脚本如下:
- #!/bin/sh
- SCANIP=`grep "Failed" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | awk '{print $1"="$2;}'`
- for i in $SCANIP
- do
- NUMBER=`echo $i | awk -F= '{print $1}'`
- SCANIP=`echo $i | awk -F= '{print $2}'`
- echo "$NUMBER($SCANIP)"
- if [ $NUMBER -gt 10 ] && [ -z "`/sbin/ipfw show | grep $SCANIP`" ]
- then
- /sbin/ipfw add 1 deny ip from $SCANIP to me 22
- echo "`date` $SCANIP($NUMBER)" >> /var/log/scanip.log
- fi
- done
与linux不同的也就是日志文件的不同,以及防火墙的不同。防火墙我们使用FreeBSD下最常见的ipfw,同样设置相应的定时计划任务来启动检测脚本
与linux下一样,也可以写入/etc/hosts.deny中,自己发挥了!~至于vsftpd服务,可以自己修改下,检测vsftpd.log中尝试登录错误次数过多的IP即可!~
Vsftpd服务可以参考命令:
- awk '/'"FAIL LOGIN: Client"'/ {print $12}' /var/log/vsftpd.log | uniq -c | sort -k1n | awk -F'["]' '{print $1$2}' | awk '{if ($1 >=20) print $2}'
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
Vsftpd的可以参考这条命令