搬磚頭

          Knocking on Heaven's Door
          posts - 34, comments - 6, trackbacks - 0, articles - 0

          用DenyHosts阻止SSH暴力破解

          Posted on 2007-10-30 10:01 生活在別處 閱讀(665) 評論(1)  編輯  收藏 所屬分類: Unix
              最近發(fā)現(xiàn)服務(wù)器被人窮舉掃描,網(wǎng)上找了辦法搞定了

          原貼:http://blog.chinaunix.net/u/17030/showart_315674.html

          我的服務(wù)器每天都會有無數(shù)的SSH失敗嘗試記錄,有些無聊的人一直不停的掃描,這些人真夠無聊的,沒事吃飽了撐著,老找些軟件在那里窮舉掃描,所以大家第一要記的設(shè)置一個好的夠復(fù)雜的密碼。

          怎么樣防,如果要一條一條將這些IP阻止顯然治標(biāo)不治本,還好有DenyHosts軟件來代替我們手搞定他。

          DenyHosts是Python語言寫的一個程序,它會分析sshd的日志文件,當(dāng)發(fā)現(xiàn)重復(fù)的攻擊時就會記錄IP到/etc/hosts.deny文件,從而達(dá)到自動屏IP的功能。

          DenyHosts官方網(wǎng)站為:http://denyhosts.sourceforge.net

          以下是安裝記錄(以CentOS 4.3, DenyHosts 2.5 為例)

          安裝

          # cd /usr/local/src
          # wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5.tar.gz
          # tar -zxvf DenyHosts-2.5.tar.gz
          # cd DenyHosts-2.5
          # python setup.py install

          默認(rèn)是安裝到/usr/share/denyhosts目錄的。

          配置

          # cd /usr/share/denyhosts/
          # cp denyhosts.cfg-dist denyhosts.cfg
          # vi denyhosts.cfg

          根據(jù)自己需要進行相應(yīng)的配置(解釋見下文件的配置文件)

          設(shè)置啟動腳本

          # cp daemon-control-dist daemon-control
          # chown root daemon-control
          # chmod 700 daemon-control

          完了之后執(zhí)行daemon-contron start就可以了。

          # ./daemon-control start

          如果要使DenyHosts每次重起后自動啟動還需做如下設(shè)置:

          # cd /etc/init.d
          # ln -s /usr/share/denyhosts/daemon-control denyhosts
          # chkconfig –add denyhosts
          # chkconfig –level 2345 denyhosts on

          或者修改/etc/rc.local文件:

          # vi /etc/rc.local

          加入下面這條命令

          /usr/share/denyhosts/daemon-control start

          DenyHosts配置文件:

          vi /etc/denyhosts.cfg

          SECURE_LOG = /var/log/secure
          #ssh 日志文件,它是根據(jù)這個文件來判斷的。

          HOSTS_DENY = /etc/hosts.deny
          #控制用戶登陸的文件

          PURGE_DENY = 5m
          #過多久后清除已經(jīng)禁止的

          BLOCK_SERVICE = sshd
          #禁止的服務(wù)名

          DENY_THRESHOLD_INVALID = 1
          #允許無效用戶失敗的次數(shù)

          DENY_THRESHOLD_VALID = 10
          #允許普通用戶登陸失敗的次數(shù)

          DENY_THRESHOLD_ROOT = 5
          #允許root登陸失敗的次數(shù)

          HOSTNAME_LOOKUP=NO
          #是否做域名反解

          ADMIN_EMAIL = iakuf@163.com
          #管理員郵件地址,它會給管理員發(fā)郵件

          DAEMON_LOG = /var/log/denyhosts
          #自己的日志文件

          然后就可以啟動了:

          service denyhost start

          可以看看/etc/hosts.deny內(nèi)是否有禁止的IP,有的話說明已經(jīng)成功了。


          =========================================================
          原文地址 http://www.taoran.net/tech/denyhosts.html

          DenyHosts是用Python2.3寫的一個程序,它會分析/var/log/secure(redhat,F(xiàn)edora Core)等日志文件,當(dāng)發(fā)現(xiàn)同一IP在進行多次SSH密

          碼嘗試時就會記錄IP到/etc/hosts.deny文件,從而達(dá)到自動屏蔽該IP的目的。

          DenyHosts官方網(wǎng)站為:http://denyhosts.sourceforge.net


          一、檢查安裝條件

          1、首先判斷系統(tǒng)安裝的sshd是否支持tcp_wrappers(默認(rèn)都支持)
          # ldd /usr/sbin/sshd
          libwrap.so.0 => /usr/lib/libwrap.so.0 (0x0046e000)

          2、判斷默認(rèn)安裝的Python版本
          # python -V
          Python 2.3.4

          二、已安裝Python2.3以上版本的情況(以RedHat AS4為例)

          1、安裝DenyHosts

          # cd /usr/local/src
          # wget http://umn.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
          # tar zxf DenyHosts-2.6.tar.gz
          # cd DenyHosts-2.6
          # python setup.py install
            
             程序腳本自動安裝到/usr/share/denyhosts
             庫文件自動安裝到/usr/lib/python2.3/site-packages/DenyHosts
             denyhosts.py自動安裝到/usr/bin

          2、設(shè)置啟動腳本
          # cd /usr/share/denyhosts/
          # cp daemon-control-dist daemon-control
          # chown root daemon-control
          # chmod 700 daemon-control
          # grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
          # vi denyhosts.cfg
            根據(jù)自己需要進行相應(yīng)的修改
          ----------------denyhosts.cfg------------------------
          SECURE_LOG = /var/log/secure
          #RedHat/Fedora Core分析該日志文件
          #其它版本linux根據(jù)denyhosts.cfg-dist內(nèi)提示選擇。

          PURGE_DENY = 30m
          #過多久后清除

          DENY_THRESHOLD_INVALID = 1
          #允許無效用戶(/etc/passwd未列出)登錄失敗的次數(shù)

          DENY_THRESHOLD_VALID = 5
          #允許有效(普通)用戶登錄失敗的次數(shù)

          DENY_THRESHOLD_ROOT = 3
          #允許root登錄失敗的次數(shù)

          HOSTNAME_LOOKUP=NO
          #是否做域名反解
          ----------------denyhosts.cfg------------------------

          如果需要DenyHosts隨系統(tǒng)重啟而自動啟動,還需做如下設(shè)置:
          # vi /etc/rc.local
              加入下面這條命令
          /usr/share/denyhosts/daemon-control start

          3、啟動

          # /usr/share/denyhosts/daemon-control start



          三、未安裝Python2.3以上版本的情況(以RedHat AS3、Python2.2為例)

          1、安裝Python最新版本的源碼包,不必卸載原有低版本Python
          # cd /usr/local/src
          # wget http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tar.bz2
          # tar jxf Python-2.5.1.tar.bz2
          # cd Python-2.5.1
          # ./configure --prefix=/usr/local/python
          # make
          # make install

          2、安裝DenyHosts
          # cd /usr/local/src
          # wget http://umn.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
          # tar zxf DenyHosts-2.6.tar.gz
          # cd DenyHosts-2.6
          # vi setup.py
            將"/usr/bin/env python"替換為"/usr/local/python/bin/python",在第一行
          # vi daemon-control-dist
            將"/usr/bin/env python"替換為"/usr/local/python/bin/python",注意有兩處
          # /usr/local/python/bin/python setup.py install

             程序腳本自動安裝到/usr/share/denyhosts
             庫文件自動安裝到/usr/local/python/lib/python2.5/site-packages/DenyHosts
             denyhosts.py自動安裝到/usr/local/python/bin

          # ln -s /usr/local/python/bin/denyhosts.py /usr/bin

          Feedback

          # re: 用DenyHosts阻止SSH暴力破解[未登錄]  回復(fù)  更多評論   

          2008-01-11 22:03 by coffee
          freebsd 安裝

          cd /usr/ports/security/denyhosts
          make install clean
          主站蜘蛛池模板: 阜南县| 古交市| 隆回县| 南澳县| 军事| 龙州县| 仁寿县| 松潘县| 华阴市| 营山县| 北碚区| 济宁市| 永新县| 江源县| 托克逊县| 渭南市| 察隅县| 枣庄市| 白水县| 新田县| 南和县| 镇远县| 新乡市| 顺平县| 东至县| 申扎县| 德兴市| 防城港市| 洛南县| 五台县| 天气| 巴林左旗| 玉环县| 安福县| 辉南县| 杨浦区| 博湖县| 宁强县| 灵璧县| 和政县| 宜良县|