注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

涅槃

文档收藏

 
 
 

日志

 
 
 
 

[转]用SHELL脚本来防止暴力破解  

2012-03-14 10:03:59|  分类: shell编程实例 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
我的一台公网服务器,由于网站采取的是双备份策略,所以开放了vsftpd的21端口,近来发现许多人在尝试暴力破解vsftpd和ssh,我随便看了看/var/log/secure日志,显示如下:
 
  118.33.110.52=2834 119.145.254.77=37 121.254.179.199=226 121.88.250.243=35 200.29.110.104=168 202.78.173.199=250 222.221.2.210=373这里面除了119.145.254.77和121.88.250.243是正常的外,其它的基本都是恶意IP.
 
  由于我的服务器是置于LVS集群后面,所以我原来想用iptables的recent模块解决这个问题的方法估计是行不通的。而且,服务器的系统安装的是CentOS 5.5 x86_64,iptables还暂时不支持此模块,报错如下:
 
  iptables:Unknown error 18446744073709551615而由于机器已经在跑重要的业务,我又不想去升级内核,免得影响正常的网站运营,所以iptables的想法暂时告一段落;后来我又想到用HostsDeny的方法来解决这个问题,感觉这个方法还是比较繁琐,还不如自己手动写脚本来解决这个麻烦,脚本内容如下:
 
  #!/bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt DEFINE="100" for i in `cat /root/black.txt` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i|awk -F= '{print $2}'` if [ $NUM -gt $DEFINE ];then grep $IP /etc/hosts.deny > /dev/null if [ $?-gt 0 ];then echo "sshd:$IP" >> /etc/hosts.deny echo "vsftpd:$IP" >> /etc/hosts.deny fi done脚本思路如下:
 
  由于/var/log/secure是以星期为轮询的,所以我们每次可以查看这个文件,利用SHELL脚本统计出其中访问失败比较频繁的IP,并定义一个阀值为100,如果大于100的话就将其放进/etc/hosts.deny文件,阻止其继续访问vsftpd和ssh;然后将其写进crontab计划列表里,每隔一段时间进行一次排查,如果下次排查的某IP次数又大于100,首先检查它在不在我们的黑名单,如果在的话就无视过去;如果不在,就继续添加进/etc/hosts.deny文件。
 
  我的/etc/crontab文件最后一行为
 
  * */1 * * * root sh /root/hosts_deny.sh即每隔1小时就重复执行一次这个脚本,这里也有一个情况要说明下,/var/log/secure是每隔一个星期轮询一次的,所以我们这里可以根据服务器的具体情况来配置多少时间执行一次此脚本,暴力破解频繁的机器可适当缩小这个周期。
 
  我的公网机器运行脚本一段时间后,/etc/hosts.deny文件如下:
 
  sshd:119.145.254.77 vsftpd:119.145.254.77 sshd:222.221.2.210 vsftpd:222.221.2.210 sshd:118.218.136.25 vsftpd:118.218.136.25 sshd:118.33.110.52 vsftpd:118.33.110.52 sshd:123.196.113.11 vsftpd:123.196.113.11 sshd:14.140.172.74 vsftpd:14.140.172.74 sshd:200.29.110.104 vsftpd:200.29.110.104 sshd:202.102.89.81 vsftpd:202.102.89.81 sshd:202.78.173.199 vsftpd:202.78.173.199
 
  评论这张
 
阅读(568)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018