zoukankan      html  css  js  c++  java
  • 防止服务器被暴力破解使用DenyHosts

    公司有台服务器被坏人盯上了,通过日志可以看到一直在做暴力破解ssh。

    防止服务器被暴力破解使用DenyHosts

    参考链接:

    1. 防止ssh破解,Ubuntu安装denyhosts的一些问题
    2. 防止你的sshd被暴破

    如何检查服务器的工具集是否被替换

    浅谈Linux被入侵后,如何检查后门

    参考链接
    浅谈Linux被入侵后,如何检查后门

    防止ssh破解,Ubuntu安装denyhosts的一些问题 (2013-04-11 10:26:46)转载▼
    DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

    使用root的安装,普通用户添加sudo,要不权限不够

    (1)下载软件安装包
    wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
    (2)解压
    tar -zxvf DenyHosts-2.6.tar.gz
    (3)安装
    cd DenyHosts-2.6
    python setup.py install
    (会输出一堆信息,留意一下denyhosts.py的路径,后面启动的时候或许会用上)

    (4)为了能开机自动启动,在系统中做一个名为“denyhosts”的符号链接,然后添加到启动项中:
    ln -s /usr/share/denyhosts/daemon-control-dist /etc/init.d/denyhosts
    chkconfig –add denyhosts
    (5)
    到 /usr/share/denyhosts/ 目录下,将配置文件denyhosts.cfg-dist复制为一个新的配置文件
    cd /usr/share/denyhosts
    cp denyhosts.cfg-dist denyhosts.cfg

    修改配置文件:
    vim /usr/share/denyhosts/denyhosts.cfg
    sshd 登录日志文件。不同系统的不一样
    SECURE_LOG = /var/log/auth.log

    限制主机访问的文件
    HOSTS_DENY = /etc/hosts.deny

    移除 HOSTS_DENY 中超过以下时间的旧条目
    PURGE_DENY = 1w
    ps:过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟

    阻止的服务。默认是 sshd ,可以设置为其他或全部。
    BLOCK_SERVICE = sshd

    当该主机利用无效用户进行登录尝试失败超过以下的次数时,阻止该主机
    DENY_THRESHOLD_INVALID = 3

    针对有效用户的
    DENY_THRESHOLD_VALID = 4

    最多允许root登录失败多少次
    DENY_THRESHOLD_ROOT = 3

    DenyHosts 用于写数据用的。在里面可以看到 hosts,hosts-root,offset,users-hosts,users-valid,hosts-restricted,hosts-valid,suspicious-logins,users-invalid 这些记录。
    WORK_DIR = /var/lib/denyhosts

    邮箱设置

    是否做域名反解析
    HOSTNAME_LOOKUP=NO

    用来接收报警信息的邮箱
    ADMIN_EMAIL = xxx@163.com

    smtp服务器地址,当你需要DenyHosts发邮件给你报警的时候,要设置这个参数
    SMTP_HOST = smtp.163.com

    smtp服务器端口
    SMTP_PORT = 25

    登录邮箱帐户的用户名
    SMTP_USERNAME=usr

    登录邮箱帐户的密码
    SMTP_PASSWORD=pas

    邮件中的发件人信息
    SMTP_FROM = DenyHosts

    报警邮件的标题
    SMTP_SUBJECT = DenyHosts Report

    其他的基本上不用改了

    (6)启动服务

    /etc/init.d/denyhosts start

    (从输出的信息来看,这种启动方法实际上是调用了如下的命令:

    /usr/bin/denyhosts.py –daemon –config=/usr/share/denyhosts/denyhosts.cfg

    可见,它使用的配置文件是/usr/share/denyhosts/denyhosts.cfg ,这也是为什么我们在上面的步骤中要把默认的配置文件复制为一个新的配置文件“denyhosts.cfg”的原因了。)

    启动时若显示:python: can't open file '/usr/bin/denyhosts.py': [Errno 2] No such file or directory

    解决方法:拷贝/usr/local/bin/denyhosts.py 到/usr/bin下

    cp /usr/local/bin/denyhosts.py /usr/bin

    或许修改启动文件 /usr/share/denyhosts/daemon-control-dist 的DENYHOSTS_BIN值

    DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"

    (7)测试:

    从另一台服务器上,以一个不存在的用户名和密码来ssh登录部署了的DenyHosts服务器,如果你在DenyHosts的配置文件中设置的是错误地尝试一次就被block,那么你就会发现你这台登录的客户端服务器被block了。并且,在部署了DenyHosts的服务器上,查看文件/etc/hosts.deny 的内容,会发现多了一条记录,正是屏蔽了登录者的那一条记录,这就说明生效了

    (8)备注:

    如果一台服务器被误block了,可以在部署DenyHosts的服务器上,将文件 /etc/hosts.deny 中相应的条目删掉,再重启DenyHosts服务(/etc/init.d/denyhosts restart),就可以解除block了

  • 相关阅读:
    Nginx的访问控制
    远程登录
    Linux的网络命令
    laravel-collect
    laravel-model
    laravel-Macroable
    laravel-容器
    机器学习-Logisitic回归
    机器学习-多变量线性回归
    算法笔记-分支界限法
  • 原文地址:https://www.cnblogs.com/fly-fish/p/4897731.html
Copyright © 2011-2022 走看看