天天看點

最好的阻止SSH暴力破解的方法(DenyHosts)

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

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

  以下是安裝記錄(以CentOS 5.1, DenyHosts 2.6 為例)

  安裝

  #wget

  #rpm -ivh DenyHosts-2.6-python2.4.noarch.rpm

  給denyhosts做成系統本身的服務

  # cd /etc/init.d

  # ln -s /usr/share/denyhosts/daemon-control denyhosts

  # chkconfig --add denyhosts

  配置

  預設是安裝到/usr/share/denyhosts目錄的。

  # cd /usr/share/denyhosts/

  # cp denyhosts.cfg-dist denyhosts.cfg

  # vi denyhosts.cfg

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

  DenyHosts配置檔案:

  SECURE_LOG = /var/log/secure

  #ssh 日志檔案,它是根據這個檔案來判斷的。

  HOSTS_DENY = /etc/hosts.deny

  #控制使用者登陸的檔案

  PURGE_DENY = 5m

  #過多久後清除已經禁止的

  BLOCK_SERVICE = sshd

  #禁止的服務名

  DENY_THRESHOLD_INVALID = 1

  #允許無效使用者失敗的次數

  DENY_THRESHOLD_VALID = 3

  #允許普通使用者登陸失敗的次數

  DENY_THRESHOLD_ROOT = 5

  #允許root登陸失敗的次數

  HOSTNAME_LOOKUP=NO

  #是否做域名反解

  #管理者郵件位址,它會給管理者發郵件

  DAEMON_LOG = /var/log/denyhosts

  #自己的日志檔案

  啟動服務

  讓他和系統啟動時一起啟動

  #/etc/ini.d/denyhosts start

  #chkconfig denyhosts on

  可以用一台電腦遠端連接配接過來測試.如果可以看到/etc/hosts.deny内是否有禁止的IP,有的話說明已經安裝成功了。

  注.我發現時間deny以後,删除ip的時間不是很準.解決的方法是改變DAEMON_PURGE = 這個的時間.我發現系統删除時間是以他為準.

  DAEMON_PURGE:預設清除:當DenyHosts在預設模式下執行,執行清除機械作用過期最久的HOSTS_DENY,這個會影響PURGE_DENY的間隔。