防止 SSH 暴力登錄攻擊的 5 個最佳實踐
使用 SSH 的服務(wù)器通常是動態(tài)攻擊的軟目標(biāo)。黑客不斷開發(fā)新的軟件和機(jī)器人來進(jìn)行自動暴力攻擊,進(jìn)一步增加了攻擊的風(fēng)險。
在本指南中,我們討論了一些可以用來保護(hù) SSH 服務(wù)器免受 Debian 衍生產(chǎn)品的暴力攻擊的技巧。
啟用 SSH 密碼驗證和啟用 SSH 密鑰驗證
SSH默認(rèn)認(rèn)證方式為用戶名/密碼認(rèn)證。然而,正如我們所見,密碼身份驗證很容易受到攻擊。為了安全起見,建議實施基于密鑰的 SSH 身份驗證,其中可以通過公共和私有 SSH 密鑰對進(jìn)行身份驗證。私鑰保留在客戶端的 PC 上,而公鑰則復(fù)制到服務(wù)器。
在SSH密鑰認(rèn)證過程中,服務(wù)器會檢查客戶端PC是否擁有私鑰。如果測試成功,則說明 shell 會話已創(chuàng)建或發(fā)送到遠(yuǎn)程服務(wù)器的命令已成功執(zhí)行。我們有關(guān)于如何配置基于 SSH 密鑰的身份驗證的完整指南。
即使設(shè)置了基于密鑰的身份驗證后,您的服務(wù)器仍然容易受到攻擊,原因很簡單,密碼身份驗證仍然處于啟用狀態(tài)。應(yīng)該禁用此功能。
因此,修改默認(rèn)的SSH配置文件。
$sudo vim /etc/ssh/sshd_config
設(shè)置 PasswordAuthentication 參數(shù),no如圖所示。
密碼驗證
然后保存文件并重新加載 SSH 以應(yīng)用更改。
$ sudo systemctl 重新加載 ssh
激活Fail2ban入侵防御工具
Fail2ban 用 Python 編寫,是一個開源入侵防御系統(tǒng),它掃描應(yīng)用程序日志文件以查找身份驗證失敗,并在固定的時間內(nèi)阻止反復(fù)失敗密碼身份驗證檢查的 IP。
Fail2ban 持續(xù)掃描服務(wù)器日志文件以查找模擬嘗試和其他惡意活動,在預(yù)定次數(shù)的身份驗證失敗后(大多數(shù)情況下為 3 次失敗的登錄嘗試),F(xiàn)ail2ban 會自動阻止遠(yuǎn)程主機(jī)訪問服務(wù)器,并將主機(jī)存儲在 '. “監(jiān)禁”一定期限。
通過這樣做,F(xiàn)ail2ban 顯著減少了無效密碼身份驗證嘗試的數(shù)量。查看我們的指南,了解如何在 Linux 上安裝和配置 Fail2ban 以保護(hù)您的服務(wù)器免受暴力攻擊。
限制 SSH 身份驗證嘗試的最大次數(shù)
保護(hù)服務(wù)器免受暴力攻擊的另一種簡單方法是限制 SSH 登錄嘗試的次數(shù)。默認(rèn)情況下,該值設(shè)置為 3,但如果偶然將其設(shè)置為更高的值,請將其設(shè)置為最多 3 次連接嘗試。
例如,要將最大連接嘗試設(shè)置為 3,請將 MaxAuthTries 參數(shù)設(shè)置為 3,如下所示
最大授權(quán)嘗試次數(shù) = 3
再次保存更改并重新加載 SSH 服務(wù)。
$ sudo systemctl 重新加載 ssh
啟用 TCP 包裝器以限制客戶端的 SSH 訪問
TCP 包裝器是一個提供基于主機(jī)的訪問控制列表 (ACL) 的庫,該列表可根據(jù) IP 地址限制遠(yuǎn)程客戶端訪問 TCP 服務(wù)
遠(yuǎn)程主機(jī)無法查看系統(tǒng)上的服務(wù)。TCP 包裝器使用 /etc/hosts.allow 和 /etc/hosts.deny 配置文件(按該順序)來確定是否允許遠(yuǎn)程客戶端訪問特定服務(wù)。
這些文件通常被注釋掉并允許所有訪問者通過 TCP 包裝層訪問。有關(guān)允許訪問服務(wù)的規(guī)則在 /etc/hosts.allow 文件中進(jìn)行檢查,并優(yōu)先于 /etc/hosts.deny 文件中的規(guī)則。
最好的建議是阻止所有傳入鏈接。因此,打開 /etc/hosts.deny 文件。
$ sudo vim /etc/hosts.deny
添加以下行。
全部:全部
保存更改并退出文件。
然后轉(zhuǎn)到 /etc/hosts.allow 文件。
$ sudo vim /etc/hosts.allow
配置可以通過 SSH 連接到服務(wù)器的主機(jī)或域,如圖所示。在此示例中,我們僅允許兩個遠(yuǎn)程主機(jī)連接到服務(wù)器(173.82.227.89 和 173.82.255.55)并拒絕其余主機(jī)。
sshd:173.82.227.89 173.82.255.55
sshd:全部:拒絕
保存更改并退出配置文件。
要進(jìn)行測試,請嘗試從授權(quán)列表之外的主機(jī)連接到服務(wù)器。您應(yīng)該收到如圖所示的授權(quán)錯誤。
$ ssh [電子郵件
kex_exchange_identification : 讀取 : 連接被對等方重置
通過 173.82.235.7 端口重置連接
失去了連接
啟用 SSH 雙因素身份驗證
除了密碼驗證之外,雙因素身份驗證還提供了一層安全性,使您的服務(wù)器更安全,免受動態(tài)攻擊。廣泛使用的雙因素身份驗證解決方案是 Google Authenticator 應(yīng)用程序,我們有一份關(guān)于如何設(shè)置雙因素身份驗證的詳細(xì)指南。
這是您可以用來防止 SSH 暴力登錄攻擊并確保您的服務(wù)器安全的 5 種最佳實踐的摘要。您還可以閱讀如何保護(hù)和強(qiáng)化 OpenSSH 服務(wù)器。