情景:今天登录服务器,突然发现登录之后展示的信息有点多,仔细端倪发现:

  There were 3975 failed login attempts since the last successful login.
 
这很明显是有人想要试图登录我的服务器,企图进行暴力破解。虽然我设置的密码很复杂,但是这种飞来的伤害岂能坐视不管。
 
 
 
于是就使用DenyHosts来进行防御一下:
  DenyHosts是Python语言写的一个程序软件,运行于Linux上预防SSH暴力破解的,它会分析sshd的日志文件(/var/log/secure),当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。
 
  当然除了这种方式,还可以彻底一些,不允许以用户名+密码的方式进行登录。而是采用pem方式进行登录(详情)
 
1. 从官网上下载(http://denyhosts.sourceforge.net/
 
2. 解压安装
tar zxvf DenyHosts-2.6.tar.gz

cd DenyHosts-2.6

python setup.py install

cd /usr/share/denyhosts/   

cp denyhosts.cfg-dist denyhosts.cfg      //配置文件

cp daemon-control-dist daemon-control    //启动文件

chown root daemon-control
chmod 700 daemon-control

3. 其他设置

#对daemon-control进行软连接,方便管理
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts /etc/init.d/denyhosts start #启动denyhosts chkconfig --add denyhosts
chkconfig denyhosts on #将denghosts设成开机启动
4. 配置文件(vim /usr/share/denyhosts/denyhosts.cfg )
       ############ THESE SETTINGS ARE REQUIRED ############

SECURE_LOG = /var/log/secure                  #ssh 日志文件 #redhat系列根据/var/log/secure文件来判断;
#Mandrake、FreeBSD根据 /var/log/auth.log来判断;
#SUSE则是用/var/log/messages来判断,这些在配置文件里面都有很详细的解释。
HOSTS_DENY = /etc/hosts.deny #控制用户登录的文件
PURGE_DENY = 30m #过多久后清除已经禁止的,设置为30分钟;
# ‘m’ = minutes
# ‘h’ = hours
# ‘d’ = days
# ‘w’ = weeks
# ‘y’ = years
BLOCK_SERVICE = sshd #禁止的服务名,当然DenyHost不仅仅用于SSH服务
DENY_THRESHOLD_INVALID = 1 #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 3 #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 3 #允许root登陆失败的次数 DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料夹
WORK_DIR = /usr/share/denyhosts/data #将deny的host或ip记录到work_dir中
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES #是否做域名反解
LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHost启动的pid记录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务 ############ THESE SETTINGS ARE OPTIONAL ############
ADMIN_EMAIL = #管理员邮箱
SMTP_HOST =
SMTP_PORT =
SMTP_FROM =
SMTP_SUBJECT = DenyHosts Report #邮件主题
AGE_RESET_VALID=5m #有效用户登录失败计数归零的时间
AGE_RESET_ROOT=10m #root用户登录失败计数归零的时间
AGE_RESET_RESTRICTED=10m #用户的失败登录计数重置为0的时间(/usr/share/denyhosts/data/restricted-usernames)
AGE_RESET_INVALID=5m #无效用户登录失败计数归零的时间 ######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE ########## DAEMON_LOG = /var/log/denyhosts #DenyHosts日志文件存放的路径,默认
DAEMON_SLEEP = 30s #当以后台方式运行时,每读一次日志文件的时间间隔。
DAEMON_PURGE = 10m #当以后台方式运行时,清除机制在 HOSTS_DENY 中终止旧条目的时间间隔,这个会影响PURGE_DENY的间隔。
RESET_ON_SUCCESS = yes #如果一个ip登陆成功后,失败的登陆计数是否重置为0
 服务启动成功之后,就可以手动尝试了
 
5. 验证
  根据denyhosts配置中设置的策略会将试图破解的IP加入到/etc/hosts.deny,当你再去访问的时候,会出现一个错误:
        ssh_exchange_identification: read: Connection reset by peer
  说明已经成功,并且在我们的/etc/hosts.deny中会看到该IP地址
 
 6. 移除已经加入黑名单的IP
  删除一个已经禁止的主机IP,并加入到允许主机例表,只在 /etc/hosts.deny 删除是没用的。需要进入工作 目录(WORK_DIR),进入以下操作:
  1)停止服务
service denyhosts stop

  2)

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

  3)编辑文件

[root@xxx data]# pwd
/usr/share/denyhosts/data [root@xxx data]# grep 117.78.49.95 *
hosts:117.78.49.95:12:Tue Jan 2 23:25:32 2018
hosts-restricted:117.78.49.95:0:Tue Jan 2 22:48:20 2018
hosts-root:117.78.49.95:1:Tue Jan 2 23:25:02 2018
hosts-valid:117.78.49.95:0:Tue Jan 2 22:54:30 2018
users-hosts:qq - 117.78.49.95:3:Tue Jan 2 22:54:30 2018
users-hosts:root - 117.78.49.95:11:Tue Jan 2 23:25:02 2018
删除
sed -i "/117.78.49.95/d" *

  4)  重启服务

systemctl restart denyhosts.service

其他命令:
systemctl start denyhosts.service
systemctl stop denyhosts.service systemctl status denyhosts.service

  5) 暴力添加白名单

tee -a /etc/hosts.allow
117.78.49.95


cat /etc/hosts.allow
sshd: 117.78.49.95
 
 
 
 
 
 
 
 
 
 
 

服务器安全之DenyHosts的更多相关文章

  1. DenyHosts 阻止SSH暴力攻击

    当你的 Linux 服务器暴露在互联网之中,该服务器将会遭到互联网上的扫描软件进行扫描,并试图猜测SSH登录口令. 你会发现,每天会有多条SSH登录失败纪录.那些扫描工具将对你的服务器构成威胁,你必须 ...

  2. 防止暴力破解-DenyHosts应用

    当你的linux服务器暴露在互联网之中,该服务器将会遭到互联网上的扫描软件进行扫描,并试图猜测SSH登录口令.   你会发现,每天会有多条SSH登录失败纪录.那些扫描工具将对你的服务器构成威胁,你必须 ...

  3. Linux 利用hosts.deny 防止暴力破解ssh

    一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7 ...

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

    公司有台服务器被坏人盯上了,通过日志可以看到一直在做暴力破解ssh. 防止服务器被暴力破解使用DenyHosts 参考链接: 防止ssh破解,Ubuntu安装denyhosts的一些问题 防止你的ss ...

  5. 增强VPS SSH账号安全:改端口,禁用Root,密钥登录,Denyhosts防暴力攻击

    VPS SSH账号是我们日常管理VPS的主要登入方式,尤其是Root账号,对Linux系统安全至关重要.以前好多站长喜欢用Putty中文版,这实际是别人修改官方Putty汉化而来,这些软件被植入了后门 ...

  6. linux防止sshd被爆破(安装denyhosts)

    这是一篇收集在日志里的文档,当初查看服务器sshd日志发现很多不明IP尝试登陆,因此想用什么办法阻止这样的事情发生.网上找了下用denyhosts可以解决这样的问题,因而也就将其收集在日志里了.由于时 ...

  7. DenyHosts 安装及配置详解

    DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP ...

  8. 解除被DenyHosts锁定的IP地址

    自己的本本无法ssh上服务器,提示 ssh_exchange_identification: read: Connection reset by peer 仔细回想,自己手贱把~下面的一个ssh文件删 ...

  9. 在Linux上怎么安装和配置DenyHosts工具

    使用DenyHosts能够进行自动屏ip的功能,掌握DenyHosts在Linux系统中的安装是很有必要的,那么在Linux系统中要如何安装DenyHosts工具呢?安装后又要如何配置呢?这都是用户需 ...

  10. PUTTY无法远程连接服务器故障解决[转]

    对于一个刚刚了解putty工具的新手来说,在putty工具使用中有时出现了问题而无法解决.今天就来介绍怎么解决putty无法远程连接服务器的故障. 用putty远程连接服务器时,提示错误 server ...

随机推荐

  1. CSIG企业行-走进合合信息成功举行,聚焦生成式人工智能、智能文档处理前沿热点

    3月18日,由中国图象图形学学会(CSIG)主办,合合信息.CSIG文档图像分析与识别专业委员会联合承办的"CSIG企业行"系列活动成功举办.此次活动以"图文智能处理与多 ...

  2. ASP.NET Core – View Component

    前言 以前写过 Asp.net core 学习笔记 ( ViewComponent 组件 ), 这篇作为翻新版. 参考 Docs – View components in ASP.NET Core D ...

  3. keycloak~关于授权码认证中的scope的实践

    前言 在 Keycloak 14.0.0 中,使用 protocol/openid-connect/auth 接口获取授权码时,scope 参数是可选的,但它确实有作用.下面是关于 scope 参数的 ...

  4. 三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)

    三,MyBatis-Plus 的各种查询的"超详细说明",比如(等值查询,范围查询,模糊查询...) @ 目录 三,MyBatis-Plus 的各种查询的"超详细说明&q ...

  5. 【赵渝强老师】在Spark SQL中读取JSON文件

    Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用.为什么要学习Spark SQL?如果大家了解Hive的话,应该 ...

  6. 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2024年7月刊

    本文为大家整理了墨天轮数据社区2024年7月发布的优质技术文章/文档,主题涵盖Oracle.MySQL.PostgreSQL等主流数据库系统以及国产数据库的深度教程和实用指南.从基础的安装配置到复杂的 ...

  7. 手动检查 token 是否过期

    1.在 存储 token 的时候说明登录了 此时 把时间戳记录一下  js-cookies - auth.js // 导入 js-cookie 用于操作 cookies import Cookies ...

  8. Nuxt.js 应用中的 ready 事件钩子详解

    title: Nuxt.js 应用中的 ready 事件钩子详解 date: 2024/10/12 updated: 2024/10/12 author: cmdragon excerpt: read ...

  9. kali Linux及mac os 破解WiFi

    wpa-dictionary 用于 Wi-Fi 密码破解. Linux 篇(推荐) 1. 安装 aircrack-ng 使用相应包管理工具安装,例如 Debian/Ubuntu 使用 apt 安装: ...

  10. 浅谈 K-D Tree 及其进阶应用

    前言 \(\text{K-D Tree (K-Dimension Tree)}\) 是一种可以有效处理高维信息的数据结构. 在一般信息学竞赛题目中 \(k = 2\),此时它又称 \(\text{2- ...