除了采取设置强口令、更改默认远程访问端口等措施外,还可以使用第三方软件或密钥对验证方式对口令暴力破解进行防护。
给大家介绍一个很不错的第三方软件 Denyhosts
Denyhosts 是一个 Linux 系统下阻止暴力破解 SSH 密码的软件,它可以自动拒绝过多次数尝试 SSH 登录的 IP 地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对 SSH密码进行穷举。众所周知,暴露在互联网上的计算机是非常危险的。并不要因为网站小,关注的人少或不惹眼就掉以轻心:互联网中的大多数攻击都是没有目的性的,黑客们通过大范围 IP 端口扫描探测到可能存在漏洞的主机,然后通过自动扫描工具进行穷举破解。
Denyhosts 的安装与使用方法进行介绍
1.阻止攻击原理
DenyHosts 会自动分析 /var/log/secure
等安全日志文件,当发现异常的连接请求后,会自动将其 IP 加入到 /etc/hosts.deny
文件中,从而达到阻止此 IP 继续暴力破解的可能。同时,Denyhosts 还能自动在一定时间后对已经屏蔽的 IP 地址进行解封,非常智能。
2.官方网站
Denyhosts 的官方网站为:http://denyhosts.sourceforge.net/ (杜绝Putty 后门事件,谨记安全软件官网)
3.安装方法
3.1下载 DenyHosts 源码并解压(目前最新版为 2.6)
wget http: / / sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar-gz
tar zxvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
3.2安装部署
yum install python -y
python setup.py install
3.3准备好默认的配置文件
[ root@www DenyHosts-2.6] cd /usr/share/denyhosts/
[root@www denyhosts] cp denyhosts.cfg-dist denyhosts.cfg
[root@www denyhostsj cp daemon-control-dist daemon-control
3.4编辑配置文件 denyhosts.cfg
vi denyhosts.cfg
参数 | 参数说明 |
---|---|
PURGE_DENY | 当一个 IP 被阻止以后,过多长时间被自动解禁。可选如 3m(三分钟)、5h(5 小时)、2d(两天)、8w(8 周)、1y(一年) |
PURGE_THRESHOLD | 定义了某一 IP 最多被解封多少次。即某一 IP 由于暴力破解SSH 密码被阻止/解封达到了 PURGE_THRESHOLD 次,则会被永久禁止 |
BLOCK_SERVICE | 需要阻止的服务名 |
DENY_THRESHOLD_INVALID | 某一无效用户名(不存在的用户)尝试多少次登录后被阻止 |
DENY_THRESHOLD_VALID | 某一有效用户名尝试多少次登陆后被阻止(比如账号正确但密码错误),root 除外 |
DENY_THRESHOLD_ROOT | root 用户尝试登录多少次后被阻止 |
HOSTNAME_LOOKUP | HOSTNAME_LOOKUP |
大家可以根据上面的解释,浏览一遍此配置文件,然后根据自己的需要修改即可。
3.5启动 Denyhosts
./daemon-control start
如果需要让 DenyHosts 每次重启后自动启动,可按照以下步骤进行设置:
- 设置自动启动
第一种是将 DenyHosts 作为类似 apache、mysql 一样的服务,这种方法可以通过/etc/init.d/denyhosts
命令来控制其状态。方法如下:
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-controldenyhosts
chkconfig --add denyhosts
chkconfig -level 2345 denyhosts on
- 第二种是将 Denyhosts 直接加入 rc.local 中自动启动(类似于Windows 中的“启动文件夹”)
echo '/usr/share/denyhosts/daemon-controlstart' >/etc/rc.local
如果想查看已经被阻止的 IP,打开/etc/hosts.deny 文件即可。
版权声明:本文为u010101193原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。