搬磚頭

          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
              最近發現服務器被人窮舉掃描,網上找了辦法搞定了

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

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

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

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

          DenyHosts官方網站為: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

          默認是安裝到/usr/share/denyhosts目錄的。

          配置

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

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

          設置啟動腳本

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

          完了之后執行daemon-contron start就可以了。

          # ./daemon-control start

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

          # 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 日志文件,它是根據這個文件來判斷的。

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

          PURGE_DENY = 5m
          #過多久后清除已經禁止的

          BLOCK_SERVICE = sshd
          #禁止的服務名

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

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

          DENY_THRESHOLD_ROOT = 5
          #允許root登陸失敗的次數

          HOSTNAME_LOOKUP=NO
          #是否做域名反解

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

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

          然后就可以啟動了:

          service denyhost start

          可以看看/etc/hosts.deny內是否有禁止的IP,有的話說明已經成功了。


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

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

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

          DenyHosts官方網站為:http://denyhosts.sourceforge.net


          一、檢查安裝條件

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

          2、判斷默認安裝的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、設置啟動腳本
          # 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
            根據自己需要進行相應的修改
          ----------------denyhosts.cfg------------------------
          SECURE_LOG = /var/log/secure
          #RedHat/Fedora Core分析該日志文件
          #其它版本linux根據denyhosts.cfg-dist內提示選擇。

          PURGE_DENY = 30m
          #過多久后清除

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

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

          DENY_THRESHOLD_ROOT = 3
          #允許root登錄失敗的次數

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

          如果需要DenyHosts隨系統重啟而自動啟動,還需做如下設置:
          # 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暴力破解[未登錄]  回復  更多評論   

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

          cd /usr/ports/security/denyhosts
          make install clean
          主站蜘蛛池模板: 来安县| 温宿县| 岳普湖县| 五峰| 建平县| 邹平县| 临泉县| 龙井市| 年辖:市辖区| 威海市| 林甸县| 涞水县| 壶关县| 且末县| 隆昌县| 鱼台县| 灯塔市| 偏关县| 罗江县| 定远县| 凤庆县| 武义县| 渭源县| 万全县| 当涂县| 青川县| 高陵县| 繁峙县| 遂川县| 丹巴县| 柳江县| 长阳| 洱源县| 博乐市| 观塘区| 仁布县| 乡城县| 河池市| 上虞市| 普兰县| 江门市|