且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

用 swatch 搞定 ftp 暴力破解问题

更新时间:2022-10-04 19:51:17

为方便公司fans网站的站长们上传文件,网站用了pureftp。
pureftp表现确实不错,不但稳定可靠,特征丰富,而且在安全方面也很便于调控。
可是好景不长,很快就遇到了一个让人头疼的问题:因为不能限定使用FTP服务的用户的IP来源,暴力破解很快就出现了,
网站维护人员挺担心,希望尽快搞定这个问题。
 
怎么办呢?
pureftp本身的特征似乎并不好解决暴力破解问题,后来想了想,决定用swatch来搞定。
 
1. 下载: [url]http://sourceforge.net/projects/swatch/[/url]
2. 安装:swatch 是用 PERL 写的,所以安装起来可能会有点麻烦,最顺利的情况下,解压后执行下面的命令就
         搞定了:
         perl Makefile.PL
         make
         make test
         make install
         make realclean
        如果提示有些相关 PERL 模块不存在,那么你就需要耐心地一个一个地装那些缺少的 PERL 模块了,主要是
        下面四个:Date::Calc ,Date::Parse ,File::Tail ,Time::HiRes 。
3. 配置:2个文件
 1)cat /etc/swatch.conf
    watchfor /authentication failure/
             mail address=kejian.zou\@m-time.com, subject=warning: authentication failure
             exec /root/blockip.sh '$_'
             threshold type=limit, count=60, seconds=120  # 如果在2分钟之内出现60次登录失败, 
                                                                                        # 那么发邮件通知管理员,并block 正
                                                                                        #在实施暴力破解的IP。
 2)cat /root/blockip.sh 
    #!/bin/bash
    #
    hacker_ip=`echo $1 | awk '{ print $13 }' | awk -F= '{ print $2 }'`
    is_blocked=`iptables -L -n | grep $hacker_ip | wc -l`
    if [ $is_blocked -eq 0 ];then
           iptables -I INPUT -p tcp -s $hacker_ip --dport 21 -j DROP
           # logging those IPs being blocked. 
           echo Hacker from $hacker_ip was blocked at $(date +'%Y-%m-%d %H:%M') \
             >> /root/blockip.log
    fi
4.运行swatch:
swatch --config-file=/etc/swatch.conf --tail-file=/var/log/messages &
 
自从用上了swatch后,暴力破解活动得到了有效的遏制,网站维护人员放心了,世界安静了下来。


本文转自zkjian517 51CTO博客,原文链接:http://blog.51cto.com/zoukejian/56515