Linux系统防暴力破解

DenyHosts 是 Python 语言写的一个程序,它会分析 sshd 的日志文件,当发现重复的攻击时就会记录 IP 到/etc/hosts.deny 文件,从而达到自动屏 IP 的功能。
DenyHosts 官方网站

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 服务即可生效:
systemctl start denyhosts 开启服务
chkconfig denyhosts on 加为开机自启动

如果在 centos7 上安装不成功。可以使用源码安装方式

wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
tar -xzvf DenyHosts-2.6.tar.gz #解压
cd DenyHosts-2.6
yum install python -y  #安装python
python setup.py install

拷贝自带的配置文件:

cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg
cp daemon-control-dist daemon-control

编辑配置文件:

vi denyhosts.cfg

找到配置文件里面的参数,配置如下:

PURGE_DENY = 5d
BLOCK_SERVICE = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 5
DENY_THRESHOLD_ROOT = 5
HOSTNAME_LOOKUP =YES

(好像直接放在前面也可以,我就是的)
注:
PURGE_DENY:当一个 IP 被阻止以后,过多长时间被自动解禁。可选如 3m(三分钟)、5h(5 小时)、2d(两天)、8w(8 周)、1y(一年);
BLOCK_SERVICE:需要阻止的服务名;
DENY_THRESHOLD_INVALID:某一无效用户名(不存在的用户)尝试多少次登录后被阻止;
DENY_THRESHOLD_VALID:某一有效用户名尝试多少次登陆后被阻止(比如账号正确但密码错误),root 除外;
DENY_THRESHOLD_ROOT:root 用户尝试登录多少次后被阻止;
HOSTNAME_LOOKUP:是否尝试解析源 IP 的域名;
大家可以根据上面的解释,浏览一遍此配置文件,然后根据自己的需要稍微修改即可。
启动服务 ./daemon-control start
将服务设置为开机自启动
echo '/usr/share/denyhosts/daemon-control start' >> /etc/rc.local
最终在目录 /usr/share/denyhosts 下 查看状态 ./daemon-control status

参考文档
datablog

关于我
loading
在线编辑器