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

目前官网最新版本是2.10,记得以前的ubuntu版本(<=12.04LTS)中好像直接apt-get install denyhosts 就可以了,在最新的发行版不知为何不见了。

安装

你可以前往官网http://sourceforge.net/projects/denyhost/ 选择一个你喜欢的版本下载,或者直接运行下面的命令下载。

cd /tmp/ && wget http://jaist.dl.sourceforge.net/project/denyhost/denyhost-2.10/denyhosts-2.10.tar.gz
#解压
tar xzvf denyhosts-2.10.tar.gz
#切换到目录
cd denyhosts
#安装
sudo python setup.py install

配置

经过上面这几步,基本已经完成了denyhosts 的安装,下面我们还需要进行一些配置。

#复制daemon文件到init.d 目录
sudo cp /usr/local/bin/daemon-control-dist /etc/init.d/denyhosts
sudo vim /etc/init.d/denyhosts
#A:将打开的文件里面的DENYHOSTS_BIN 修改为你自己denyhosts的目录,一般应该是/usr/local/bin/denyhosts.py
#B:或者是建立一个软连接
ln -s /usr/local/bin/denyhosts.py /usr/sbin/denyhosts

#注意:A或者B只需要执行一个就行了!</span></span>
现在denyhosts 就已经安装配置好了,我们可以先把我们自己的IP加到系统的白名单里面
#编辑白名单

sudo vim /etc/hosts.allow 

#按下面的样例添加你的IP

/etc/hosts.allow: list of hosts that are allowed to access the system.

See the manual pages hosts_access(5) and hosts_options(5).

Example: ALL: LOCAL @wangheng.org

ALL: .wangheng.org EXCEPT terminalserver.wangheng.org

If you’re going to protect the portmapper use the name “rpcbind” for the

daemon name. See rpcbind(8) and rpc.mountd(8) for further information.

sshd: 123.123.123.123

编辑保存后,我们需要重启一下服务:

sudo /etc/init.d/denyhosts restart