zoukankan      html  css  js  c++  java
  • linux防止sshd被爆破(安装denyhosts)

      这是一篇收集在日志里的文档,当初查看服务器sshd日志发现很多不明IP尝试登陆,因此想用什么办法阻止这样的事情发生。网上找了下用denyhosts可以解决这样的问题,因而也就将其收集在日志里了。由于时间较久远,找不到原文的出处,如果你知道原文出处,可以联系我加上。好了,入正题。

      Denyhosts 是一个以Python2.3编写的程序,它主要根据系统日志文件/var/log/secure文件分析,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。

      一、检查安装环境:

        1) 判断系统安装的sshd是否支持tcp_wrappers(默认都支持),命令如下:

    ldd /usr/sbin/sshd |grep libwrap.so.0

        如果有输出:libwrap.so.0 => /lib64/libwrap.so.0 则为支持

        2)判断是否有python(centos默认都有):

    python -V

        只要系统Python版本不小于2.3版本即可(本机版本为Python 2.6.5)。

      二、安装DenyHosts

        1、下载DenyHosts-2.6.tar.gz并上传到服务器,可以在http://denyhosts.sourceforge.net/上下载最新的程序。

        2、安装

          1)、解压

    tar -zxvf DenyHosts-2.6.tar.gz

          2)、安装

    cd DenyHosts-2.6
    python setup.py install

    程序脚本自动安装在:/usr/share/denyhosts目录
    库文件安装在:/usr/lib/python2.6/site-packages/DenyHosts目录下
    denyhosts.py默认安装在:/usr/bin/目录下

        3、设置启动脚本

    cd /usr/share/denyhosts/
    cp daemon-control-dist daemon-control
    chown root daemon-control
    chmod 700 daemon-control

    ##将denyhosts.cfg-dist中不是以"#"开头的行,写入denyhosts.cfg文件

    grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg

          编辑denyhosts.cfg

    vi denyhosts.cfg

    具体配置项可参考以下的配置:

     ############ THESE SETTINGS ARE REQUIRED ############
                ##分析源文件
                SECURE_LOG = /var/log/secure
                ##禁止sshd登陆的IP存放文件
                HOSTS_DENY = /etc/hosts.deny
                
                ##过多久后清除已经禁止的IP
                PURGE_DENY =  1d
                
                
                ##监控的服务名
                BLOCK_SERVICE  = sshd
                
                ##表示允许无效用户登录失败的次数
                DENY_THRESHOLD_INVALID = 3
                
                ##表示允许普通用户登录失败的次数
                DENY_THRESHOLD_VALID = 3
                
                ##表示允许root用户登录失败的次数
                DENY_THRESHOLD_ROOT = 3
                
                
                DENY_THRESHOLD_RESTRICTED = 1
                
                
                WORK_DIR = /usr/share/denyhosts/data
                
                SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
                
                ##是否做域名反解
                HOSTNAME_LOOKUP=NO
                
                
                LOCK_FILE = /var/lock/subsys/denyhosts

        4、将denyhosts添加到系统服务并自动启动

    1)、自启动

    vi /etc/rc.local 

    在末尾添加以下行

    /usr/share/denyhosts/daemon-control start

    2)、添加至系统服务

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

    5、启动denyhosts

    service denyhosts start

        6、查看denyhosts是否运行成功

    service denyhosts status

        显示:DenyHosts is running with pid = XXXX,即运行成功。

        7、至此,denyhosts也就配置完成了;此外将sshd的默认端口修改掉,再结合denyhosts可以防止大部分sshd的暴力破解了。

  • 相关阅读:
    关于R文件
    Android View的Adapter
    java基础---->java多线程之Join(二)
    java基础---->多线程之Runnable(一)
    java基础---->多线程之Daemon(五)
    java基础---->多线程之priority(四)
    java高级---->Thread之CountDownLatch的使用
    java高级---->Thread之Semaphore的使用
    java框架---->quartz整合spring(一)
    springdata----->spring集成redis(一)
  • 原文地址:https://www.cnblogs.com/rwxwsblog/p/4590608.html
Copyright © 2011-2022 走看看