linux防止sshd被爆破(安裝denyhosts)


  這是一篇收集在日志里的文檔,當初查看服務器sshd日志發現很多不明IP嘗試登陸,因此想用什么辦法阻止這樣的事情發生。網上找了下用denyhosts可以解決這樣的問題,因而也就將其收集在日志里了。由於時間較久遠,找不到原文的出處,如果你知道原文出處,可以聯系我加上。好了,入正題。

  Denyhosts 是一個以Python2.3編寫的程序,它主要根據系統日志文件/var/log/secure文件分析,當發現同一IP在進行多次SSH密碼嘗試時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏蔽該IP的目的。

  一、檢查安裝環境:

    1) 判斷系統安裝的sshd是否支持tcp_wrappers(默認都支持),命令如下:

ldd /usr/sbin/sshd |grep libwrap.so.0

    如果有輸出:libwrap.so.0 => /lib64/libwrap.so.0 則為支持

    2)判斷是否有python(centos默認都有):

python -V

    只要系統Python版本不小於2.3版本即可(本機版本為Python 2.6.5)。

  二、安裝DenyHosts

    1、下載DenyHosts-2.6.tar.gz並上傳到服務器,可以在http://denyhosts.sourceforge.net/上下載最新的程序。

    2、安裝

      1)、解壓

tar -zxvf DenyHosts-2.6.tar.gz

      2)、安裝

cd DenyHosts-2.6
python setup.py install

程序腳本自動安裝在:/usr/share/denyhosts目錄
庫文件安裝在:/usr/lib/python2.6/site-packages/DenyHosts目錄下
denyhosts.py默認安裝在:/usr/bin/目錄下

    3、設置啟動腳本

cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control

##將denyhosts.cfg-dist中不是以"#"開頭的行,寫入denyhosts.cfg文件

grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg

      編輯denyhosts.cfg

vi denyhosts.cfg

具體配置項可參考以下的配置:

 ############ THESE SETTINGS ARE REQUIRED ############
            ##分析源文件
            SECURE_LOG = /var/log/secure
            ##禁止sshd登陸的IP存放文件
            HOSTS_DENY = /etc/hosts.deny
            
            ##過多久后清除已經禁止的IP
            PURGE_DENY =  1d
            
            
            ##監控的服務名
            BLOCK_SERVICE  = sshd
            
            ##表示允許無效用戶登錄失敗的次數
            DENY_THRESHOLD_INVALID = 3
            
            ##表示允許普通用戶登錄失敗的次數
            DENY_THRESHOLD_VALID = 3
            
            ##表示允許root用戶登錄失敗的次數
            DENY_THRESHOLD_ROOT = 3
            
            
            DENY_THRESHOLD_RESTRICTED = 1
            
            
            WORK_DIR = /usr/share/denyhosts/data
            
            SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
            
            ##是否做域名反解
            HOSTNAME_LOOKUP=NO
            
            
            LOCK_FILE = /var/lock/subsys/denyhosts

    4、將denyhosts添加到系統服務並自動啟動

1)、自啟動

vi /etc/rc.local 

在末尾添加以下行

/usr/share/denyhosts/daemon-control start

2)、添加至系統服務

ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig --add denyhosts
chkconfig --level 345 denyhosts on

5、啟動denyhosts

service denyhosts start

    6、查看denyhosts是否運行成功

service denyhosts status

    顯示:DenyHosts is running with pid = XXXX,即運行成功。

    7、至此,denyhosts也就配置完成了;此外將sshd的默認端口修改掉,再結合denyhosts可以防止大部分sshd的暴力破解了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM