DenyHosts 初析

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

1、安装脚本

要求安装服务器能上网并建立 /work目录

#!/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##################################

[[email protected] 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 = [email protected]

#设置管理员邮件地址

SMTP_HOST = localhost

SMTP_PORT = 25

SMTP_FROM = DenyHosts

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.其它

    如果想删除一个已经禁止的主机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

时间: 2025-01-08 03:51:33

DenyHosts 初析的相关文章

Struts2之ajax初析

Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中,当然这只是在我们需要JSON的时候才会显得流光溢彩. 首先不谈Struts2的原生支持,我们自己写一个ajax示例,使用异步请求,直接请求action动作: InfoAction.java package cn.codeplus.action; import

linux iostat 性能初析

Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.       其特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析.iostat属于sysstat软件包.可以用yum install sysstat 直接安装. 命令格式: iostat[参数][时间][次数] 命令参数: -C 显示CPU使用情况

装饰器初析

对于python的装饰器今天刚开始真正的进行分析查看,阅读了之后确实感觉有几分巧妙.神奇,不过我其实还是不知道这种东西的存在究竟在哪里会发挥出来他的优势,或者说他到底该怎么没用,也许是我对其认识不够吧. 感谢一片文章,内容真的很好,对我的理解有很大的帮助. class entryExit(object): def __init__(self, f): self.f = f def __call__(self): print ("Entering", self.f.__name__) s

hadoop 学习笔记:mapreduce框架详解

hadoop 学习笔记:mapreduce框架详解 开始聊mapreduce,mapreduce是hadoop的计算框架,我 学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能是我做技术研究的 思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习 hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不

【Big Data - Hadoop - MapReduce】hadoop 学习笔记:MapReduce框架详解

开始聊MapReduce,MapReduce是Hadoop的计算框架,我学Hadoop是从Hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能是我做技术研究的思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不可分,所以当我写分布式文件系统时候,总是感觉自己的理解肤浅

Hadoop学习笔记:MapReduce框架详解

原文出处: 夏天的森林 开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能是我做技术研究的思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不可分,所以当我写分布式文件系统时候

mapreduce框架详解

转自:http://www.cnblogs.com/sharpxiajun/p/3151395.html 开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能是我做技术研究的思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习hdfs时候我就发现,要理解hadoo

hadoop 学习笔记:mapreduce框架详解(转 http://www.cnblogs.com/sharpxiajun/p/3151395.html)

开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能是我做技术研究的思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不可分,所以当我写分布式文件系统时候,总是感觉自己的理解肤浅

Hadoop MapReduce框架详解

Mapreduce初析 Mapreduce是一个计算框架,既然是做计算的框架,那么表现形式就是有个输入(input),mapreduce操作这个输入(input),通过本身定义好的计算模型,得到一个输出(output),这个输出就是我们所需要的结果. 重点就是这个计算模型的运行规则.在运行一个mapreduce计算任务时候,任务过程被分为两个阶段:map阶段和reduce阶段,每个阶段都是用键值对(key/value)作为输入(input)和输出(output).而程序员要做的就是定义好这两个阶