linux使用DenyHosts阻止SSH服务器攻击(暴力破解)

DenyHosts 是一个开源且免费的基于日志的入侵防御安全程序.

它旨在通过阻止发起方来监视和分析 SSH 服务器日志中的无效登录尝试、基于字典的攻击和暴力攻击。 IP 通过添加条目到地址 /etc/hosts.deny 服务器上的文件,并防止 IP 地址进行任何进一步的此类登录尝试。

如何在Linux中安装DenyHosts

默认情况下 DenyHosts Linux 系统中不包含该工具,使用以下yum 命令安装软件包。

  1. # yum install -y denyhosts

denyhosts配置文件说明

  1. # vim /etc/denyhosts.conf
  2. SECURE_LOG = /var/log/secure #ssh日志文件
  3. HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny
  4. PURGE_DENY = 4w #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
  5. BLOCK_SERVICE = sshd #阻止服务名
  6. DENY_THRESHOLD_INVALID = 5 #无效用户名限制登陆次数。 // --> 主要
  7. DENY_THRESHOLD_VALID = 10 #有效用户名限制登陆次数。 // --> 主要
  8. DENY_THRESHOLD_ROOT = 5 #root限制登陆次数。 // --> 主要
  9. DENY_THRESHOLD_RESTRICTED = 1 #受限用户限制登录次数。 // --> 主要
  10. WORK_DIR = /var/lib/denyhosts #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
  11. HOSTNAME_LOOKUP=YES #是否做域名反解
  12. LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
  13. ADMIN_EMAIL = rumenz@rumenz.com #设置管理员邮件地址
  14. SMTP_HOST = localhost
  15. SMTP_PORT = 25
  16. SMTP_FROM = DenyHosts
  17. SMTP_SUBJECT = DenyHosts Report
  18. AGE_RESET_ROOT = 1d #root用户登录失败计数归零的时间(1d:1天)
  19. AGE_RESET_RESTRICTED=25d #受限用户的失败登录计数归零的时间
  20. AGE_RESET_VALID=1d #有效用户登录失败计数归零的时间
  21. AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间
  22. DAEMON_LOG = /var/log/denyhosts #自己的日志文件

IP 黑名单、白名单

  1. # /etc/hosts.deny //黑名单(拦截记录)
  2. # /etc/hosts.allow //白名单

查看 DenyHosts 日志

查看 denyhostsssh 记录有多少攻击者和黑客试图访问你的服务器。使用以下命令查看实时日志。

  1. # tail -f /var/log/secure

从 DenyHosts 中删除禁止的 IP 地址

需要停止服务。

  1. # /etc/init.d/denyhosts stop

完全删除或删除被禁止的IP地址。需要编辑以下文件并删除IP地址。

  1. # vi /etc/hosts.deny
  2. # vi /var/lib/denyhosts/hosts
  3. # vi /var/lib/denyhosts/hosts-restricted
  4. # vi /var/lib/denyhosts/hosts-root
  5. # vi /var/lib/denyhosts/hosts-valid
  6. # vi /var/lib/denyhosts/users-hosts

删除被禁止的 IP 地址后,再次重新启动服务。

  1. # /etc/init.d/denyhosts start

违规的IP地址添加到/var/lib/denyhosts目录下的所有文件中,因此很难确定哪些文件包含违规的IP地址。可以使用grep命令查找IP地址。例如,要查找IP地址172.16.25.125执行。

  1. # cd /var/lib/denyhosts
  2. # grep 172.16.25.125 *

设置DenyHosts 中ip白名单

我们可以设置某些固定ip永远不会被屏蔽。可以打开/var/lib/denyhosts/allowed-hosts文件。默认情况下,该文件中包含的任何IP地址都不会被禁止。

  1. # vi /var/lib/denyhosts/allowed-hosts

并在单独的行上添加每个 IP 地址。保存并关闭文件。

  1. # We mustn't block localhost
  2. 127.0.0.1
  3. 172.16.25.125
  4. 172.16.25.126
  5. 172.16.25.127

返回笔记列表
入门小站