现在的位置: 首页shell>正文
FreeBSD下shell脚本防ssh/vsftpd暴力破解 [原创]
2012年03月13日 shell 评论数 2 ⁄ 被围观 7,088 次+

昨天写了linux下的shell脚本防ssh/vsftpd等暴力破解,平时所用的最多的也就是freebsd,今天在补一个freebsd下的,废话不多说,贴脚本如下:

  1. #!/bin/sh   
  2. SCANIP=`grep "Failed" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | awk '{print $1"="$2;}'`   
  3. for i in $SCANIP   
  4. do  
  5.     NUMBER=`echo $i | awk -F= '{print $1}'`   
  6.     SCANIP=`echo $i | awk -F= '{print $2}'`   
  7.     echo "$NUMBER($SCANIP)"  
  8.     if [ $NUMBER -gt 10 ] && [ -z "`/sbin/ipfw show | grep $SCANIP`" ]   
  9.     then   
  10.         /sbin/ipfw add 1 deny ip from $SCANIP to me 22  
  11.         echo "`date` $SCANIP($NUMBER)" >> /var/log/scanip.log   
  12.     fi   
  13. done  

linux不同的也就是日志文件的不同,以及防火墙的不同。防火墙我们使用FreeBSD下最常见的ipfw,同样设置相应的定时计划任务来启动检测脚本

  1. 0   */1 *   *   *   /bin/sh /data/soft/scan_sshd_freebsd.sh  

linux下一样,也可以写入/etc/hosts.deny中,自己发挥了!~至于vsftpd服务,可以自己修改下,检测vsftpd.log中尝试登录错误次数过多的IP即可!~

Vsftpd服务可以参考命令:

  1. 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}'  

测试如下图:

本文地址:http://www.92csz.com/11/1094.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

目前有 2 条留言 其中:访客:0 条, 博主:1 条 引用: 1

  1. clairelume : 2012年03月16日11:49:29  1楼

    Vsftpd的可以参考这条命令

    1. 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}’