网络上的计算机总是不躲不了别人的攻击。每天都会发现N条的SSH登录失败纪录,除了设置极为复杂的密码和更改ssd的端口外,我们还可以使用DenyHosts可以阻止试图猜测SSH登录口令,
它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。
一,安装,默认是安装到/usr/share/denyhosts目录的。
get http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download
tar xvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
设置启动脚本
cd /usr/share/denyhosts/
chown root.root daemon-control
chmod 700 daemon-control*
加入开机启动
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig –add denyhosts
chkconfig –level 2345 denyhosts on
或者:
vi /etc/rc.local
添加:
/usr/share/denyhosts/daemon-control start
二,DenyHosts配置文件解释
SECURE_LOG = /var/log/secure
#设定判断日志
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 5m
#过多久后清除已经禁止的,格式:i[dhwmy] ,其中i为整数,dhwmy分别为天,小时,周,分钟,年。
BLOCK_SERVICE = sshd
#禁止的服务名
DENY_THRESHOLD_INVALID = 3
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 5
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 10
#允许root登陆失败的次数
DENY_THRESHOLD_RESTRICTED = 1
#设定 deny host 写入到该资料夹
WORK_DIR = /usr/share/denyhosts/data
#将deny的host或ip纪录到Work_dir中
HOSTNAME_LOOKUP=YES
#是否做域名反解
ADMIN_EMAIL = [email protected]
#设置管理员邮件地址
LOCK_FILE = /var/lock/subsys/denyhosts
#将DenyHosts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
DAEMON_LOG = /var/log/denyhosts
#设定DenyHosts的日志文件
DAEMON_PURGE = 10m
#该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。
三,启动:
./daemon-control start
或者
/etc/init.d/denyhosts start
四,测试
按照设定的登陆失败次数进行失败登陆,查看/etc/hosts.deny 文件,会发现有如下信息:
# DenyHosts: Tue Oct 26 23:38:14 2010 | sshd: 192.168.1.101
sshd: 192.168.1.101
当一定时间没有失败登陆时则会自动清除