<optgroup id="srizi"></optgroup>

<optgroup id="srizi"></optgroup>

系統城裝機大師 - 唯一官網:www.jasafloorhardener.com!

當前位置:首頁 > 網絡知識 > 網絡安全 > 詳細頁面

如何配置SSH不被非法訪問的安全保護技巧

時間:2022-03-22來源:www.jasafloorhardener.com作者:電腦系統城

SSH(安全 Shell)是一個協議,它使你能夠創建一個經過驗證的私人連接,并使用加密密鑰保護通道,在另一臺機器上啟動一個遠程 Shell。使用這種連接,你可以執行遠程命令,啟動安全文件傳輸,轉發套接字、顯示和服務,等等。

在 SSH 出現之前,大多數遠程管理是通過 telnet 完成的,公平地說,一旦你能建立一個遠程會話,你幾乎可以做任何你需要的事情。這個協議的問題是,通訊是以純明文的方式進行的,沒有經過加密。使用 流量嗅探器 不需要太多努力就可以看到一個會話中的所有數據包,包括那些包含用戶名和密碼的數據包。

 

有了 SSH,由于使用了非對稱密鑰,參與通信的設備之間的會話是加密的。如今,這比以往任何時候都更有意義,因為所有的云服務器都是由分布在世界各地的人管理的。

3 個配置 SSH 的技巧

SSH 協議最常見的實現是 OpenSSH,它由 OpenBSD 項目開發,可用于大多數 Linux 和類 Unix 操作系統。一旦你安裝了這個軟件包,你就會有一個名為 sshd_config 的文件來控制該服務的大部分行為。其默認設置通常是非常保守的,但我傾向于做一些調整,以優化我的 SSH 體驗,并保護我的服務器不被非法訪問。

1、改變默認端口

這是一個并非所有管理員都記得的問題。任何有端口掃描器的人都可以發現一個 SSH 端口,即使你之后把它移到別的端口,所以你很難把自己從危險中移除,但這樣卻會有效的避免了數百個針對你的服務器掃描的不成熟腳本。這是一個可以讓你省心,從你的日志中減去大量的噪音的操作。

在寫這篇文章時,我在一個云服務提供商上設置了一個 SSH 服務器,默認端口 TCP 22,每分鐘平均被攻擊次數為 24 次。在將端口改為一個更高的數字,即 TCP 45678 后,平均每天有兩個連接并用各種用戶名或密碼進行猜測。

 

要改變 SSH 的默認端口,在你喜歡的文本編輯器中打開 /etc/ssh/sshd_config,將 Port 的值從 22 改為大于 1024 的某個數字。這一行可能被注釋了,因為 22 是默認的(所以不需要在配置中明確聲明),所以在保存之前取消注釋。

Port 22122
#AddressFamily any 
#ListenAddress 0.0.0.0 
#ListenAddress ::

一旦你改變了端口并保存了文件,重新啟動 SSH 服務器:

$ sudo systemctl restart sshd

2、不要使用密碼

現在有一個普遍的潮流是停止使用密碼作為認證手段,雙因素認證等方法越來越受歡迎。OpenSSH 可以使用非對稱密鑰進行認證,因此不需要記住復雜的密碼,更不需要每隔幾個月輪換一次密碼,也不需要擔心有人在你建立遠程會話時進行“肩后偷窺”。使用 SSH 密鑰可以讓你快速、安全地登錄到你的遠程設備上。這往往意味著花費在錯誤的用戶名和密碼上的時間更少。登錄令人愉快的簡單。當沒有密鑰時,就沒有入口,甚至沒有提示符。

要使用這個功能,你必須同時配置客戶機(在你面前的計算機)和服務器(遠程機器)。

在客戶端機器上,你必須生成一個 SSH 密鑰對。這包括一個公鑰和一個私鑰。正如它們的名字所暗示的,一個公開的密鑰是供你分發給你想登錄的服務器的,另一個是私人的密鑰,必須不與任何人分享。使用 ssh-keygen 命令可以創建一個新的密鑰對,并使用 -t 選項來指定一個好的、最新的密碼學庫,如 ed25519

$ ssh-keygen -t ed25519    
 Generating public/private ed25519 key pair. 
 Enter file in which to save the key (~/.ssh/id_ed25519):

在密鑰創建過程中,你會被提示為文件命名。你可以按回車鍵來接受默認值。如果你將來創建了更多的密鑰,你可以給每個密鑰起一個自定義的名字,但有多個密鑰意味著你要為每次交互指定使用哪個密鑰,所以現在只要接受默認即可。

你還可以給你的密鑰一個口令。這可以確保即使別人設法獲得你的私鑰(這本身就不應該發生),沒有你的口令,他們也無法將其投入使用。這對某些密鑰來說是一種有用的保護措施,而對其他密鑰來說則不合適(特別是那些用于腳本的密鑰)。按回車鍵讓你的密鑰沒有口令,或者你選擇創建一個口令。

 

要把你的密鑰復制到服務器上,使用 ssh-copy-id 命令。例如,如果我擁有一臺名為 example.com 的服務器,那么我可以用這個命令把我的公鑰復制到它上面:

$ ssh-copy-id jgarrido@example.com

這將在服務器的 .ssh 目錄下創建或修改 authorized_keys 文件,其中包含你的公鑰。

一旦確認 ssh-copy-id 命令完成了它所做的事情,嘗試從你的電腦上登錄,以驗證你可以在沒有密碼的情況下登錄(或者如果你選擇使用你的密鑰的口令,就輸入密鑰口令)。

在沒有使用你的服務器帳戶的密碼登錄到你的服務器上后,編輯服務器的 sshd_config 并將 PasswordAuthentication 設置為 no。

PasswordAuthentication no

重新啟動 SSH 服務以加載新的配置:

$ sudo systemctl restart sshd

3、決定誰可以登錄

大多數發行版不允許 root 用戶通過 SSH 登錄,這確保只有非特權賬戶是活躍的,根據需要使用 sudo 命令來提升權限。這就防止了一個明顯的、令人痛苦的目標(root)受到簡單而常見的腳本攻擊。

同樣,OpenSSH 的一個簡單而強大的功能是能夠決定哪些用戶可以登錄到一臺機器。要設置哪些用戶被授予 SSH 訪問權,在你最喜歡的文本編輯器中打開 sshd_config 文件,并添加這樣一行:

AllowUsers jgarrido jane tux

重新啟動 SSH 服務以加載新的配置選項。

這只允許三個用戶(jgarrido、jane 和 tux)登錄或在遠程機器上執行任何操作。

總結

你可以使用 OpenSSH 來實現一個強大而穩健的 SSH 服務器。這些只是加固你的系統的三個有用的選項。盡管如此,在 sshd_config 文件中仍有大量的功能和選項可以打開或關閉,而且有許多很棒的應用程序,如 Fail2ban,你可以用來進一步保護你的 SSH 服務。

 

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

久久大香久久久尹人尹人