黑帽联盟

 找回密码
 会员注册
查看: 1199|回复: 0
打印 上一主题 下一主题

[系统安全] 分享脚本防止SSH和vsftpd暴力破解的代码

[复制链接]

852

主题

38

听众

3174

积分

白金VIP

Rank: 8Rank: 8

  • TA的每日心情
    开心
    2024-3-7 12:52
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

    我的一台公网服务器,由于网站采取的是双备份策略,所以开放了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: 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
    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
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部