萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 安裝配置 DenyHosts 完整教學:自動封鎖 SSH 暴力破解 IP

DenyHosts 為 Python 開發的安全工具,專門監控 SSH 登入日誌(/var/log/secure 或 /var/log/auth.log),自動將超過閾值的失敗 IP 寫入 /etc/hosts.deny 實現封鎖。本文以 Ubuntu/Debian 為例,涵蓋安裝、白名單、核心參數調校與服務管理全流程。

DenyHosts 架構示意圖

步驟一:安裝 DenyHosts

sudo apt-get update && sudo apt-get install denyhosts

安裝完成後服務會自動啟動,並產生預設配置檔 /etc/denyhosts.conf。

步驟二:【必做】設定白名單防止誤封自己

編輯 /etc/hosts.allow,每行加入一組允許連線的 IP:

sshd: 你的固定公網IP
sshd: 192.168.1.0/24   :: 亦可寫網段

儲存後重啟服務生效:

sudo /etc/init.d/denyhosts restart

步驟三:深度調校 /etc/denyhosts.conf 核心參數

編輯配置檔 sudo nano /etc/denyhosts.conf,重點參數說明如下:

參數預設值建議值/說明
SECURE_LOG/var/log/secureCentOS/RHEL 用此路徑;Ubuntu/Debian 常為 /var/log/auth.log,請確認實際路徑
PURGE_DENY50m封鎖 IP 保留多久後自動清除(單位:m/h/d/w/y)
HOSTS_DENY/etc/hosts.deny封鎖名單寫入目標檔案
BLOCK_SERVICEsshd要封鎖的服務名稱
DENY_THRESHOLD_INVALID1不存在帳號登入失敗幾次即封鎖
DENY_THRESHOLD_VALID10合法帳號登入失敗閾值
DENY_THRESHOLD_ROOT5root 登入失敗閾值(建議設較低)
WORK_DIR/usr/local/share/denyhosts/data資料儲存目錄
LOCK_FILE/var/lock/subsys/denyhosts防止重複啟動的鎖檔
HOSTNAME_LOOKUPNO是否反解 IP 域名(建議 NO,提升效能)
ADMIN_EMAIL(空)設定管理員信箱可接收封鎖通知
DAEMON_LOG/var/log/denyhostsDenyHosts 自身日誌
DAEMON_PURGE10m清理間隔,建議與 PURGE_DENY 一致

步驟四:服務化管理與開機自啟

若系統使用 Systemd(現代主流發行版):

sudo systemctl enable denyhosts
sudo systemctl start denyhosts
sudo systemctl status denyhosts

若為舊版 SysVinit:

# 複製並設定啟動腳本
cp /usr/share/denyhosts/daemon-control-dist /usr/share/denyhosts/daemon-control
chown root:root /usr/share/denyhosts/daemon-control
chmod 700 /usr/share/denyhosts/daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
/etc/init.d/denyhosts start
chkconfig denyhosts on

步驟五:加入開機自啟(雙重保險)

編輯 /etc/rc.local(需確保檔案有執行權限且啟用 rc-local.service):

/usr/share/denyhosts/daemon-control start

驗證與日常維運

  • 查看已封鎖 IP:cat /etc/hosts.deny 或 grep sshd /etc/hosts.deny
  • 查看 DenyHosts 運作日誌:tail -f /var/log/denyhosts
  • 手動解封 IP:從 /etc/hosts.deny 刪除對應行,並清理 WORK_DIR 下的追蹤檔,再重啟服務。

總結

DenyHosts 部署輕量、規則靈活,是 Linux 伺服器防禦 SSH 暴力破解的首選利器。務必先設白名單、再調閾值、最後服務化管理,即可安心讓它 7×24 小時守護伺服器大門。

copyright © 萬盛學電腦網 all rights reserved