使用Denyhost减少ssh暴力破解

1. 下载Denyhosts安装包

http://denyhosts.sourceforge.net/下载DenyHosts-x.x.tar.gz安装包

2. 解压安装

我下载的包为:DenyHosts-2.6.tar.gz

  
  
  
  
  1. tar zxvf DenyHosts-2.6.tar.gz  
  2. cd DenyHosts-2.6  
  3. python setup.py install 

阅读README文件。

3. 生成配置文件denyhosts.cfg,并进行配置

  
  
  
  
  1. cp denyhosts.cfg-dist denyhosts.cfg 

进行基本的配置

  
  
  
  
  1. vi denyhosts.cfg  
  2. # 系统用户登录的日志文件路径  
  3. SECURE_LOG = /var/log/secure  
  4. # 系统禁止登录主机文件  
  5. HOSTS_DENY = /etc/hosts.deny  
  6. # 被禁止的主机多长时间后可继续登录  
  7. PURGE_DENY = 1h 
  8. # 你所要监控的服务  
  9. BLOCK_SERVICE = sshd 
  10. # 允许无效用户登录失败的次数  
  11. DENY_THRESHOLD_INVALID = 5 
  12. # 允许普通用户登录失败的次数  
  13. DENY_THRESHOLD_VALID = 10 
  14. # 允许root用户登录失败的次数  
  15. DENY_THRESHOLD_ROOT = 1 
  16. # 是否进行反向域名解析  
  17. HOSTNAME_LOOKUP=NO 
  18. # 管理员邮件地址,我使用的是qq邮箱  
  19. ADMIN_EMAIL = qq邮箱  
  20. # SMTP服务器配置,使用qq的smtp服务  
  21. SMTP_HOST = smtp.qq.com  
  22. SMTP_PORT = 25 
  23. # SMTP用户名和密码  
  24. SMTP_USERNAME=qq邮箱  
  25. SMTP_PASSWORD=qq邮箱的密码  
  26. # 开启SYNC_SERVER  
  27. SYNC_SERVER = http://xmlrpc.denyhosts.net:9911  
  28. # denyhosts日志文件,默认值  
  29. DAEMON_LOG = /var/log/denyhosts 

3. 将denyhosts添加为启动服务

  
  
  
  
  1. cp /usr/share/denyhosts/daemon-control-dist /etc/rc.d/init.d/denyhosts  
  2. # 之后可以编辑该配置文件,修改以下三个路径,由于默认的已经正确了,不需要修改,你可以根据自己的喜好将配置文件放在别处  
  3. DENYHOSTS_BIN = "/usr/bin/denyhosts.py" 
  4. DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts" 
  5. DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg" 
  6. chown root:root /etc/rc.d/init.d/denyhosts  
  7. chmod a+x /etc/rc.d/init.d/denyhosts  
  8. chkconfig –add denyhosts  
  9. chkconfig denyhosts on 

4. 启动denyhosts

  
  
  
  
  1. service denyhosts start  
  2. # 可以用过以下命令确认是否运行  
  3. ps -ef | grep "denyhosts" | grep -v "grep"  
  4. root 13025 1 0 17:35 ? 00:00:00 python /usr/bin/denyhosts.py –daemon –config=/usr/share/denyhosts/denyhosts.cfg 

初始化时会测试你设置的邮箱是否可连接(我就把密码设错了,连不上),根据你的/var/log/secure文件并加入一些被禁止的IP,如下:

Added the following hosts to /etc/hosts.deny:

173.203.117.166
125.67.234.32
202.28.247.246
218.95.37.171
140.113.144.8
86.101.140.2
59.18.3.119
124.42.3.51
5. 可以查看日志文件

  
  
  
  
  1. tail -f /var/log/denyhosts 

6. 选项说明选项说明

  
  
  
  
  1. SECURE_LOG = /var/log/secure  
  2. # Mandrake, FreeBSD or OpenBSD:   
  3. #SECURE_LOG = /var/log/auth.log  
  4. #  
  5. # SuSE:  
  6. #SECURE_LOG = /var/log/messages  
  7. #  
  8. # Mac OS X (v10.4 or greater -   
  9. #   also refer to:   http://www.denyhosts.net/faq.html#macos  
  10. #SECURE_LOG = /private/var/log/asl.log  
  11. #  
  12. # Mac OS X (v10.3 or earlier):  
  13. #SECURE_LOG=/private/var/log/system.log  

  设置安全日志的存放文件,公司使用的大部分系统都是CentOS,所以日志的位置为/var/log/secure,如果为其他系统需要进行相应的调整

  
  
  
  
  1. # Most operating systems:  
  2. HOSTS_DENY = /etc/hosts.deny  
  3. #  
  4. # Some BSD (FreeBSD) Unixes:  
  5. #HOSTS_DENY = /etc/hosts.allow  
  6. #  
  7. # Another possibility (also see the next option):  
  8. #HOSTS_DENY = /etc/hosts.evil  

允许主机访问的文件

  
  
  
  
  1. PURGE_DENY = 1h 

 去除 HOST_DENY中超过指定时间的记录

  
  
  
  
  1. BLOCK_SERVICE  = sshd 

HOST_DENY中阻止的服务

  
  
  
  
  1. DENY_THRESHOLD_INVALID = 5 

当主机利用无效用户登录进行登录失败次数超过以下次数时,阻止这个主机

  
  
  
  
  1. DENY_THRESHOLD_VALID = 10 

有效用户

  
  
  
  
  1. DENY_THRESHOLD_ROOT = 1 

root用户 

  
  
  
  
  1. DENY_THRESHOLD_RESTRICTED = 1 

限制用户

  
  
  
  
  1. WORK_DIR = /usr/share/denyhosts/data 

denyhosts用于写数据的目录,里面有hostshosts-rootoffset sync-hosts users-invalid hosts-restrictedhosts-validsuspicious-loginsusers-hostsusers-valid这些文件 

  
  
  
  
  1. SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES 

当设置为YES时,如果允许登录时被认为可以,则对该主机进行记录。设置为NO时,如果允许的主机在登录时被认为可疑也不对该主机进行记录。在允许的主机范围外的主机可以登录全部会被记录。

  
  
  
  
  1. HOSTNAME_LOOKUP=NO 

是否对主机进行反向域名解析

  
  
  
  
  1. LOCK_FILE = /var/lock/subsys/denyhosts 

设置锁文件的位置,文件存在表示Denyhosts正在运行,保证每次只有一个实例运行

  
  
  
  
  1. ADMIN_EMAIL = 

管理员的邮箱,可设置多个,用逗号分隔

  
  
  
  
  1. SMTP_HOST = stmp.qq.com 

  指定STMP服务器

  
  
  
  
  1. SMTP_PORT = 25 

  指定SMTP服务器端口

  
  
  
  
  1. SMTP_USERNAME

  指定登录SMTP服务器的用户名

  
  
  
  
  1. SMTP_PASSWORD

  指定登录SMTP服务器的密码

  
  
  
  
  1. SMTP_FROM = DenyHosts [email protected] 

  指定来源者,注意指定的邮箱要和前面SMTP服务器配置的认证的用户名相同

  
  
  
  
  1. SMTP_SUBJECT = DenyHosts Report 

  指定邮件的主题

  
  
  
  
  1. AGE_RESET_VALID=5d 

  如果在指定的时间内没有失败的登录尝试,此主机的失败计数重置为0。适用于除了root之外,所有有效用户(在/etc/passwd中)的登录尝试。如果没有定义,这个计数将永远不会重置 

  
  
  
  
  1. AGE_RESET_ROOT=25d 

root用户的 

  
  
  
  
  1. AGE_RESET_RESTRICTED=25d 

  限制用户的

  
  
  
  
  1. AGE_RESET_INVALID=10d 

  无效用户的

  
  
  
  
  1. DAEMON_LOG = /var/log/denyhosts 

  denyhost服务日志

  
  
  
  
  1. DAEMON_SLEEP = 30s 

  后台方式运行,每读取一次日志文件的时间间隔

  
  
  
  
  1. DAEMON_PURGE = 1h 

以后台方式运行时,清除机制HOSTS_DENY中终止旧条目的时间间隔

 

你可能感兴趣的:(职场,安全,休闲,denyhost,sshd暴力破解)