使用DenyHosts防止SSH暴力破解

1. DenyHosts简介

DenyHosts简介

当你的linux服务器暴露在互联网之中,该服务器将会遭到互联网上的扫描软件进行扫描,并试图猜测SSH登录口令。
你会发现,每天会有多条SSH登录失败纪录。那些扫描工具将对你的服务器构成威胁,你必须设置复杂登录口令,并将尝试多次登录失败的IP给阻止掉,让其在一段时间内不能访问该服务器。
它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。
DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽IP的功能,可以阻止不法分子试图暴力破解SSH登录口令。

                                                                

2. DenyHosts安装及配置

2.1 DenyHosts安装

  • CentOS安装

    yum -y install denyhosts

  • Ubuntu安装

    apt-get install denyhosts

默认配置文件路径为/etc/denyhosts.conf,日志文件路径为/var/log/denyhosts

2.2 DenyHosts配置

默认配置就能很好的工作,当然个性化配置直接修改配置文件/etc/denyhosts.conf即可

[root@study /data/backup]# egrep -v "#|^$" /etc/denyhosts.conf
SECURE_LOG = /var/log/secure    #ssh日志文件,denyhosts基于此日志内容来判断
HOSTS_DENY = /etc/hosts.deny    #控制用户登陆文件
PURGE_DENY = 4w     #过多久后清除已经禁止的IP,空表示永远不解禁,我这里设置的是4周
BLOCK_SERVICE  = ALL    #禁止的服务名,如还要添加其他服务,只需添加逗号跟上相应的服务即可,写个sshd也可
DENY_THRESHOLD_INVALID = 5  #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 15   #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5     #允许root登陆失败的次数
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts   #denyhosts运行目录
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES     ##是否进行域名反解析
LOCK_FILE = /var/lock/subsys/denyhosts  #程序的进程ID 
ADMIN_EMAIL = root  #管理员邮件地址,可设置告警邮箱
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report from $[HOSTNAME]
AGE_RESET_VALID=5d  #用户的登录失败计数会在多久以后重置为0,(h表示小时,d表示天,m表示月,w表示周,y表示年) 
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes  #如果一个ip登陆成功后,失败的登陆计数是否重置为0
DAEMON_LOG = /var/log/denyhosts #denyhosts的日志文件
DAEMON_SLEEP = 60s  #当以后台方式运行时,每读一次日志文件的时间间隔
DAEMON_PURGE = 1h   #当以后台方式运行时,清除机制在 HOSTS_DENY中终止旧条目的时间间隔,这个会影响PURGE_DENY的间隔。

注意:

  1. 在安装之前要将/var/log/secure日志清空并重启rsyslog => >/var/log/secure => service rsyslog restart,然后再启动denyhosts => /etc/init.d/denyhosts start,不然很可能会有惊喜发生,锁上门才发现钥匙在屋子里

  2. 用来防止ftp暴力破解好像并不怎么好使,可使用fail2ban

                                                             

3. 查看效果

  • 被屏蔽的IP地址,我这种ECS小服务器一个月也会屏蔽几百个扫描的IP。

使用DenyHosts防止SSH暴力破解使用DenyHosts防止SSH暴力破解

使用DenyHosts防止SSH暴力破解


参考:CentOS8手动安装denyhosts

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/2338.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注