Denyhosts是一个Linux系统下阻止暴力破解SSH密码的软件,可以自动拒绝过多次数尝试SSH登录的IP地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对SSH密码进行穷举,很不幸,我最喜欢的yum中没有denyhosts这个工具(如果非要用,需添加其他yum源),那就下载安装吧:
wget -c http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download
tar -zxvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
cp -f /usr/share/denyhosts/denyhosts.cfg-dist /usr/share/denyhosts/denyhosts.cfg
cp -f /usr/share/denyhosts/daemon-control-dist /usr/share/denyhosts/daemon-control
chown root /usr/share/denyhosts/daemon-control
chmod 755 /usr/share/denyhosts/daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig –level 345 denyhosts on
service denyhosts start
配置文件为:
/usr/share/denyhosts/denyhosts.cfg
下面是主要配置项的解释:
SECURE_LOG = /var/log/secure
#SECURE_LOG = /var/log/auth.log #ubuntu用这个
#sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 5m
#过多久后清除已经禁止的
BLOCK_SERVICE = sshd
#禁止的服务名
DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
DAEMON_LOG = /var/log/denyhosts
#DenyHosts的日志文件
被监控到并禁用的主机存放在:/etc/hosts.deny,如果未设置邮件自动发送的话,定期可以打开看一下有没有异常。