背景

此前服务器多次被恶意挖矿,我们通过下面的命令搜索SSH远程登录日志,发现攻击者的IP尝试登录了200多次,即暴力破解了被攻击用户的密码。通过询问该用户得知,设置的密码确实比较简单,为了防止后面被爆破所以考虑关闭密码访问,但又不是很方便,那么有没有工具能自动监控登录日志,并将登录失败次数过多的用户直接拉黑呢?

 grep "Failed password for invalid user" /var/log/auth.log | awk '{print $13}' | sort | uniq -c | sort -nr | more

还真有,DenyHosts就是这样一个基于Python开发的工具,它运行于Linux平台用于防止SSH暴力破解密码登录,它会自动分析SSHD服务的日志(Ubuntu的是/var/log/auth.log文件)并维护一个黑名单,更多细节可以查询官网。

安装

需要注意的是,在安装这个软件之前建议先清理一下SSHD登录日志,因为这个软件会扫描历史日志,若它检测到你曾经登录失败的次数小于允许的次数,那么你也会被封禁。可以通过cat /dev/null > /var/log/auth.log命令来清理日志文件,清理后请重启日志服务,也就是service rsyslog restart。上述命令和后续命令均需要root用户来处理,如不是root用户则命令之前需要使用sudo来使用管理员权限。

在Ubuntu下,安装DenyHosts相对比较简单,也不需要采用源码安装的方式,直接通过apt就可以安装,具体命令如下。

apt-get update
apt-get install denyhosts
service denyhosts status

安装后服务会自动运行,应当会看到如下的运行状态。

然后就是服务的配置了,服务的配置文件为/etc/denyhosts.conf,整个程序的工作目录为/var/lib/denyhosts/,程序禁用的IP列表则在黑名单文件/etc/hosts.deny中。

配置文件中需要重点关注下面几项。

SECURE_LOG = /var/log/auth.log   # sshd日志文件
HOSTS_DENY = /etc/hosts.deny    # 黑名单文件
PURGE_DENY =  3d   # 过多久后清除已经禁止的,空代表永不解禁 其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
BLOCK_SERVICE = sshd   # 阻止服务名
DENY_THRESHOLD_INVALID = 5  # 允许无效用户(在/etc/passwd未列出)登录失败次数,允许无效用户登录失败的次数.
DENY_THRESHOLD_VALID = 5  #  允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT = 5  #  允许root登录失败的次数

修改配置文件后需要重启服务,对应的命令如下。

service denyhosts restart

若想要卸载DenyHosts则使用下面的命令。

service denyhosts stop
apt-get purge denyhosts

解封

由于我在服务器上使用了frp进行内网穿透,导致127.0.0.1这个IP被封,我无法使用frp服务了。在卸载DenyHosts无效后,发现依然无法访问,那大概知道是系统级别的禁用IP了,此是可以通过下面的命令来解封。

IP=输入想要解封的IP
service denyhosts stop
sed -i "/$IP/d" /etc/hosts.deny
sed -i "/$IP/d" /var/lib/denyhosts/hosts-valid
sed -i "/$IP/d" /var/lib/denyhosts/users-hosts
sed -i "/$IP/d" /var/lib/denyhosts/hosts
sed -i "/$IP/d" /var/lib/denyhosts/hosts-root
sed -i "/$IP/d" /var/lib/denyhosts/hosts-restricted
iptables -D INPUT -s $IP -j DROP

总结

DenyHosts是非常非常实用的防SSH暴力破解密码的一个工具,为了防止挖矿,可以安装使用它。

DenyHosts教程:防暴力破解SSH密码相关推荐

  1. Freebsd 下用 sshguard 防止暴力破解 ssh 密码

    2019独角兽企业重金招聘Python工程师标准>>> 在 Freebsd 控制台或用 dmesg -a 查看系统消息的时候会发现类似于下面的大量信息,这是因为有人在尝试暴力破解 S ...

  2. 第八天 02.hydra暴力破解ssh密码以及ftp密码

    hydra暴力破解ssh密码 实验环境: ​ windows7 ,kali 实验步骤: windows进入hydra目录 cd 命令 使用命令爆破SSH hydra -l 用户名 -p 密码字典 ss ...

  3. 使用Medusa美杜莎暴力破解SSH密码

    使用Medusa美杜莎暴力破解SSH密码 1.Medusa简介 Medusa(美杜莎)是一个速度快,支持大规模并行,模块化的爆力破解工具.可以同时对多个主机,用户或密码执行强力测试.Medusa和hy ...

  4. hydra暴力破解ssh密码

    环境:centos7.0 hydra,是一个非常好用的暴力破解工具,而且名字也很cool. 下面是官网上的介绍: AFP, Cisco AAA, Cisco auth, Cisco enable, C ...

  5. linux防暴力破解登录密码

    原文地址:https://blog.csdn.net/qq_30553773/article/details/78705079 上两个星期发生了一件事情,让我感觉到安全是多么的重要,因为租了一天学生机 ...

  6. Fail2ban配置ssh防暴力破解

    Fail2ban能够监控系统日志,匹配日志中的错误信息(使用正则表达式),执行相应的屏蔽动作(支持多种,一般为调用 iptables ),是一款很实用.强大的软件. 如:攻击者不断尝试穷举SSH.SM ...

  7. 用fail2ban阻止ssh暴力破解root密码

    安装fail2ban工具来实现防暴力破解,防止恶意攻击,锁定恶意攻击IP.   1.如果是centos系统,先yum安装fail2ban [root@VM_152_184_centos /]# yum ...

  8. fail2ban防暴力破解

    前言 使用fail2ban防暴力破解. 简介 fail2ban的工作原理是监听linux的工作日志,找到有问题的IP地址,再使用iptables规则禁用. 安装fail2ban 1.fail2ban功 ...

  9. 防暴力破解一些安全机制

    今天一个朋友突然QQ上找我说,网站被攻击了,整个网站内容被替换成违法信息,听到这个消息后着实吓了一跳.于是赶紧去找原因,最后才发现由于对方网站管理密码过于简单,被暴力破解了..在此我把对于防暴力破解预 ...

最新文章

  1. error 系统错误 错误码10007_为什么阿里巴巴禁止工程师直接使用日志系统( Log4j 、Logback )中的 API...
  2. GNU make 和 makefile
  3. 抽象工厂模式_常用设计模式--抽象工厂模式
  4. power指令集 mysql_PowerPC汇编指令集简析
  5. spring boot异常——java.net.BindException: Address already in use: bind
  6. srwebsocket 服务器过段时间会关闭_王者荣耀:伽罗大招遭到暗改?开启后直接冷却时间,无法手动关闭...
  7. Cooperative Content Distribution and Traffic Engineering
  8. 【数据结构】哈夫曼树与哈夫曼编码
  9. camel 调用soap_使用Apache Camel通过soap添加WS-Security
  10. java蓝桥杯 试题-基础练习-十六进制转八进制
  11. 转:C#调用C++的DLL搜集整理的所有数据类型转换方式
  12. 服务器中tomcat内存溢出配置文件修改
  13. python词频统计并按词频排序
  14. 我为什么选择Hexo建站
  15. SAP 财务本地化-账结法
  16. LeetCode 5208. 穿过迷宫的最少移动次数
  17. Access violation at address 77106D4E in module 'ntdll.dll'. Write of address 004051A5.
  18. 关于outlook签名图片大小的说明
  19. 路由之HSRP热备份
  20. 简历——“三无”应届生怎么写简历,全是干货!(模板直接拿走)

热门文章

  1. J .U.C 中的原子操作类
  2. Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?
  3. SpringBoot_配置-配置文件占位符
  4. php申请系统,PHP+MYSQL的文章管理系统(一)_php
  5. java log4j 多个文件_java – Log4j:每个请求一个日志文件
  6. JVM--字节码执行引擎
  7. Linux进程缓冲区大小,Linux IOCTL动态命令、动态|自定义缓冲区大小、IOCTL使用大缓冲区的问题...
  8. python怎么运行_程序员大牛讲解,Python程序的执行原理
  9. 响应文件是不是标书_什么是标书?投标书有哪些分类?标书和投标书的不同?...
  10. YOLO Object Detection with OpenCV