DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。
DenyHosts官方网站为:http://denyhosts.sourceforge.net
yum install -y denyhosts
vim /etc/denyhosts.conf
根据对应参数修改
SECURE_LOG = /var/log/secure #ssh 日志文件 #redhat系列根据/var/log/secure文件来判断;#Mandrake、FreeBSD根据 /var/log/auth.log来判断; #SUSE则是用/var/log/messages来判断,这些在配置文件里面都有很详细的解释。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件
PURGE_DENY = 30m #过多久后清除已经禁止的,设置为30分钟;
# ‘m’ = minutes
# ‘h’ = hours
# ‘d’ = days
# ‘w’ = weeks
# ‘y’ = years
BLOCK_SERVICE = sshd #禁止的服务名,当然DenyHost不仅仅用于SSH服务
DENY_THRESHOLD_INVALID = 1 #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 3 #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 3 #允许root登陆失败的次数
DAEMON_LOG = /var/log/denyhosts #DenyHosts日志文件存放的路径,默认
HOSTNAME_LOOKUP=NO #是否做域名反解
更改DenyHosts的默认配置之后,重启DenyHosts服务即可生效:
/etc/init.d/daemon-control restart #重启denyhosts