zoukankan      html  css  js  c++  java
  • DenyHosts 简单使用

    DenyHosts 简单使用

     

    零、前言#

    DenyHosts是一个Python脚本程序,它会监控并分析服务器(Linux系统)sshd的日志文件(/var/log/secure), 当发现重复的攻击时就会记录IP到指定的/etc/hosts.deny文件中,从而达到自动屏蔽IP的功能,阻止该IP继续攻击我们的服务器。
     
    比如我们在使用云服务器的时候,一开始登陆后就会提示有多少次尝试登陆你服务器的统计,往往这个数很大的时候就说明你的服务器被人关注了:
    我们可以使用下面命令(centos7.6):
    登陆成功的ip及登陆次数列表
    grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    登陆失败的ip及登陆次数列表
    grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr | more

    一、下载、安装DenyHosts#

    [DenyHosts GitHub页面](https://github.com/denyhosts/denyhosts)
    使用DenyHosts可以参考GitHub页面的README.md文件进行安装,当前时间最新的稳定版本是3.0,下载denyhosts-3.0.tar.gz文件,并复制到Linux系统中(比如我将它放在/home目录下)
    =>解压:
    tar zxvf denyhosts-3.0.tar.gz
    =>进入源文件目录:
    cd denyhosts-3.0
    =>使用root用户权限安装:
    =>This will install the DenyHosts modules into python's site-packages directory.
    python setup.py install
    因为网上很多教程都是安装的2.6版本的,所以安装完这一步之后会在/usr/share/下面找到deny-hosts目录,可是我安装3.0版本后却没有,不过没关系,denyhosts用到的文件在/usr/bin下面都有我们切到usr/bin下操作就可以了(cd /usr/bin)
    在此我们需要配置denyhosts.conf文件,进行个性化配置:
    还是在一开始的目录下(cd /home/denyhosts-3.0)
    => 将denyhosts.conf文件复制到/etc下(上面的install就会将该文件复制过去,这里如果提示是否覆盖的话就说明已经存在,输入no就可以了)
    cp denyhosts.conf /etc
    => 使用vim编辑denyhosts.conf文件(官网里面使用的是nano编辑器)
    vim /etc/denyhosts.conf
    以下是需要配置的地方:本人服务器环境:centos7.6
            ############ THESE SETTINGS ARE REQUIRED ############
    SECURE_LOG = /var/log/secure    # 监控的sshd日志文件,系统不同位置不同
    HOSTS_DENY = /etc/hosts.deny    # 屏蔽IP的记录文件
    PURGE_DENY = 7d                 # IP被屏蔽后,多久清除屏蔽记录(m-minutes,h-hours,d-days,w-weeks,y-years)
                                    # PURGE_DENY =  设置为空代表永远不清除
    PURGE_THRESHOLD = 3             # 某个host最多被清除的次数,如果清除次数超过这个值就不会再被清理了
     
    BLOCK_SERVICE  = sshd           # 阻止的服务名,默认是sshd,也可以设置FTP、SMTP等
     
    DENY_THRESHOLD_INVALID = 3      # 允许无效用户尝试失败次数(过了这个次数还是失败就加入屏蔽)
    DENY_THRESHOLD_VALID = 3        # 有效用户(普通用户)尝试失败次数
    DENY_THRESHOLD_ROOT = 3         # root用户尝试失败次数
    DENY_THRESHOLD_RESTRICTED = 1   # 设定denyhosts将屏蔽host写入到/etc/hsots.deny文件中
    WORK_DIR = /var/lib/denyhosts   # denyhosts工作数据目录
    HOSTNAME_LOOKUP=YES             # 是否做域名反解
    LOCK_FILE = /var/lock/subsys/denyhosts    # 将DenyHost启动的pid记录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务
           ############ THESE SETTINGS ARE OPTIONAL ############
    AGE_RESET_VALID=6h              # 普通有效用户登陆失败计数清零时间
    AGE_RESET_ROOT=6h               # root用户登陆失败计数清零时间
    AGE_RESET_RESTRICTED=25d        # /etc/hosts.deny文件清除数据时间
    AGE_RESET_INVALID=1d            # 无效用户登陆失败计数清零时间
           ######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE  ##########
    DAEMON_LOG = /var/log/denyhosts # denyhosts日志默认存放路径
    DAEMON_SLEEP = 30s              # 当以后台方式运行时,每读一次日志文件的时间间隔
    DAEMON_PURGE = 1h               # 当以后台方式运行时,清除机制在hosts.deny中终止就条目的时间间隔,这个会影响PURGE_DENY参数
     
    => 查看与配置IP白名单、黑名单(当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准)
    vim /etc/hosts.deny         # 黑名单无需手动配置,denyhosts会自动检测添加
    vim /etc/hosts.allow        # 配置规则:sshd:171.113.244.96:allow, 配置多个:171.113.244.96,158.51.96.58:allow

    => 配置、启动、停止、查看denyhosts服务#

    cd /usr/bin                # 切换到/usr/bin目录下(因为该目录下有daemon-control,^-)
    cp daemon-control-dist daemon-control
        => 编辑适合自己系统环境的daemon-control文件,以下是我个人环境的相关denyhosts文件目录,这里需要自己去核对
        vim daemon-control
        ###############################################
        #### Edit these to suit your configuration ####
        ###############################################
     
        DENYHOSTS_BIN   = "/usr/bin/denyhosts.py"
        DENYHOSTS_LOCK  = "/var/lock/subsys/denyhosts"
        DENYHOSTS_CFG   = "/etc/denyhosts.conf"
     
        PYTHON_BIN      = "/usr/bin/env python"
        注意一点:一般centos默认有python2,这里启动denyhosts会报错,我们需要修改下安装的/DenyHosts/report.py包
        vim /usr/lib/python2.7/site-packages/DenyHosts/report.py
        将# from types import ListType, TupleType 取消注释:from types import ListType, TupleType
        
        => 修改权限:
        chown root daemon-control
        chmod 700 daemon-control

    启动denyhosts#

    daemon-control start

    查看denyhosts是否运行#

        方法一:daemon-control status
        方法二:ps -ef | grep deny

    停止denyhosts#

    daemon-control stop
     
     
  • 相关阅读:
    C++ 将对象写入文件 并读取
    IronPython fail to add reference to WebDriver.dll
    How to Capture and Decrypt Lync Server 2010 TLS Traffic Using Microsoft Tools
    .net code injection
    数学系学生应该知道的十个学术网站
    Difference Between Currency Swap and FX Swap
    Swift开源parser
    谈谈我对证券公司一些部门的理解(前、中、后台)[z]
    JDK8记FullGC时候Metaspace内存不会被垃圾回收
    JVM源码分析之JDK8下的僵尸(无法回收)类加载器[z]
  • 原文地址:https://www.cnblogs.com/littleBees/p/13940719.html
Copyright © 2011-2022 走看看