美文网首页
利用denyhosts防止服务器被ssh暴力破解

利用denyhosts防止服务器被ssh暴力破解

作者: 进击云原生 | 来源:发表于2019-08-17 08:57 被阅读0次

    博主我新买的VPS建站没几天,心想应该没人动我的歪主意就一直没太注意服务器安全。今天用iftop查看到有几个IP一直连接中,而我的blog里的流量统计页面访问数量却没有新增,很明显这不是在访问blog。通过netstat -anp 可以查看到这几个IP,尤其有个IP还不断更换端口一直尝试访问我的22端口,能用22端口无非是ssh终端连接。心里一想百分百99%是尝试暴力破解,事不宜迟赶紧封锁。

    image

    一查乌克兰的,还不能ping它,也就是说单向访问

    image

    通过iftop能实时查看流量连接情况

    image

    tail -f /var/log/secure 可以查看ssh登陆失败的信息,证实了193.201.224.199这家伙在尝试暴力破解

    利用denyhosts 防止暴力破解ssh

    DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

    思路:利用读取到/var/log/secure登陆失败的IP信息,我们可以设定一个规则,如果登陆失败超过多少次,我们把这个IP写到 /etc/hosts.deny中,拒绝访问!

    1、先把始终允许的IP填入 /etc/hosts.allow ,因为自己访问超过了次数那就尴尬了。不过一般购买的VPS都有后台可以更改ROOT登陆密码,所以这个步骤也可以不设置。

    # vim /etc/hosts.allow
       # sshd:IP:allow
    
    

    2、安装DenyHosts 官方网站为:http://denyhosts.sourceforge.net

    # tar -zxvf DenyHosts-2.6.tar.gz
    # cd DenyHosts-2.6
    # python setup.py install 
    
    

    3、配置

    # cd /usr/share/denyhosts/ 
    # cp denyhosts.cfg-dist denyhosts.cfg 
    # vi denyhosts.cfg
    
    
    SECURE_LOG = /var/log/secure  #要读取安全日志路径,默认的不管它
    HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny,默认的不管它
    PURGE_DENY = 1d #设定过多久后清除已阻止IP (m=分钟,h=小时,d=天,w=周)
    BLOCK_SERVICE = sshd #阻止服务名
    DENY_THRESHOLD_INVALID = 5 #允许无效用户登录失败的次数
    DENY_THRESHOLD_VALID = 10 #允许普通用户登录失败的次数
    DENY_THRESHOLD_ROOT = 3 #允许root登录失败的次数
    (上面3个登陆失败的次数建议不要设定太苛刻,以免自己输错了被列入黑名单了)
    DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料夹
    WORK_DIR = /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中
    SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES #假如设定为YES,那么已经设为白名单中的IP登陆失败也会被设为可疑,也会被列入黑名单中,设定NO的意思就相反。
    HOSTNAME_LOOKUP=YES #如果可以的话记录登陆失败的hostname
    LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。 
    HOSTNAME_LOOKUP=NO #是否做域名反解 
    ADMIN_EMAIL = #设置管理员邮件地址 
    DAEMON_LOG = /var/log/denyhosts #自己的日志文件 
    DAEMON_PURGE = 10m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。 
    
    

    4、设置启动脚本

    # cp daemon-control-dist daemon-control
    # chown root daemon-control
    # chmod 700 daemon-control
    完了之后执行daemon-contron start就可以了。
    # ./daemon-control start
    如果要使DenyHosts每次重起后自动启动还需做如下设置:
    # ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
    # chkconfig –add denyhosts
    # chkconfig denyhosts on
    
    

    然后就可以启动了:

    # service denyhosts start
    # ps -ef|grep denyhosts #检查是否启动
    
    
    image
     # vim /etc/hosts.deny #查看内是否有禁止的IP,有的话说明已经成功了。
    
    
    image

    相关文章

      网友评论

          本文标题:利用denyhosts防止服务器被ssh暴力破解

          本文链接:https://www.haomeiwen.com/subject/ljkhsctx.html