前言只要服务器暴露在公网,并且没有禁止ssh账号密码登录、使用vpn跳板等防控行为,就会肯定会收到一大波恶意登录尝试。这里推荐一个神器,denyhosts,就是专门用来应对这种情况的。原理是cat/var/log/secure执行这条命令,可以看到远程ssh登陆的一些情况,无论是成功还是失败,都有日志记录。从个人行为习惯来看。如果一个用户尝试登录,失败的次数超过一定的阈值,比如3次,我们可以理解这些请求99.99%都是恶意的,那么我们就不应该再让这个用户尝试,所以源IP必须禁止继续请求。现在介绍这个工具就是代替我们来做这件事。它会启动一个进程,这个进程会以一定的时间频率定时扫描/var/log/secure日志文件,然后过滤掉一些错误过多的源IP,并将这些IP添加到/etc/hosts.deny中,所以从而达到取缔的目的。使用wgethttp://jaist.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gztar-zxvfDenyHosts-2.6.tar.gz-C/opt/进入目录执行pythonsetup.pyinstall第3步完成,软件包会安装到/usr/share/denyhosts/这个目录下,然后配置复制文件配置cpdenyhosts.cfg-distdenyhosts.cfgcpdaemon-control-distdaemon-controlvimdenyhosts.cfg启动denyhosts并设置为开机自启,centos7也兼容以下命令cd/etc/rc.d/init.d/ln-s/usr/share/denyhosts/daemon-controldenyhostschkconfig--adddenyhostschkconfigdenyhostsonchkconfig--listdenyhosts其他/usr/share/denyhosts/denyhosts.cfg有各种配置。允许的最大错误数。进程检查日志的频率等。有关详细信息,请参阅配置文件。一般很多扫描工具都会默认扫描22端口。可以考虑换端口,避免被扫描的麻烦。看到这里,其实这个工具是个坏主意。有条件的话,用跳板机,vpn,或者key登录,不用折腾那么多,也比较安全。