2011年7月29日 星期五

Linux 安裝 denyhost防止 SSH 被暴力破解


DenyHosts


DenyHosts是用Python語言編寫的一個程式,它會分析你的日誌檔,當發現重複的錯誤登錄時就會記錄IP/etc/hosts.deny,然後自動封閉該IP.功能很不錯!!下面是安裝過程(環境CentOS 5.5, DenyHosts 2.6)


 
查看系統:

cat /etc/redhat-release

CentOS release 5.5 (Final)


:



安裝:

tar -zxvf DenyHosts-2.6.tar.gz

cd DenyHosts-2.6

python setup.py install


修改設定檔:

cp /usr/share/denyhosts/denyhosts.cfg-dist /usr/share/denyhosts/denyhosts.cfg

vi /usr/share/denyhosts/denyhosts.cfg


下面這是最常修改的地方:


#日誌檔,根據這個檔來判斷
SECURE_LOG = /var/log/secure


#記錄遮罩的IP
HOSTS_DENY = /etc/hosts.deny


#多久清除遮罩的IP,我設置一天
PURGE_DENY = 1d


#禁止的服務,我設置為全部,禁止登錄SSH/FTP
BLOCK_SERVICE  = ALL


#允許無效用戶失敗的數次
DENY_THRESHOLD_INVALID = 1


#允許普通用戶失敗的次數
DENY_THRESHOLD_VALID = 1


#允許root用戶失敗的次數
DENY_THRESHOLD_ROOT = 3


#是否做功能變數名稱反解析
HOSTNAME_LOOKUP=NO


#管理員Email
ADMIN_EMAIL = root


最後就是設置啟動腳本:

  • cp /usr/share/denyhosts/daemon-control-dist /usr/share/denyhosts/daemon-control
  • chown root /usr/share/denyhosts/daemon-control
  • chmod 755 /usr/share/denyhosts/daemon-control
  • ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
  • chkconfig --level 345 denyhosts on

啟動denyhosts:


service denyhosts start


安裝完成了,每次開機都自動啟動的,自己測試下,輸入幾次錯誤的密碼.然後看看cat /etc/hosts.deny 裡面是否有被封的IP,再然後測試下,用被封IP是否還能登錄SSH.我的新建了USER1帳號,輸入幾次密碼錯誤,然後在連,就連不上了。


刪除誤封的IP


vim /etc/hosts.deny(找到你要解封的IP去掉)


vim /var/log/secure
(找到使用者登陸的錯誤資訊也給刪掉!!!)

記著重啟 denyhostsssh的服務喲。

沒有留言:

張貼留言