Denyhost 安装配置,抵御暴力破解

简介:

denyhosts是python语言程序,借用tcp_wrapper程序来进行主机防护,它会自动把登陆失败次数超出限制的主机ip加入到/etc/hosts.deny 借此来屏蔽该主机。


程序官网地址:http://denyhosts.sourceforge.net/


1、安装

tar -zxvf DenyHosts-2.6.tar.gz

cd DenyHosts-2.6

python2.7 setup.py install

默认是安装到/usr/share/denyhosts目录


2、配置

cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg
vi denyhosts.cfg


配置文件相关参数

 ############ THESE SETTINGS ARE REQUIRED ############

SECURE_LOG = /var/log/secure

HOSTS_DENY = /etc/hosts.deny

PURGE_DENY = 1w #过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟

BLOCK_SERVICE  = sshd

DENY_THRESHOLD_INVALID = 3 #允许无效用户失败的次数

DENY_THRESHOLD_VALID = 5 #允许普通用户登陆失败的次数

DENY_THRESHOLD_ROOT = 5 #允许root登陆失败的次数

DENY_THRESHOLD_RESTRICTED = 1

WORK_DIR = /usr/share/denyhosts/data

SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES

HOSTNAME_LOOKUP=YES

LOCK_FILE = /var/lock/subsys/denyhosts

 ############ THESE SETTINGS ARE OPTIONAL ############

ADMIN_EMAIL = denyhosts@163.com #若有ip被禁用发邮件通知

SMTP_HOST = localhost

SMTP_PORT = 25

SMTP_FROM = DenyHosts <192.168.0.1@localhost>

SMTP_SUBJECT = DenyHosts Report

AGE_RESET_VALID=1d #有效用户登录失败计数归零的时间

AGE_RESET_ROOT=1d #root用户登录失败计数归零的时间

AGE_RESET_RESTRICTED=1d

AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间

######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE  ##########

DAEMON_LOG = /var/log/denyhosts

DAEMON_SLEEP = 30s

DAEMON_PURGE = 1h

3、设置启动脚本 

cp daemon-control-dist daemon-control

cp daemon-control-dist /etc/init.d/denyhost

chmod 700 /etc/init.d/denyhost

chkconfig --add denyhosts

chkconfig denyhosts on

启动服务

/etc/init.d/denyhost start

denyhos使用

如果不想让主机拒绝某一个ip,做法如下:

vi /etc/hosts.allow   

sshd 192.168.0.1  #允许192.168.0.1访问该主机的ssh服务

如果想拒绝某一个ip同样使用vi /etc/hosts.deny添加就Ok


遇到的错误

1、#service denyhost startstarting DenyHosts:   /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg

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


这个错误很明显是找不到'/usr/bin/denyhosts.py' 文件,使用which 找出文件的真实路径,然后打开启动脚本把默认的路径替换掉即可。

vim /etc/init.d/denyhost

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

DENYHOSTS_LOCK  = "/var/lock/subsys/denyhosts"

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


2、/etc/init.d/denyhost start

starting DenyHosts:    /usr/bin/env python /usr/local/python27/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg

Traceback (most recent call last):

  File "/usr/local/python27/bin/denyhosts.py", line 5, in ?

    import DenyHosts.python_version

ImportError: No module named DenyHosts.python_version


错误显示是找不到DenyHost的模块,载入失败。 这是由于系统上有两个python版本引起的,此系统上默认rpm包安装有python2.6 还有后面手动编译的python2.7,我们上面是手动使用python2.7安装Denyhost,所以该模块也安装在了python2.7下,然而系统默认使用的是python2.6。 解决的办法就是:编辑启动脚本,修改解释器路径为python2.7即可。 

下面用红色标出已修改的行

#!/usr/local/python27/bin/python2.7

###############################################

#### Edit these to suit your configuration ####

###############################################


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

DENYHOSTS_LOCK  = "/var/lock/subsys/denyhosts"

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


PYTHON_BIN      = "/usr/local/python27/bin/python2.7"



本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1709071


相关文章
|
机器学习/深度学习 人工智能 安全
探索AI的未来:从机器学习到深度学习
【10月更文挑战第28天】本文将带你走进AI的世界,从机器学习的基本概念到深度学习的复杂应用,我们将一起探索AI的未来。你将了解到AI如何改变我们的生活,以及它在未来可能带来的影响。无论你是AI专家还是初学者,这篇文章都将为你提供新的视角和思考。让我们一起探索AI的奥秘,看看它将如何塑造我们的未来。
415 3
|
SQL 消息中间件 分布式计算
Apache Doris 系列: 入门篇-数据导入及查询
Apache Doris 系列: 入门篇-数据导入及查询
2075 0
|
消息中间件 存储 JSON
RocketMQ 消费进度持久化
本文介绍了RocketMQ中消费进度的持久化机制,包括普通消息和延迟消息的消费偏移量是如何存储的。普通消息的消费进度存储于`consumerOffset.json`文件,格式为`{Topic}@{ConsumerGroup}`,而延迟消息则存储于`delayOffset.json`文件,以`{delayLevel:offset}`的形式记录。文章详细分析了相关文件内容及代码实现,并指出Broker分别以5秒和10秒的间隔进行持久化操作。
331 6
|
11月前
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
380 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
|
机器学习/深度学习 算法 网络协议
开源上新|通义语音处理技术ClearerVoice-Studio
开源上新|通义语音处理技术ClearerVoice-Studio
|
存储 监控 安全
告别手动续签烦恼:一键实现免费SSL证书自动更新
告别手动续签烦恼,一键实现免费SSL证书自动更新。通过自动化续签过程,减少人为错误,提高安全性,节省时间,确保网站始终提供安全、可信的服务。选择支持自动续签的证书颁发机构,并配置相应的工具,轻松管理SSL证书。
|
机器学习/深度学习 Ubuntu 数据挖掘
在Ubuntu系统安装Anaconda及Python
【7月更文挑战第10天】在Ubuntu上安装Anaconda及Python概述: 1. 访问官网下载适合的Anaconda版本。 2. 终端中运行`bash Anaconda3-xxxx.x-Linux-x86_64.sh`完成安装,需同意协议。 3. 通过`conda --version`验证安装。 4. 可选创建Python环境,如`conda create -n myenv python=3.8`。 5. 激活环境使用`conda activate myenv`。 6. 用`python --version`检查Python版本。
891 5
|
关系型数据库 MySQL
MySQL - ROW_NUMBER() OVER()函数用法详解(分组排序)
MySQL - ROW_NUMBER() OVER()函数用法详解(分组排序)
1408 0
MySQL - ROW_NUMBER() OVER()函数用法详解(分组排序)
|
Java Maven
解决多模块开发中的问题(聚合&继承)
解决多模块开发中的问题(聚合&继承)
232 3
|
机器学习/深度学习 人工智能 算法
人工智能 - 人脸识别:发展历史、技术全解与实战
人工智能 - 人脸识别:发展历史、技术全解与实战