专题推荐
专题推荐

DenyHosts-防止Linux VPS服务器SSH密码被暴力破解工具

2020-03-23 15:18 分类:Linux VPS安全 阅读(次阅读) 标签:,,

DenyHosts是Python语言写的一个程序软件,运行于 Linux 上预防SSH密码被暴力破解的,它会分析sshd 的日志文件(/var/log/secure),当发现有IP反复尝试登陆你的VPS,自动屏蔽该IP(写入IP到/etc/hosts.deny文件);
黑客破解了你的root密码,那就可以做很多事了.
防止Linux VPS服务器SSH密码被暴力破解的方法还有:
1.Linux VPS安全CentOS/Debian/Ubuntu修改VPS服务器SSH默认22登录端口
2.Linux VPS安全:只允许SSH密匙登录VPS服务器
3.阿里云服务器VPS安全设置之生成服务器登录密匙对与绑定教程
之前写过Linux VPS安全:iptables自动封IP防止SSH暴力破解
但是单纯的并没有DenyHosts强大:

DenyHosts-防止Linux VPS服务器SSH密码被暴力破解工具

需要注意的DenyHosts只是封禁多次尝试登录你的VPS服务器的IP,而且过一段时间就会解封(你可以自己设置将这个时间适当延长);

但是真正的解决办法还是把你的面膜设置的复杂一点,或者采用我上面的方法吧登录端口改掉或者采用密匙登录.

并且千万要数据备份:Linux VPS每日自动异地备份网站数据

一.安装DenyHosts

yum install -y denyhosts

使用之前说过额yum命令即可安装DenyHosts.如果yum安装不了试试下面的命令:

# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
# tar -zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install

二.配置DenyHosts

vi /etc/denyhosts.conf

用vi命令编辑DenyHosts配置文件,高手可以试下 vim命令,其实单纯就编辑文件来说都差不多

vim /etc/denyhosts.conf

也可能在:

# cd /usr/share/denyhosts/ 
# cp denyhosts.cfg-dist denyhosts.cfg 
# vi denyhosts.cfg

下面是默认配置文件,你可以按需修改,记得保存.

SECURE_LOG = /var/log/secure  #ssh日志文件

HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny

PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟

BLOCK_SERVICE  = sshd  #阻止服务名

DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 

DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要 

DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 

DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 

WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)

HOSTNAME_LOOKUP=YES  #是否做域名反解

LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。

ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 
SMTP_HOST = localhost 
SMTP_PORT = 25 
SMTP_FROM = DenyHosts  
SMTP_SUBJECT = DenyHosts Report

AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)

AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间

AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间

AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间

DAEMON_LOG = /var/log/denyhosts  #自己的日志文件

三.使用DenyHosts

DenyHosts启动命令

service denyhosts start   //启动服务
service denyhosts stop    //停止服务
service denyhosts status   //查看服务状态

DenyHosts加入开机自启动

chkconfig denyhosts on

查看DenyHosts配置黑名单和白名单

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

或者vim

vim /etc/hosts.deny
vim /etc/hosts.allow

DenyHosts黑名单配置规则:

sshd:*.*.*.*     //如sshd:192.168.21.34

四.DenyHosts解除禁止IP

有时候个别IP被误封了,需要解除禁止访问,并加入到白名单,或者允许访问IP,只在 /etc/hosts.deny 删除是没用的。
需要进入 /var/lib/denyhosts 目录,进入以下操作:(如果你是新手建议等待程序自动解封)

想要解禁一个已经被禁止掉的 IP,并加入到白名单,或者允许访问IP,只在 /etc/hosts.deny 删除是没用的。
需要进入 /var/lib/denyhosts 目录,进入以下操作:

1、停止 DenyHosts 服务:$ sudo service denyhosts stop
2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行

/var/lib/denyhosts/hosts
/var/lib/denyhosts/hosts-restricted
/var/lib/denyhosts/hosts-root
/var/lib/denyhosts/hosts-valid
/var/lib/denyhosts/users-hosts

不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:

$ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*

搜索结果可能有

/var/lib/denyhosts/hosts
/var/lib/denyhosts/hosts-restricted
/var/lib/denyhosts/hosts-root
/var/lib/denyhosts/hosts-valid
/var/lib/denyhosts/users-hosts

4、添加你想允许的主机 IP 地址到

/var/lib/denyhosts/allowed-hosts

在文件中的位置大概在这段代码下方:

# We mustn’t block localhost
127.0.0.1
*.*.*.* //你想添加允许的IP地址

5、启动 DenyHosts 服务:

service denyhosts start

6、如果不想自己解禁,可以等到一个重置周期后,自动解禁

如果你嫌麻烦的话还是采用密匙登录吧:阿里云服务器VPS安全设置之生成服务器登录密匙对与绑定教程


本文地址: https://www.vpsyi.com/denyhosts.html