DenyHosts 安装及配置详解

news/2025/2/26 13:44:48

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

下面进入主题。

1。安装脚本
要求安装服务器能上网,并建立 /workspace目录

#############################1##################################
#!/bin/bash

wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
#下载软件

tar -zxvf DenyHosts-2.6.tar.gz
#解压

mv DenyHosts-2.6 denyhost
#为了方便改个名

cd denyhost/
#进入目录

yum install python -y
#安装python

python setup.py install
#安装denyhost,脚本

cd /usr/share/denyhosts/
#进入配置目录

cp daemon-control-dist daemon-control
#为了方便改变配置文件名称

cp denyhosts.cfg-dist denyhosts.cfg
#修改服务文件名称

chown root daemon-control
chmod 700 daemon-control
#提高安全级别,修改权限

ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
#创建启动服务连接

chkconfig denyhosts on
#添加启动项

cp denyhosts.cfg denyhosts.cfg.bak
#备份配置文件,为修改配置做准备

cat /workspace/denyhost.txt > /usr/share/denyhosts/denyhosts.cfg
#将配置文件内容导入配置文件(我的配置文件安装之前已经配置好了!)

/etc/init.d/denyhosts start
#启动服务

echo install succeed!

2.配置文件内容


cat /workspace/denyhost.txt > /usr/share/denyhosts/denyhosts.cfg
###########################2##################################

[root@107 workspace]# more denyhost.txt
SECURE_LOG = /var/log/secure
#ssh日志文件

HOSTS_DENY = /etc/hosts.deny
#将阻止IP写入到hosts.deny

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

BLOCK_SERVICE = sshd
#阻止服务名

DENY_THRESHOLD_INVALID = 5
#允许无效用户(在/etc/passwd未列出)登录失败次数,允许无效用户登录失败的次数.

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

DENY_THRESHOLD_ROOT = 5
#允许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
#将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。

ADMIN_EMAIL = denyhosts@163.com
#设置管理员邮件地址
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report

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

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

AGE_RESET_RESTRICTED=5d
#用户的失败登录计数重置为0的时间(/usr/share/denyhosts/data/restricted-usernames)

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

DAEMON_LOG = /var/log/denyhosts
#自己的日志文件

DAEMON_SLEEP = 30s

DAEMON_PURGE = 5m
#该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间

3.其它
#############################3###############################

如果想删除一个已经禁止的主机IP,并加入到允许主机例表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:

1、停止DenyHosts服务:$ sudo service denyhosts stop

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

3、编辑 DenyHosts 工作目录的所有文件,通过
$ sudo grep 192.168.1.191 /usr/share/denyhosts/data/*

然后一个个删除文件中你想取消的主机IP所在的行:
*/usr/share/denyhosts/data/hosts
*/usr/share/denyhosts/data/hosts-restricted
*/usr/share/denyhosts/data/hosts-root
*/usr/share/denyhosts/data/hosts-valid
*/usr/share/denyhosts/data/users-hosts
4、添加你想允许的主机IP地址到
/var/lib/denyhosts/allowed-hosts

vi /usr/share/denyhosts/data/allowed-hostsps
# We mustn't block localhost
127.0.0.1
192.168.1.*

5、启动DenyHosts服务: service denyhosts start

 

报错排查

#service denyhost start
starting 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

cd /usr/share/denyhosts/
vi daemon-control
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
改为
DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"


cd /usr/local/lib/python2.7/site-packages/
cp -rp DenyHosts /usr/lib/python2.4/site-packages/
/etc/init.d/denyhosts restart

 

#############################3###############################

如果想删除一个已经禁止的主机IP,并加入到允许主机例表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:

1、停止DenyHosts服务:$ sudo service denyhosts stop

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

3、编辑 DenyHosts 工作目录的所有文件,通过 
$ sudo grep 192.168.1.191 /usr/share/denyhosts/data/*

然后一个个删除文件中你想取消的主机IP所在的行:  
* /usr/share/denyhosts/data/hosts 
* /usr/share/denyhosts/data/hosts-restricted 
* /usr/share/denyhosts/data/hosts-root 
* /usr/share/denyhosts/data/hosts-valid 
* /usr/share/denyhosts/data/users-hosts 
4、添加你想允许的主机IP地址到 
/var/lib/denyhosts/allowed-hosts

vi  /usr/share/denyhosts/data/allowed-hostsps 
# We mustn't block localhost 
127.0.0.1 
192.168.1.*

5、启动DenyHosts服务: service denyhosts start


http://www.niftyadmin.cn/n/1778340.html

相关文章

ElasticSearch之安装入门

2019独角兽企业重金招聘Python工程师标准>>> 基本概念 Cluster&#xff1a;由多个Node组成&#xff0c;默认名字是elasticsearch。Node&#xff1a;是集群单独的一个server&#xff0c;用来存储数据&#xff0c;参与cluster的索引和自动扩展&#xff0c;在一个clust…

java rxjava zip_RxJava操作符---zip

简介zip操作符用于将多个数据源合并&#xff0c;并生成一个新的数据源。新生成的数据源严格按照合并前的数据源的数据发射顺序&#xff0c;并且新数据源的数据个数等于合并前发射数据个数最少的那个数据源的数据个数。zip(图片来源于官方文档).png举个例子测试场景Testfun zip(…

Atong 2017 书目

在读书籍------2017------------Nginx高性能web服务器详解: 2017-05-08 GO编程语言DevOps实践&#xff1a;驾Devops之力强化技术栈并优化IT运行SRE Google运维解密已读书籍-------2017-----------美国大城市的死与生百年孤独操作系统 精髓与设计原理 重读Unix网络编程 重读。…

C语言中你可能不熟悉的头文件(stdlib.h)

C语言中你可能不熟悉的头文件<cstdlib>(stdlib.h) C Standard General Utilities Library (header) C标准通用工具库(头文件) 此头文件定义了一些通用功能函数&#xff0c;包括动态存储器管理&#xff0c;随机数生成&#xff0c;与操作系统环境通信&#xff0c;整数算术&…

java如何使背景色为半透明_android如何设置Activity背景色为透明色

一直听说透明效果的activity&#xff0c;到底长啥样呢&#xff1f;来张图看看&#xff0c;上面这个白色背景的就是方法一在res/values/styles.xml,设置Activity的样式color/transparent_backgroundtruetrueandroid:style/Animation.Translucentcolor#50000000Manifest.xml中添加…

sql2008拒绝了对对象 (数据库 ,架构'dbo')的SELECT权限

连接sql2008的时候&#xff0c;出现了这种一直报权限错误&#xff1a;错误截图如下&#xff1a; 所见效果描述&#xff1a;在windows身份验证的 情况下登陆进去数据库的表都是可以打开的&#xff0c;当换到sa或者别的账号登陆进去的时候这个时候我们点击我们的数据库就会报错&a…

HTML笔记(一):DOCUTYPE

1、DOCUTYPE的作用&#xff1f; 写页面第一件事就是写 <!DOCTYPE html>&#xff0c;为什么呢&#xff1f; 作用&#xff1a;声明文档的解析类型&#xff08;document.compatMode&#xff09;、避免浏览器使用怪异模式。 document.compatMode&#xff1a;BackCompat&#…

编程语言Perl脚本语言在Linux系统下的安装步骤

本文和大家重点讨论一下在Linux系统下安装Perl脚本语言&#xff0c;Linux和Perl都属于自由软件&#xff0c;将二者结合真是妙不可言。遵循以下步骤一般就可安装好Perl脚本语言&#xff0c;Perl就能在linux下欢唱。 在Linux系统下安装Perl脚本语言 Linux和Perl都属于自由软件&…