DenyHosts 預防 SSH 暴力 破解
DenyHosts是用Python語言編寫的一個程式,它會分析你的日誌檔,當發現重複的錯誤登錄時就會記錄IP到/etc/hosts.deny檔,然後自動封閉該IP.功能很不錯!!下面是安裝過程(環境CentOS 5.8, DenyHosts 2.6)
查看系統:
cat /etc/redhat-release
CentOS release 5.8 (Final)
下載:
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
安裝:
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
※
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911 (取消注解)
最後就是設置啟動腳本了:
- 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
(找到使用者登陸的錯誤資訊也給刪掉!!!)
記著重啟 denyhosts 和 ssh 的服務喲。