每次登录服务器都会提示:
There were xxxx failed login attempts since the last successful login.
就知道总有闲人在扫IP试密码。再看一下/var/log/secure
就能知道这些失败登录的详情:
1 | Aug 26 05:45:58 sgp1 sshd[4999]: Failed password for invalid user test from 128.199.92.158 port 38416 ssh2 |
所以我决定用DenyHosts屏蔽这些地址。DenyHosts是一个可以帮助阻止ssh攻击的脚本,它会分析/var/log/secure
并记录多次失败登录的IP到/etc/hosts.deny
中。
添加信任IP
编辑/etc/hosts.allow
,将自己常用的IP加进去:
1 | sshd: 202.113.*.*: allow |
比如学校用的天津南开教育网,就把上面的IP段加进去,防止哪天自己手残输错几次密码IP被禁登不进去了。
安装配置DenyHosts
yum install denyhosts
安装完成后编辑/etc/denyhosts.conf
文件:
1 | SECURE_LOG = /var/log/secure |
其中几个数字可以根据自己的需求修改,文件路径一般都不需要修改。另外还可以设置管理员邮箱ADMIN_EMAIL
,默认是root@localhost
,会把通知邮件发到/var/spool/mail
下;也可以加上自己的其他邮箱。
启动服务
保存好配置文件后可以启动DenyHosts并加入到开机启动了:
systemctl start denyhosts
systemctl enable denyhosts
然后tail -f /etc/hosts.deny
看一下禁用列表的动态,如果有:
1 | # DenyHosts: Fri Aug 26 05:41:17 2016 | sshd: 87.106.142.246 |
这样的内容出现就说明DenyHosts已经把之前记录里的可疑IP写进来了。我也把自己服务器上的hosts.deny放出来供大家(lā)考(hēi)。
-
本文作者:
Shintaku
本文链接:
https://www.shintaku.xyz/posts/denyhosts/
版权声明:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shintaku's Blog 。