分享最新优惠信息
购买主机更加划算

使用DenyHosts阻止Linux服务器被SSH暴力攻击

DenyHosts是一个开源且免费的基于日志的入侵防御安全程序,用于通过SSH连接的Linux服务器,由Phil Schwartz使用Python语言开发编写。

DenyHosts旨在通过向服务器上的/etc/hosts.deny文件添加条目来阻止原始IP地址并阻止IP地址,从而监视和分析Linux服务器日志中的无效登录尝试,这样基于暴力攻击不再进行任何此类登录尝试。

DenyHosts是所有基于Linux服务器系统都非常需要的工具,特别是设置无密码码SSH登录远程Linux服务器的时候。

在本文中,小编将简单如何在基于 RHEL的Linux发行版(例如FedoraCentOSRocky LinuxAlmaLinux)系统上安装和配置DenyHosts。

DenyHosts

一、Linux服务器安装DenyHosts

默认情况下,Linux系统中不包含DenyHosts工具,因此需要使用第三方EPEL 存储库安装它,添加存储库后,使用以下yum 命令安装软件包。

# yum install epel-release
# yum install denyhosts

二、为白名单IP地址配置DenyHosts

一旦DenyHosts安装完成,请确保你的白名单中添加了自己的IP地址,这样永远不会锁定。为此,请打开配置文件/etc/hosts.allow

# vi /etc/hosts.allow

可以按照下方的示例,在单独的一行中一个一个地添加永远不想阻止的IP地址,格式如下:

#
# hosts.allow   This file contains access rules which are used to
#               allow or deny connections to network services that
#               either use the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
sshd: 172.16.25.124
sshd: 172.16.25.125
sshd: 172.16.25.126

三、为电子邮件提醒配置DenyHosts

主配置文件位于/etc/denyhosts.conf下,此文件用于发送有关可疑登录和受限主机的电子邮件提醒,使用VI编辑器打开此文件。

# vi /etc/denyhosts.conf

搜索“ADMIN_EMAIL ”并在此处添加你的电子邮件地址以接收有关可疑登录的电子邮件提醒(如果是多个电子邮件提醒,使用逗号分隔)。这里可以参看下CentOS 6.3系统服务器的配置文件。每个变量都有详细记录,因此请根据个人的喜好进行配置。

############ DENYHOSTS REQUIRED SETTINGS ############
SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
BLOCK_SERVICE  = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/lock/subsys/denyhosts

############ DENYHOSTS OPTIONAL SETTINGS ############
ADMIN_EMAIL = ravisaive@idccoupon.com
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <idccoupon@idccoupon.com>
SMTP_SUBJECT = DenyHosts Daily Report

############ DENYHOSTS OPTIONAL SETTINGS ############
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

四、重新启动DenyHosts服务

完成配置后,重新启动DenyHosts服务以进行新更改,同时还将DenyHosts服务添加到系统启动中。

# chkconfig denyhosts on
# service denyhosts start

五、查看DenyHosts日志

想要查看denyhosts ssh日志了解有多少攻击者和黑客试图访问你的服务器,可以使用以下命令查看实时日志。

# tail -f /var/log/secure
Oct 14 15:01:43 idccoupon sshd[25474]: Accepted password for root from 172.16.25.125 port 4339 ssh2
Oct 14 15:01:43 idccoupon sshd[25474]: pam_unix(sshd:session): session opened for user root by (uid=0)
Oct 14 16:44:09 idccoupon sshd[25474]: pam_unix(sshd:session): session closed for user root
Oct 14 11:08:56 idccoupon sshd[31669]: Accepted password for root from 172.16.25.125 port 2957 ssh2
Oct 14 11:08:56 idccoupon sshd[31669]: pam_unix(sshd:session): session opened for user root by (uid=0)
Oct 14 11:12:00 idccoupon atd[3417]: pam_unix(atd:session): session opened for user root by (uid=0)
Oct 14 11:12:00 idccoupon atd[3417]: pam_unix(atd:session): session closed for user root
Oct 14 11:26:42 idccoupon sshd[31669]: pam_unix(sshd:session): session closed for user root
Oct 14 12:54:17 idccoupon sshd[7480]: Accepted password for root from 172.16.25.125 port 1787 ssh2

六、从DenyHosts中删除被禁止的IP地址

如果曾经意外阻止并希望从denyhosts中删除该禁止的IP地址,这个时候需要停止该服务。

# /etc/init.d/denyhosts stop

彻底移除或删除被禁止的IP地址,需要编辑以下配置文件,然后删除相应的IP地址。

# vi /etc/hosts.deny
# vi /var/lib/denyhosts/hosts
# vi /var/lib/denyhosts/hosts-restricted
# vi /var/lib/denyhosts/hosts-root
# vi /var/lib/denyhosts/hosts-valid
# vi /var/lib/denyhosts/users-hosts

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

# /etc/init.d/denyhosts start

需要注意嘚瑟,由于有问题的IP地址添加到/var/lib/denyhosts目录下的所有文件中,因此很难确定哪些文件包含有问题的IP地址。这时可以使用grep命令找出IP地址是最佳方法之一。例如,要找出IP地址172.16.25.124,请执行以下命令:

cd /var/lib/denyhosts
grep 172.16.25.124 *

七、在DenyHosts中永久将IP地址列入白名单

如果有想要永久列入白名单的静态IP地址列表,打开配置文件/var/lib/denyhosts/allowed-hosts。默认情况下,此文件中包含的任何IP地址都不会被禁止(将此视为一个白名单)。

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

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

# 不被阻止的本地服务器IP地址列表
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127
未经允许不得转载:惠主机 » 使用DenyHosts阻止Linux服务器被SSH暴力攻击