Linux系統防止SSH暴力破解登入攻擊的5大最佳實踐


在當今科技世界,安全至關重要。保護我們的系統免受未授權訪問至關重要,而獲得Linux系統未授權訪問的最常見方法之一是透過對SSH的暴力破解登入攻擊。SSH(安全外殼)是一種用於安全訪問和管理遠端系統的網路協議。在本文中,我們將討論5種防止Linux系統中SSH暴力破解登入攻擊的最佳實踐。

使用強密碼

保護您的SSH伺服器的第一步也是最重要的一步是使用強密碼。強密碼應至少包含8個字元,並混合使用大寫字母、小寫字母、數字和特殊字元。避免使用易於猜測的密碼,例如“password123”或“admin123”,這些密碼很容易被暴力破解攻擊破解。

要建立強密碼,您可以使用線上密碼生成器、密碼管理器,甚至可以組合隨機單詞。此外,務必定期更改密碼,至少每三個月更改一次。

使用公鑰身份驗證

與使用密碼相比,公鑰身份驗證是登入SSH伺服器更安全的方法。此方法涉及建立一對公鑰和私鑰,公鑰儲存在伺服器上,私鑰安全地儲存在您的本地計算機上。

當您登入SSH伺服器時,伺服器將檢查您的公鑰以驗證您的身份。此方法比使用密碼更安全,因為即使攻擊者設法獲取您的密碼,他們也無法在沒有您的私鑰的情況下登入。

要使用公鑰身份驗證,您可以在本地計算機上使用ssh-keygen命令生成金鑰對。然後,將公鑰複製到伺服器的authorized_keys檔案。之後,您可以使用您的私鑰登入伺服器。

更改預設SSH埠

預設情況下,SSH伺服器監聽埠22,攻擊者對此非常瞭解。將預設埠更改為隨機埠或非標準埠可以使攻擊者更難以找到您的SSH伺服器併發起暴力破解攻擊。

要更改預設SSH埠,您需要修改SSH伺服器配置檔案,通常位於/etc/ssh/sshd_config。查詢指定埠號的行並將其更改為不同的值。之後,重新啟動SSH服務以應用更改。

務必記住,更改預設SSH埠並不能阻止所有攻擊,但可以使攻擊者更難以找到您的伺服器。

限制SSH訪問

限制SSH訪問可以幫助防止未經授權訪問您的伺服器。您可以使用防火牆將訪問許可權限制為特定的IP地址或網路範圍。透過這樣做,您可以僅允許來自受信任來源(例如您的辦公室網路或家庭網路)的訪問。

要使用防火牆限制SSH訪問,您需要建立一個規則,僅允許來自受信任IP地址或網路範圍的SSH埠的傳入流量。例如,如果您只想允許來自IP地址192.168.1.100的訪問,您可以建立如下規則:

iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT

此規則僅允許來自IP地址192.168.1.100的SSH埠的傳入流量。您可以根據需要新增更多IP地址或網路範圍。

安裝和使用Fail2ban

Fail2ban是一個軟體工具,可以幫助保護您的SSH伺服器免受暴力破解登入攻擊。Fail2ban監視伺服器日誌中失敗的登入嘗試,並在一定數量的失敗嘗試後阻止攻擊者的IP地址。這使得攻擊者更難以發起成功的暴力破解攻擊。

要在您的Linux伺服器上安裝Fail2ban,您可以使用特定於您的發行版的包管理器。例如,在基於Debian的系統上,您可以使用apt-get命令:

sudo apt-get install fail2ban

安裝後,您需要配置Fail2ban以監視您的SSH日誌。預設情況下,Fail2ban帶有一個用於SSH的配置檔案,位於/etc/fail2ban/jail.conf。您可以修改此檔案以指定在阻止IP地址之前的失敗登入嘗試次數。

例如,如果您想在三次失敗的登入嘗試後阻止IP地址,您可以將以下幾行新增到配置檔案的SSH部分:

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

進行更改後,重新啟動Fail2ban服務以應用新配置。

停用root登入

預設情況下,root使用者對系統擁有完全訪問許可權,並且是攻擊者的主要目標。最佳實踐是停用透過SSH的直接root登入,而使用具有sudo許可權的普通使用者帳戶。這樣,即使攻擊者設法破解普通使用者帳戶的密碼,他們也無法訪問系統的root許可權。

要停用root登入,您需要修改SSH伺服器配置檔案(/etc/ssh/sshd_config)並將PermitRootLogin選項設定為“no”。

使用雙因素身份驗證

雙因素身份驗證(2FA)為SSH登入過程增加了額外的安全層。除了密碼或私鑰之外,2FA還需要使用者提供第二個因素,例如由智慧手機應用程式或物理令牌生成的程式碼。

要為SSH啟用2FA,您可以使用Google Authenticator或Authy之類的工具,這些工具生成基於時間的密碼(TOTP)。您需要在本地計算機和SSH伺服器上安裝2FA工具,並將兩者配置為使用相同的TOTP金鑰。

監控SSH日誌

監控您的SSH日誌可以幫助您檢測和防止暴力破解登入攻擊和其他安全事件。您可以使用Logwatch、Logrotate或Logwatcher等工具來監控您的SSH日誌,並在檢測到異常活動時向您發出警報。

定期檢查您的SSH日誌以識別任何可疑登入嘗試、異常IP地址或失敗的登入嘗試也很重要。透過這樣做,您可以迅速採取行動來防止潛在的安全漏洞。

保持系統更新

使用最新的安全補丁和更新來保持Linux系統的更新對於防止已知的漏洞和攻擊至關重要。您應該定期檢查更新並儘快應用它們。

此外,定期檢查SSH伺服器配置或檔案是否存在任何未經授權的更改也很重要,因為這些可能是安全漏洞的跡象。

使用堡壘主機或跳板伺服器

堡壘主機或跳板伺服器是一個專用伺服器,充當您網路或基礎設施的單一入口點。所有到您網路的SSH連線都透過堡壘主機路由,可以將其配置為執行安全策略,例如訪問控制和身份驗證。

使用堡壘主機或跳板伺服器可以幫助您減少網路的攻擊面並防止未經授權訪問您的系統。

結論

總而言之,保護您的SSH伺服器對於防止未經授權訪問您的Linux系統至關重要。透過遵循上述5種最佳實踐,您可以顯著降低SSH伺服器遭受暴力破解登入攻擊的風險。記住要使用強密碼,啟用公鑰身份驗證,更改預設SSH埠,限制SSH訪問,並安裝和使用Fail2ban來監視您的SSH日誌。透過實施這些實踐,您可以確保Linux系統的安全,並保護您的資料免受未經授權的訪問。

更新於:2023年4月10日

1K+ 瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告