DenyHosts 阻止SSH暴力攻擊

2021-09-23 22:50:14 字數 4828 閱讀 4417

當你的 linux 伺服器暴露在網際網路之中,該伺服器將會遭到網際網路上的掃瞄軟體進行掃瞄,並試圖猜測ssh登入口令。

你會發現,每天會有多條ssh登入失敗紀錄。那些掃瞄工具將對你的伺服器構成威脅,你必須設定複雜登入口令,並將嘗試多次登入失敗的ip給阻止掉,讓其在一段時間內不能訪問該伺服器。

用denyhosts可以阻止試圖猜測ssh登入口令,它會分析/var/log/secure等日誌檔案,當發現同一ip在進行多次ssh密碼嘗試時就會記錄ip到/etc/hosts.deny檔案,從而達到自動遮蔽該ip的目的。

一、yum 安裝 denyhosts

yum search denyhosts(denyhosts.noarch : a script to help thwart ssh server attacks)

yum install denyhosts

二、rpm -ql denyhosts 檢視 denyhosts 安裝路徑

這邊說下幾個比較重要的目錄

該目錄中主要存放計畫任務,日誌壓縮 以及 chkconfig 和 service 啟動的文件

/etc/cron.d/denyhosts

/etc/denyhosts.conf

/etc/logrotate.d/denyhosts

/etc/rc.d/init.d/denyhosts

/etc/sysconfig/denyhosts

該目錄中主要存放 denyhosts 所拒絕及允許的一些主機資訊

/var/lib/denyhosts/allowed-hosts

/var/lib/denyhosts/allowed-warned

-hosts

/var/lib/denyhosts/hosts

/var/lib/denyhosts/hosts-restricted

/var/lib/denyhosts/hosts-root

/var/lib/denyhosts/hosts-valid

/var/lib/denyhosts/offset

/var/lib/denyhosts/suspicious-logins

/var/lib/denyhosts/sync-hosts

/var/lib/denyhosts/users-hosts

/var/lib/denyhosts/users-invalid

/var/lib/denyhosts/users-valid

/var/log/denyhosts

三、來看看 /etc/denyhosts.conf 中的配置引數

[root@denyhosts ~]# egrep -v "(^$|^#)" /etc/denyhosts.conf 

############ these settings are required ############

# 系統安全日誌檔案,主要獲取ssh資訊

secure_log = /var/log/secure

# 拒絕寫入ip檔案 hosts.deny

hosts_deny = /etc/hosts.deny

# #過多久後清除已經禁止的,其中w代表周,d代表天,h代表小時,s代表秒,m代表分鐘

purge_deny = 4w

# denyhosts所要阻止的服務名稱

block_service = sshd

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

deny_threshold_invalid = 3

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

deny_threshold_valid = 10

# 允許root使用者登入失敗的次數

deny_threshold_root = 6

# 設定 deny host 寫入到該資料夾

deny_threshold_restricted = 1

# 將deny的host或ip紀錄到work_dir中

work_dir = /var/lib/denyhosts

suspicious_login_report_allowed_hosts=yes

# 是否做網域名稱反解

hostname_lookup=yes

# 將denyhots啟動的pid紀錄到lock_file中,已確保服務正確啟動,防止同時啟動多個服務

lock_file = /var/lock/subsys/denyhosts

############ these settings are optional ############

# 管理員mail位址

admin_email = root

smtp_host = localhost

smtp_port = 25

smtp_from = denyhosts smtp_subject = denyhosts report from $[hostname]

# 有效使用者登入失敗計數歸零的時間

age_reset_valid=5d

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

age_reset_root=25d

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

age_reset_restricted=25d

# 無效使用者登入失敗計數歸零的時間

age_reset_invalid=10d

######### these settings are specific to daemon mode ##########

# denyhosts log檔案

daemon_log = /var/log/denyhosts

daemon_sleep = 30s

# 該項與purge_deny 設定成一樣,也是清除hosts.deniedssh 使用者的時間

daemon_purge = 1h

[root@denyhosts ~]#

四、啟動 denyhosts 服務並檢視狀態

五、通過測試 invalid、valid、root 等使用者設定不同的ssh連線失敗次數,來測試 denyhosts ,我這邊只測試使用系統中不存在的使用者進行失敗登入嘗試~

我們允許 invalid 使用者只能失敗4次、root 使用者失敗7次、valid使用者失敗10次

deny_threshold_invalid = 4

deny_threshold_valid = 10

deny_threshold_root = 7

測試:使用乙個沒有建立的使用者失敗登入四次,並檢視 /etc/hosts.deny

echo -n

""> /var/log/secure

tail -f /var/log/secure

tail -f /etc/hosts.deny

/var/log/secure 日誌資訊:

/etc/hosts.deny 資訊:

使用者登入資訊:

六、關於清除及新增可信主機記錄

如果想刪除乙個已經禁止的主機ip,只在 /etc/hosts.deny 刪除是沒用的。需要進入 /var/lib/denyhosts 目錄,進入以下操作:

1、停止denyhosts服務:service denyhosts stop

2、在 /etc/hosts.deny 中刪除你想取消的主機ip

3、編輯 denyhosts 工作目錄的所有檔案 /var/lib/denyhosts,並且刪除已被新增的主機資訊。

/var/lib/denyhosts/hosts

/var/lib/denyhosts/hosts-restricted

/var/lib/denyhosts/hosts-root

/var/lib/denyhosts/hosts-valid

/var/lib/denyhosts/users-hosts

/var/lib/denyhosts/users-invalid

/var/lib/denyhosts/users-valid

4、新增你想允許的主機ip位址到

/var/lib/denyhosts/allowed-hosts

5、啟動denyhosts服務: service denyhosts start

七、通過郵件接收 denyhosts 所傳送的資訊

1、修改 /etc/denyhosts.conf 配置檔,並重啟 denyhosts 服務

admin_email = [email protected]

smtp_host = mail.showjoy.com

smtp_port = 25

smtp_from = denyhosts

2、通過其他客戶端進行多次失敗登入嘗試

3、開啟mail,檢視郵件

Linux DenyHosts阻止SSH暴力攻擊

現在的網際網路非常不安全,很多人沒事就拿一些掃瞄機掃瞄ssh埠,然後試圖連線ssh埠進行暴力破解 窮舉掃瞄 所以建議vps主機的空間,盡量設定複雜的ssh登入密碼,雖然在前段時間曾經介紹過linux 禁止某個ip訪問使用hosts.deny禁止某些ip訪問,但是功能方面欠缺,如 不能自動遮蔽,那麼有...

使用DenyHosts阻止SSH暴力攻擊

概述 現在的網際網路非常不安全,很多人沒事就拿一些掃瞄機掃瞄ssh埠,然後試圖連線ssh埠進 行暴力破解 窮舉掃瞄 所以建議vps主機的空間,盡量設定複雜的ssh登入 密碼,關於如何配置安全的ssh服務,請檢視 在 vps主機配置安全ssh服務這篇文章,那麼有什麼辦法設法阻止這些,就可以使用deny...

通過DenyHosts阻止SSH暴力攻擊教程

denyhosts是乙個linux系統下阻止暴力破解ssh密碼的軟體,它的原理與ddos deflate 類似,可以自動拒絕過多次數嘗試ssh登入的ip位址,防止網際網路上某些機器常年破解密碼的行為,也可以防止黑客對ssh密碼進行窮舉。眾所周知,暴露在網際網路上的計算機是非常危險的。並不要因為 小,...