> Linux安全 >

利用DenyHosts,防止黑客通过SSH和FTP暴力破解服务器Linux

安装DenyHosts,必须要符合两个条件,libwrap动态链接库和python版本大于2.3

1、查看libwrap动态链接库文件

ldd /usr/sbin/sshd|grep libwrap
[root@iZ286g1swknZ log]# ldd /usr/sbin/sshd|grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f1854ce9000)
2、查询python版本

python -V
[root@iZ286g1swknZ ~]# python -V
Python 2.7.5


1、下载DenyHosts-2.6

链接: http://pan.baidu.com/s/1c1aSEJ2 密码: qdcp

2、通过FTP工具上传到服务器并进行解压

unzipDenyHosts-2.6.zip

3、进入DenyHosts-2.6文件夹

cdDenyHosts-2.6

4、安装denyhost脚本

python setup.py install

5、进入配置目录

cd /usr/share/denyhosts/

6、为了方便改变配置文件名称

cp daemon-control-dist daemon-control

7、修改服务文件名称

cp denyhosts.cfg-dist denyhosts.cfg

8、提高安全级别,修改权限

chown root daemon-control
chmod 700 daemon-control

9、根据自己需要进行相应的配置

vi denyhosts.cfg
#ssh日志文件
SECURE_LOG = /var/log/secure

#将阻止IP写入到hosts.deny
HOSTS_DENY = /etc/hosts.deny
#过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
PURGE_DENY = 5m
#禁止的服务,我设置为全部,禁止登录SSH和FTP
BLOCK_SERVICE = ALL

#允许无效用户(在/etc/passwd未列出)登录失败次数,允许无效用户登录失败的次数.
DENY_THRESHOLD_INVALID = 5

#允许普通用户登录失败的次数
DENY_THRESHOLD_VALID = 5

#允许root登录失败的次数
DENY_THRESHOLD_ROOT = 5

#设定 deny host 写入到该资料夹
DENY_THRESHOLD_RESTRICTED = 1

#将deny的host或ip纪录到Work_dir中
WORK_DIR = /usr/share/denyhosts/data

SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS = YES

#是否做域名反解
HOSTNAME_LOOKUP=YES

#将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
LOCK_FILE = /var/lock/subsys/denyhosts

#设置管理员邮件地址
ADMIN_EMAIL = denyhosts@163.com

SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report

#有效用户登录失败计数归零的时间
AGE_RESET_VALID=1d

#root用户登录失败计数归零的时间
AGE_RESET_ROOT=1d

#用户的失败登录计数重置为0的时间(/usr/share/denyhosts/data/restricted-usernames)
AGE_RESET_RESTRICTED=5d

#无效用户登录失败计数归零的时间
AGE_RESET_INVALID=10d

#自己的日志文件
DAEMON_LOG = /var/log/denyhosts

DAEMON_SLEEP = 30s

#该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间
DAEMON_PURGE = 5m

10、启动服务

./daemon-control start

11、如果要使DenyHosts每次重起后自动启动还需做如下设置

# ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
# chkconfig --add denyhosts
# chkconfig denyhosts on

12、删除已经存在的denyhosts文件(如果denyhosts存在)

rm -rf /var/lock/subsys/denyhosts

13、启动denyhosts服务

service denyhosts start

14、查看/var/log /denyhosts,是否全部禁止(ssh和FTP)



(责任编辑:IT)