SSH防暴力破解軟體 Denyhosts

來源:互聯網
上載者:User

標籤:denyhosts   安全   ssh   暴力破解   

原理:

DenyHosts 是Python語言寫的一個開來源程式,它會定期分析sshd服務的登陸日誌,當發現某IP進行多次SSH登陸且登陸失敗次數超過閾值時,會將IP記錄到 /etc/hosts.deny檔案,通過tcpwrapper達到自動屏蔽IP的功能。


TCP wrapper:

tcpwrapper 是一個為 Unix 類伺服器提供防火牆服務的程式,任何以 Xinetd 管理的服務都可以通過TcpWrapper來設定防火牆,簡單的說,就是針對源IP或域進行允許或拒絕訪問的設定;


設定檔:

/etc/init.d/hosts.allow  定義在此檔案中的IP允許訪問

daemon_list:client_list[:option]

例:sshd: 192.168.1    # 允許 192.168.1.0/24 網段所有主機訪問


/etc/init.d/hosts.deny  定義在此檔案中的IP不允許訪問

配置同上


檢查順序:

      請求

       ↓              

      服務  --->/etc/hosts.allow  --->  匹配成功則允許存取

                               ↓         

                          /etc/hosts.deny   ---->  匹配成功則拒絕     

                                     ↓                        

                              兩個設定檔中沒有則允許訪問 

註:兩個設定檔同時匹配,host.allow 優先生效。


判斷服務是否支援TcpWrapper管控:

ldd `which 服務名` |grep wrap


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/83/86/wKiom1d06_TjxEVnAAAZ5JmhzYs412.png" title="QQ20160630175233.png" alt="wKiom1d06_TjxEVnAAAZ5JmhzYs412.png" />

libwrap.so.0  TcpWrapper 的開發庫,軟體調用此庫代表受 TcpWrapper 管控。






最新版本為 2.6 最新動向日期為 2008-10-04

官網:http://denyhosts.sourceforge.net/

FAQ:http://denyhosts.sourceforge.net/faq.html

:http://nbtelecom.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz


安裝:

wget http://nbtelecom.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz

tar xvf DenyHosts-2.6.tar.gz

cd DenyHosts-2.6/

python setup.py install


預設會安裝在 /usr/share/denyhosts/ 目錄


ln -s daemon_control /etc/init.d/denyhosts  

# 服務指令碼


cp denyhosts.cfg-dist denyhosts.cfg

# 設定檔


設定檔詳解:(截取有用部分)

 

# Redhat or Fedora Core:

#SECURE_LOG = /var/log/secure   

# ReadHat 系列登陸日誌位置


# Mandrake, FreeBSD or OpenBSD: 

SECURE_LOG = /var/log/auth.log  

# FreeBSD 系列登陸日誌位置


# SuSE:

#SECURE_LOG = /var/log/messages  

# SuSE 系列登陸日誌位置



HOSTS_DENY = /etc/hosts.deny   

# tcpwrapper 設定檔



PURGE_DENY = 5m    

# 清除已禁止主機的時間



BLOCK_SERVICE  = sshd 

# 匹配成功後禁止的服務名稱 



DENY_THRESHOLD_INVALID = 5   

# 允許無效使用者嘗試登陸失敗的次數(使用者名稱不在 /etc/passwd 檔案中)


DENY_THRESHOLD_VALID = 10  

# 允許普通使用者登陸失敗的次數(使用者名稱存在 /etc/passwd 檔案中)


DENY_THRESHOLD_ROOT = 1   # 允許 root 使用者登陸失敗的次數


WORK_DIR = /usr/share/denyhosts/data   

# denyhosts 的工作目錄,會將 deny 的 hosts 或 IP 記錄到 work_dir/ 目錄下的檔案中


HOSTNAME_LOOKUP=YES

# 是否進行網域名稱反解


LOCK_FILE = /var/run/denyhosts.pid

# pid 檔案位置,用來判斷 denyhosts 是否在運行狀態


ADMIN_EMAIL = [email protected]

# 管理員郵件地址(接收警示郵件)


SMTP_HOST = smtp.mxhichina.com

SMTP_PORT = 25

# SMTP 發件伺服器位址及連接埠號碼


[email protected]

SMTP_PASSWORD=myispassword

# 寄件者帳號及密碼


SMTP_FROM = [email protected]

# 寄件者地址


SMTP_SUBJECT = DenyHosts Report

# 警示郵件主題


AGE_RESET_VALID=5d

# 普通使用者登入失敗計數器的歸零時間


AGE_RESET_ROOT=25d

# ROOT使用者登入失敗計數器的歸零時間


AGE_RESET_RESTRICTED=25d

# 全域使用者失敗登入計數重設為 0 的時間 (/usr/share/denyhosts/data/restricted-usernames)


AGE_RESET_INVALID=10d

# 無效使用者失敗計數會在多久後重設為 0


RESET_ON_SUCCESS = yes

# 如果一個IP成功登入後,失敗的登入計數是否重設為0


DAEMON_LOG = /var/log/denyhosts

# Denyhosts 的記錄檔位置


DAEMON_SLEEP = 30s

# 當以後台方式運行時,每讀一次記錄檔的時間間隔


DAEMON_PURGE = 1h

# 多長時間執行一次 預設清理

# 多久清除一次已被禁止的主機,此值應該小於 PURGE_DENY,PURGE_DENY < DAEMON_PURGE



遇到的問題:

1、清除時間到達後無法無法清除被禁止的主機

解決辦法:實際清楚時間由 DAEMON_PURGE 決定,將此值設定與PURGE_DENY相等即可。







本文出自 “那些顛沛留離的日子。” 部落格,請務必保留此出處http://linuxzj.blog.51cto.com/6160158/1794680

SSH防暴力破解軟體 Denyhosts

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.