DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的***时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。---百度说的。
当你的linux服务器暴露在互联网之中,该服务器将会遭到互联网上的扫描软件进行扫描,并试图猜测SSH登录口令。
官方网:http://denyhosts.sourceforge.net/
个人觉得如果系统使用SSH RSA 公钥的话denyhosts可以不使用了。
安装十分简单,看一下README文件一下子就明白了。如下:
- wget http://nchc.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz
- tar zxf DenyHosts-2.6.tar.gz
- cd DenyHosts-2.6
- python setup.py install
应用配置:
- cd /usr/share/denyhosts/
- grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
- cat denyhosts.cfg
- ############ THESE SETTINGS ARE REQUIRED ############
- SECURE_LOG = /var/log/secure #系统安装日志的绝对路径
- HOSTS_DENY = /etc/hosts.deny #记录拒绝访问的IP文件
- PURGE_DENY = 1d #过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
- BLOCK_SERVICE = sshd
- DENY_THRESHOLD_INVALID = 3 #允许无效用户失败的次数
- DENY_THRESHOLD_VALID = 3 #允许普通用户登陆失败的次数
- DENY_THRESHOLD_ROOT = 3 #允许root登陆失败的次数
- DENY_THRESHOLD_RESTRICTED = 1
- WORK_DIR = /usr/share/denyhosts/data
- SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
- HOSTNAME_LOOKUP=YES
- LOCK_FILE = /var/lock/subsys/denyhosts
- ############ THESE SETTINGS ARE OPTIONAL ############
- ADMIN_EMAIL = #接收邮件的邮件地址
- SMTP_HOST = localhost
- SMTP_PORT = 25
- SMTP_FROM = DenyHosts <nobody@localhost>
- SMTP_SUBJECT = DenyHosts Report
- AGE_RESET_VALID=5d #有效用户登录失败计数归零的时间
- AGE_RESET_ROOT=25d #root用户登录失败计数归零的时间
- AGE_RESET_RESTRICTED=25d
- AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间
- ######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE ##########
- DAEMON_LOG = /var/log/denyhosts
- DAEMON_SLEEP = 30s
- DAEMON_PURGE = 1h
- ######### THESE SETTINGS ARE SPECIFIC TO ##########
- ######### DAEMON SYNCHRONIZATION ##########
启动:
- cp daemon-control-dist daemon-control
- chmod 700 daemon-control
- ./daemon-control start
- ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
- chkconfig --add denyhosts
- chkconfig --list denyhosts
如想让某IP不受denyhosts禁止,可以在/etc/hosts.allow里面添加。如:
vi /etc/hosts.allow
sshd: 192.168.30.2 #允许192.168.30.2访问该主机的ssh服务
转载于:https://blog.51cto.com/fengzhige/1092072