DenyHosts官方網站為:http://denyhosts.sourceforge.net/
本文已附上附件,是從該網站下載下傳的,版本為較新的2.6版。
一、檢查安裝要求
首選檢查Sshd是否支援 Tcpwrap,隻有支援Tcpwrap才可以安裝Denyhost
# ldd /usr/sbin/sshd |grep wrap
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00864000)
/出現此資訊時表示支援
再檢查 Python的版本,Python2.3以上版本可以直接安裝
# python -V
Python 2.4.3
均達到要求
二、下載下傳和安裝Denyhosts
先下載下傳該軟體,然後解壓安裝
# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
# tar zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
執行Python腳本進行安裝,
# python setup.py install
程式腳本預設自動安裝到/usr/share/denyhosts/目錄
庫檔案預設自動安裝到/usr/lib/python2.4/site-packages/DenyHosts
denyhosts.py安裝到/usr/bin
三、設定Denyhosts.cfg配置檔案
#cd /usr/share/denyhosts/
拷貝模闆檔案
# cp daemon-control-dist daemon-control
設定好啟動腳本的所屬使用者和權限
# chown root daemon-control
# chmod 700 daemon-control
生成Denyhost的主配置檔案,(将模闆檔案中開頭是#的過濾後再導入到Denyhost.cfg)
# grep -v "^#" denyhosts.cfg-dist >denyhosts.cfg
vi Denyhosts.cfg
編輯Denyhost.cfg檔案,根據自己需要進行相應的修改
----------------denyhosts.cfg--------------------------------------
SECURE_LOG = /var/log/secure
#ssh 日志檔案,它是根據這個檔案來判斷的,如還有其他的隻要更改名字即可,例如将secure改為secure.1等
HOSTS_DENY = /etc/hosts.deny
#控制使用者登陸的檔案,将多次連接配接失敗的IP添加到此檔案,達到屏蔽的作用
PURGE_DENY = 5m
#過多久後清除已經禁止的,我這裡為空表示永遠不解禁
BLOCK_SERVICE = sshd
#禁止的服務名,如還要添加其他服務,隻需添加逗号跟上相應的服務即可
DENY_THRESHOLD_INVALID = 1
#允許無效使用者失敗的次數
DENY_THRESHOLD_VALID = 2
#允許有效使用者登入失敗的次數
DENY_THRESHOLD_ROOT = 3
#允許root登入失敗的次數
HOSTNAME_LOOKUP=NO
# 是否做域名反解,這裡表示不做
ADMIN_EMAIL = 。。。。
#管理者郵件位址,它會給管理者發郵件
DAEMON_LOG = /var/log/denyhosts
#自己的日志檔案
其他:
AGE_RESET_VALID=5d #(h表示小時,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
#使用者的登陸失敗計數會在多長時間後重置為0
RESET_ON_SUCCESS = yes
#如果一個ip登陸成功後,失敗的登陸計數是否重置為0
DAEMON_SLEEP = 30s
#當以背景方式運作時,每讀一次日志檔案的時間間隔。
DAEMON_PURGE = 1h
#當以背景方式運作時,清除機制在 HOSTS_DENY 中終止舊條目的時間間隔,這個會影響PURGE_DENY的間隔。
四、設定開機自動啟動
方法一、
将 Denyhost啟動腳本添加到自動啟動中
# echo "/usr/share/denyhosts/daemon-control start" >>/etc/rc.d/rc.local
啟動Denyhost的程序
# /usr/share/denyhosts/daemon-control start
可以檢視到Denyhost在運作中
# ps -ef |grep deny
方法二、
cd /etc/init.d
# ln -s/usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 2345 denyhosts on
五、測試
ssh_server端:172.16.10.40
ssh_client端:172.16.10.50
在172.16.10.50機器上使用ssh進行連接配接,當在連續2次輸入錯誤的密碼後,第3次會被自動阻止掉,在一定時内不可以再連接配接ssh連接配接記錄的日志檔案。
檢視我的/etc/hosts.deny檔案發現裡面已經有1條記錄。