首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DenyHosts防止ssh爆破

DenyHosts防止ssh爆破

作者头像
TomatoCool
发布于 2023-07-30 09:32:25
发布于 2023-07-30 09:32:25
37100
代码可运行
举报
文章被收录于专栏:TomatoCoolTomatoCool
运行总次数:0
代码可运行

下载地址:https://sourceforge.net/projects/denyhosts/files/

傻瓜式安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#  安装
tar xf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
#  制作配置文件
cp denyhosts.cfg-dist /etc/denyhosts.cfg
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control

将daemon-control中的

DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"

改为

DENYHOSTS_CFG = "/etc/denyhosts.cfg"

命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#  python版本报错可以在前面加上python2
#  启动DenyHosts
daemon-control start
#  查看DenyHosts启动状态
daemon-control status
#  停止
daemon-control stop

配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SECURE_LOG = /var/log/secure       #ssh日志文件
HOSTS_DENY = /etc/hosts.deny                  #控制用户登录的文件
# format is: i[dhwmy]
# Where i is an integer (eg. 7)
# m = minutes
# h = hours
# d = days
# w = weeks
# y = years
#                                  #(h表示小时,d表示天,m表示月,w表示周,y表示年)       
# never purge:
HOSTS_DENY = /etc/hosts.deny        ##控制用户登陆的文件,将多次连接失败的IP添加到此文件,达到屏蔽的作用 
PURGE_DENY = 30m               ##过多久后清除已经禁止的,设置为30分钟;,我这里为空表示永远不解禁
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日志位置

其他 :
#(h表示小时,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_VALID=5d            #有效用户登录失败计数归零的时间
AGE_RESET_ROOT=25d            #root用户登录失败计数归零的时间
AGE_RESET_RESTRICTED=25d      #用户的失败登录计数重置为0的时间(/usr/share/denyhosts/data/restricted-usernames)
AGE_RESET_INVALID=10d         #无效用户登录失败计数归零的时间
#用户的登陆失败计数会在多长时间后重置为0
RESET_ON_SUCCESS = yes         ##如果一个ip登陆成功后,失败的登陆计数是否重置为0
DAEMON_SLEEP = 30s             ##当以 后台方式运行时,每读一次日志文件的时间间隔。
DAEMON_PURGE = 1h              #当以后台方式运行时,清除机制在 HOSTS_DENY 中终止旧条目的时间间隔,这个会影响PURGE_DENY的间隔。
RESET_ON_SUCCESS = yes                  #如果一个ip登陆成功后,失败的登陆计数是否重置为0

查看攻击的ip记录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /etc/hosts.deny

添加白名单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/hosts.allow
#  添加sshd: 119.45.*.*: allow

遇到的错误:

错误1:

python: can't open file '/usr/bin/denyhosts.py': [Errno 2] No such file or directory

解决办法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#  找denyhosts.py
whereis denyhosts.py

发现正确位置在"/usr/local/bin/denyhosts.py",将daemon-control中的

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

改为

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

错误2: scode type="red" No such file or directory: '/var/log/secure'[/scode] 解决办法: 这里要打开系统的日志,因系统而异,打开/etc/denyhosts.cfg(配置文件),将

SECURE_LOG = /var/log/secure

,选择

#SECURE_LOG = /var/log/auth.log

并去掉注释

错误3:

Error deleting DenyHosts lock file: /var/lock/subsys/denyhosts [Errno 2] No such file or directory: '/var/lock/subsys/denyhosts'

解决办法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /var/lock/subsys/
touch /var/lock/subsys/denyhosts

错误4: scode type="red" File exists: '/var/lock/subsys/denyhosts'[/scode] 解决办法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#  删除文件
rm -f /var/lock/subsys/denyhosts

错误5:

NameError: global name 'TupleType' is not defined

解决办法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /usr/lib/python2.7/site-packages/DenyHosts/report.py
#  将'# from types import ListType, TupleType'的注释去掉
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通过DenyHosts阻止SSH暴力攻击教程
Denyhosts是一个Linux系统下阻止暴力破解SSH密码的软件,它的原理与DDoS Deflate类似,可以自动拒绝过多次数尝试SSH登录的IP地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对SSH密码进行穷举。
空空裤兜
2023/03/03
7070
总结几个常用的系统安全设置(含DenyHosts)
1)禁止系统响应任何从外部/内部来的ping请求攻击者一般首先通过ping命令检测此主机或者IP是否处于活动状态 如果能够ping通 某个主机或者IP,那么攻击者就认为此系统处于活动状态,继而进行攻击或破坏。如果没有人能ping通机器并收到响应,那么就可以大大增强服务器的安全性, linux下可以执行如下设置,禁止ping请求: [root@localhost ~]# echo "1"> /proc/sys/net/ipv4/icmp_echo_ignore_all
洗尽了浮华
2022/03/29
3.1K0
总结几个常用的系统安全设置(含DenyHosts)
CentOS7下使用DenyHosts阻止SSH暴力攻击
DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能,以帮助阻止SSH 服务器攻击(也称为基于字典的攻击和暴力破解攻击)。
yuanfan2012
2021/07/16
1.9K0
DenyHosts 阻止SSH暴力攻击
首先sshd服务可以说是linux服务器一个至关重要的服务,如果被暴力破解成功,就直接可以拿到服务器的控制权了,在这里有两种解决方案,第一种是直接生成秘钥然后配置ssh服务无密码登录,然后在配置文件中禁用用户使用密码登录,这种方案相对来说比较安全,但配置有点麻烦啊......
胡齐
2019/09/23
2.1K0
DenyHosts 阻止SSH暴力攻击
linux使用DenyHosts阻止SSH服务器攻击(暴力破解)
DenyHosts 是一个开源且免费的基于日志的入侵防御安全程序. 它旨在通过阻止发起方来监视和分析 SSH 服务器日志中的无效登录尝试、基于字典的攻击和暴力攻击。IP 通过添加条目到地址 /etc/hosts.deny 服务器上的文件,并防止 IP 地址进行任何进一步的此类登录尝试。 如何在Linux中安装DenyHosts 默认情况下 DenyHosts Linux 系统中不包含该工具,使用以下yum 命令安装软件包。 # yum install -y denyhosts denyhosts配置文件说
入门笔记
2022/06/02
8790
CentOS服务器安全防护实例
可以限制瞬间连接数过大的恶意IP(比如web应用防护,但不适用于LVS+Keepalived集群环境) 防护指令如下
用户1685462
2021/07/17
1.1K0
使用DenyHosts防止ssh暴力破解
DenyHosts是用python2.3编写的一个程序,会分析/var/log/secure等文件,当发现同一个ip进行多次ssh登录失败时会将其写入/etc/hosts.dengy文件,达到屏蔽该ip的目的。
用户1685462
2021/09/06
1.5K0
使用DenyHosts保护服务器安全
在几个月前,笔者介绍了一种保护服务器安全的方法 自动禁止攻击IP登陆SSH,保护服务器安全。这种方法需要自己去动手写相应的脚本,今天要介绍的是开源的脚本实现。
zhangheng
2020/04/28
2.1K0
云服务器上ssh服务安全加固
今天到一个朋友的创业公司进行技术交流,交流过程中,朋友提到他在阿里云上买的linux服务器上ssh服务经常被人暴力破解。我感觉很奇怪,一般来说ssh服务经过简单设置是很安全的,怎么可能会出现这种情况呢。进一步交流才知道他们购买linux服务器后,连一些基本的安全措施都没做。原来并不是所有人都知道放在公网上的服务器是要进行简单的安全加固的。下面把我这些年使用linux时对ssh服务的安全加固步骤写下来,以便其它人参考。(以下的命令脚本基于CentOS6,其它发行版类似) 使用普通用户密钥文件登录 直接使用ro
jeremyxu
2018/05/10
7.6K0
DenyHosts防御ssh暴力破解
前段时间博客刚上线不久,ssh服务就被暴力破解了十几万次,文章也被各种扫描器,爬虫血洗过了,也是醉了......wordpress又没多少重要的数据,我们大农夫现在都这么招仇恨嘛......
用户1467662
2018/07/26
1.5K0
DenyHosts防御ssh暴力破解
Linux SSH密码暴力破解技术及攻防实战
对于Linux操作系统来说,一般通过VNC、Teamviewer和SSH等工具来进行远程管理,SSH是 Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。 利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH客户端适用于多种平台,几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Iri
FB客服
2018/02/24
9.8K0
Linux SSH密码暴力破解技术及攻防实战
CentOS配置denyhosts配置
denyhosts是Python语言程序,借用tcp_wrapper程序来进行主机防护。作用:防止暴力破解服务器用户密码。 1、下载denyhosts wget -c 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 4、相关配
用户1086810
2018/06/26
1.8K0
Linux的ssh被爆破的应急处理!
作者站在ICT项目集成角度,不定期更新ICT项目集成类文章,技术方向涉及数通、安防,安全、云计算等;管理方向涉及项目管理,经验分享,IT新闻等。致力于普及时下最新的、最实在、最艳的ICT项目集成干货,阿祥志愿和您共同成长。
ICT系统集成阿祥
2025/06/24
1390
Linux的ssh被爆破的应急处理!
系统安全之SSH入侵的检测与响应
作为系列文章的第一篇https://www.freebuf.com/es/193557.html 介绍了攻防系统的整个环境和搭建方法,按照这篇文章应该是可以把整个环境搭建完毕的.。在这篇文章中还介绍到了课程大纲包含主机安全、web安全、后门/木马等等,下面就让我们开始我们的实验课程。
FB客服
2019/03/08
3.9K0
系统安全之SSH入侵的检测与响应
ssh访问控制,多次失败登录即封掉IP,防止暴力破解
近期一直发现站内的流量和IP不太正常,读取/var/log/secure 很多失败的登录信息!必须要整个方法整死他们,虽然我已经把ssh port修改为了XXX(能告诉你吗?)!但是攻击还是不断,随即请教了铭哥大神。由于担心没有测试机,直接线上操作把自己也加入black list就不好了。找了很多资料,最终也成功了。分享给大家! 一、系统:Centos6.9 64位 二、方法:读取/var/log/secure,查找关键字 Failed,(#cat /var/log/secure | grep Failed
老七Linux
2018/05/09
5.5K1
CentOS7防ssh爆破脚本
说明: 当输入三次密码错误时,ip将记录到/etc/black.txt文件,自动将ip添加到/etc/hosts.deny文件里禁止登录,如取消限制,修改两个文件,删除指定ip即可。
院长技术
2021/02/19
1.3K0
VPS安全之SSH设置
SSH是管理VPS的重要途径,所以SSH经常会受到攻击,所以我们需要将SSH武装起来,保护我们VPS的安全。
老高的技术博客
2022/12/27
9320
Linux---CentOS-Ubuntu防爆破SSH脚本
CentOS 7方式 黑名单IP touch /etc/black.txt SSH 防爆破脚本 vim /etc/secure_ssh.sh #!/bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /etc/black.txt for i in `cat /etc/black.txt` do IP=`echo $i |awk -
院长技术
2021/02/19
1.3K0
利用tcp_wrapper实现SSH登录的IP访问控制
tcp_wrapper是一个工作在传输层、对于进出本机访问某特定服务的连接基于规则进行检查的一个访问控制工具,tcp wrapper只能对基于tcp协议的服务作访问控制,但并不是所有基于tcp协议的服务都能实现用tcp wraper作访问控制
yuanfan2012
2019/08/29
1.7K0
利用tcp_wrapper实现SSH登录的IP访问控制
ssh远程连接失败_ssh connect to host port 22
不少人在ssh连接远程机器时遇到过ssh_exchange_identification: Connection closed by remote host的问题,在网上找了一堆教程试了都不行,博主总结了常见的几种解决方法(以Ubuntu18.04为例)。
全栈程序员站长
2022/09/27
4.2K0
相关推荐
通过DenyHosts阻止SSH暴力攻击教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验