系统版本:cnetos 7.9
软件版本:DenyHosts-2.6
DenyHosts官方网站为:Welcome to DenyHosts
(新建DenyHosts目录,将DenyHoststar包上传)
[root@master01 ~]# mkdir denyhosts
使用XFTP上传
[root@master01 ~]# tar -zxvf DenyHosts-2.6.tar.gz #解压
[root@master01 ~]# cd DenyHosts-2.6 #进入解压目录
[root@master01 ~]# python setup.py install #使用python安装
2.配置
[root@master01 ~]# cd /usr/share/denyhosts/ #进入默认安装目录
cp denyhosts.cfg-dist denyhosts.cfg #拷贝文件
vi denyhosts.cfg #编辑
PURGE_DENY = 50m #过多久后清除已阻止IP
HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny
BLOCK_SERVICE = sshd #阻止服务名
DENY_THRESHOLD_INVALID = 4 #允许无效用户登录失败的次数
DENY_THRESHOLD_VALID = 8 #允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT = 1 #允许root登录失败的次数
WORK_DIR = /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中
DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料夹
LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
HOSTNAME_LOOKUP=NO #是否做域名反解
ADMIN_EMAIL = #设置管理员邮件地址
DAEMON_LOG = /var/log/denyhosts #自己的日志文件
DAEMON_PURGE = 1h #该项与
PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。
3.设置启动
cp daemon-control-dist daemon-control #拷贝文件
chown root daemon-control #属主属组为root
chmod 700 daemon-control #权限为700
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts #设软连接
chkconfig --add denyhosts #添加service
chkconfig denyhosts on #设置service启动信息
service denyhosts start #启动服务
测试:
我是直接访问root,并设置了一次失败次数,输入错误密码后,再次访问即被拉入黑名单
我们可以查看/etc/hosts.deny文件,可以看到被拉黑的IP
为二次防护,现在黑客会使用普通用户登录使用su命令,进入root
我们可以将su命令禁用,禁止普通用户su到root,操作如下
在下文件内将#auth required pam_wheel.so use_uid去掉注释
[root@master01 ~]# vim /etc/pam.d/su
在下文件内最后一行添加一条
[root@master01 ~]# vim /etc/login.defs
SU_WHEEL_ONLY yes
经过上述配置后,普通用户将被禁止su至root,如果希望指定普通用户su至root,可以执行如下命令将该用户添加至wheel组中:
如果需要添加例外用户可以su - root的话
usermod -a -G wheel user
测试结果:
su: 拒绝权限
解除IP被禁用:
如果仅仅清空 /etc/hosts.deny 文件内容,你会发现过一会自己的IP又进入里面了。
其实系统后台会定期自动扫描一些文件,然后将这些异常的IP加入到这个清单的。
首先停止denyhosts服务
[root@master01 ~]# service denyhosts stop
然后使用echo > /var/log/secure 清空文件
以下为扫描的文件列表,所以清空这些文件就可以了,不能删除,是清空,所以使用echo > 文件名
/var/log/secure ×
/etc/hosts.deny × 通常只修改这两个文件就OK了
/usr/share/denyhosts/data/hosts
/usr/share/denyhosts/data/hosts-restricted
/usr/share/denyhosts/data/hosts-root
/usr/share/denyhosts/data/hosts-valid
清空完毕,可以重启下日志计数器
[root@master01 ~]# service rsyslog restart
然后重启deny服务
[root@master01 ~]# service denyhosts start