天天看點

Linux伺服器ssh暴力破解-denyhosts解決詳解

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條記錄。