DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。
1.下载denyhosts安装文件,解压之后直接输入python setup.py install来安装
2.设置启动脚本,配置配置文件:
cd /usr/share/denyhosts
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
在ubuntu中,12版本不再支持chkconfig这个命令,而用sysv-rc-conf 代替
sysv-rc-conf denyhosts on添加启动项
再就是一些配置文件的信息
SECURE_LOG = /var/log/secure
ssh日志文件
HOSTS_DENY = /etc/hosts.deny
将阻止IP写入到hosts.deny
PURGE_DENY = 5m
过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
BLOCK_SERVICE = sshd
阻止服务名
DENY_THRESHOLD_INVALID = 5
允许无效用户(在/etc/passwd未列出)登录失败次数,允许无效用户登录失败的次数.
DENY_THRESHOLD_VALID = 5
允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT = 5
允许root登录失败的次数
DENY_THRESHOLD_RESTRICTED = 1
设定 deny host 写入到该资料夹
WORK_DIR = /usr/share/denyhosts/data
将deny的host或ip纪录到Work_dir中
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS = YES
HOSTNAME_LOOKUP=YES
是否做域名反解
LOCK_FILE = /var/lock/subsys/denyhosts
将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
ADMIN_EMAIL = denyhosts@163.com
设置管理员邮件地址
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts nobody@localhost
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=1d
有效用户登录失败计数归零的时间
AGE_RESET_ROOT=1d
root用户登录失败计数归零的时间
AGE_RESET_RESTRICTED=5d
用户的失败登录计数重置为0的时间(/usr/share/denyhosts/data/restricted-usernames)
AGE_RESET_INVALID=10d
无效用户登录失败计数归零的时间
DAEMON_LOG = /var/log/denyhosts
自己的日志文件
DAEMON_SLEEP = 30s
DAEMON_PURGE = 5m
该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间
3.其它
启动denyhosts会有一些报错
A.
can't open file '/usr/bin/denyhosts.py': [Errno 2] No such file or directory
是因为denyhosts.py的位置不在usr/bin目录下,而是在usr/local/bin目录下。
B.
出现No such file or directory: '/var/lock/subsys/denyhosts'
rm -f /var/lock/subsys/denyhosts
然后service denyhosts start就可以啦
网友评论