• 防止ssh暴力破解的小工具denyhosts


    DenyHosts 简介

    DenyHosts 是 Python 语言写的一个程序软件,运行于 Linux 上预防 SSH 暴力破解的,它会分析 sshd 的日志文件(/var/log/secure),当发现重复的攻击时就会记录 IP 到 /etc/hosts.deny 文件,从而达到自动拒绝指定连接IP 的功能。

    安装:笔者在网上搜索时,发现很多的安装者使用的是yum install denyhosts -y 来安装,实测的话是不行的,提示找不到该包的存在,而下载压缩包解压安装方法实测可行。

    方法如下:

    wget https://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz    下载软件包
    tar -zxvf DenyHosts-2.6.tar.gz    解压
    cd DenyHosts-2.6/    进入目录
    yum install python -y    下载编译工具python
    python setup.py install    安装
    cd /usr/share/denyhosts/    进入安装目录
    cp denyhosts.cfg-dist denyhosts.cfg    重命名可加载的配置文件
    cp daemon-control-dist daemon-control    重命名启动工具
    ./daemon-control start    启动
    ln -s /usr/share/denyhosts/daemon-control /etc/init.d    为添加开机启动配置软链接
    chkconfig daemon-control on    添加开机启动
    chkconfig --list    检测是否加入开机启动

    如果操作没有遇到异常,那么可以看到

    如图所示这样,就已经加入了开机启动,ok,基本的配置就是这样,拿新安装的一个虚拟机来进行测试:

    在故意输错了几次密码之后,连接请求直接被拒绝了,实测有效,让我们来看下安装了denyhosts的这台机器的hosts.deny文件:

    果然,在文件中自动添加了尝试暴力破解的IP地址,拒绝来自该IP的所有ssh连接请求。

    denyhosts服务配置文件/usr/share/denyhosts/denyhosts.cfg详解:

    SECURE_LOG = /var/log/secure   #ssh日志文件
    # format is: i[dhwmy]
    # Where i is an integer (eg. 7)
    # m = minutes
    # h = hours
    # d = days
    # w = weeks
    # y = years
    #
    # never purge:
    PURGE_DENY = 50m               #过多久后清除已阻止IP
    HOSTS_DENY = /etc/hosts.deny   #将阻止IP写入到hosts.deny
    BLOCK_SERVICE = sshd           #阻止服务名
    PURGE_THRESHOLD =              #定义了某一IP最多被解封多少次。某IP暴力破解SSH密码被阻止/解封达到了PURGE_THRESHOLD次,则会被永久禁止;
    DENY_THRESHOLD_INVALID = 1     #允许无效用户登录失败的次数
    DENY_THRESHOLD_VALID = 10      #允许普通用户登录失败的次数
    DENY_THRESHOLD_ROOT = 5        #允许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 #DenyHosts日志位置

    其他注意事项:

    想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:

    1、停止 DenyHosts 服务

    2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP

    3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    /var/lib/denyhosts/hosts
    /var/lib/denyhosts/hosts-restricted
    /var/lib/denyhosts/hosts-root
    /var/lib/denyhosts/hosts-valid
    /var/lib/denyhosts/users-hosts

    4、如果不想自己解禁,可以等到一个重置周期后,自动解禁

    5、如果真的需要,可以在/etc/hosts.allow文件中添加信任IP,这样的话就可以无视掉denyhosts服务的限制,慎用!

  • 相关阅读:
    Static Linking versus Dynamic Linking
    C keywords are overloaded with serveral meanings
    深圳立体地图查查吧http://sz.chachaba.com/api.html
    What's a Declaration? What's a Definition?
    jQuery Template and Data Linking
    XPath
    singleton及多线程验证,所有线程完成才继续运行WaitHandle
    jquery文本框只输入数字插件
    UVA 993 Product of digits
    HDU 1879 继续畅通工程
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/11394765.html
Copyright © 2020-2023  润新知