在 Linux 上保護 SSH 伺服器連線的 8 種方法
SSH是一種廣泛應用的協議,用於安全地遠端存取Linux伺服器。大多數用戶使用預設設定的SSH連線來連接到遠端伺服器。然而,預設配置存在安全風險,因此需要注意。
為了保護具有開放SSH存取權限的伺服器,特別是使用公共IP位址的情況下,禁止root帳號登入是必要的。破解root密碼將變得更加容易,因此我們需要加強SSH的安全性。
以下是保護Linux上SSH伺服器連線的方法:
停用root使用者登入:
#為了實現這一目標,首先需要停用root使用者的SSH訪問,並建立一個具有root權限的新使用者。關閉root用戶的伺服器存取是一種防禦策略,可以阻止攻擊者入侵系統。例如,您可以建立一個名為”exampleroot」的用戶,操作如下:
useradd -m exampleroot passwd exampleroot usermod -aG sudo exampleroot
以下是上述指令的簡要說明:
- useradd建立一個新用戶,並且**-m參數在您建立的用戶的主**目錄下建立一個資料夾。
- passwd指令用於為新使用者指派密碼。請記住,您分配給用戶的密碼應該很複雜且難以猜測。
- usermod -aG sudo將新建立的使用者加入管理員群組。
在使用者建立過程之後,需要對sshd_config檔案進行一些更改。 您可以在/etc/ssh/sshd_config找到此檔案。使用任何文字編輯器開啟檔案並對其進行以下更改:
# Authentication: #LoginGraceTime 2m PermitRootLogin no AllowUsers exampleroot

PermitRootLogin 行將阻止 root 使用者使用 SSH 獲得遠端存取。在AllowUsers 清單中包含 exampleroot 會向使用者授予必要的權限。
最後,使用以下指令重新啟動 SSH 服務:
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ⚡ sudo systemctl restart ssh
如果失敗並且您收到錯誤訊息,請嘗試以下命令。這可能會因您使用的 Linux 發行版而異。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com sudo systemctl restart sshd
2.更改預設連接埠
#預設的 SSH 連線連接埠是 22。當然,所有的攻擊者都知道這一點,因此需要更改預設連接埠號碼以確保 SSH 安全。儘管攻擊者可以透過 Nmap 掃描輕鬆找到新的連接埠號,但這裡的目標是讓攻擊者的工作更加困難。
要變更連接埠號,請開啟**/etc/ssh/sshd_config**並對檔案進行以下變更:
Include /etc/ssh/sshd_config.d/*.confPort 22099

在這一步驟之後,使用sudo systemctl restart ssh再次重新啟動 SSH 服務。現在您可以使用剛剛定義的連接埠存取您的伺服器。如果您使用的是防火牆,則還必須在此處進行必要的規則變更。在執行netstat -tlpn命令時,您可以看到您的 SSH 連接埠號碼已更改。
3. 禁止使用空白密碼的使用者存取
在您的系統上可能有您不小心建立的沒有密碼的使用者。若要防止此類使用者存取伺服器,您可以將sshd_config檔案中的PermitEmptyPasswords行值設定為no。
PermitEmptyPasswords no
4.限制登入/存取嘗試
#預設情況下,您可以根據需要嘗試多次輸入密碼來存取伺服器。但是,攻擊者可以利用此漏洞對伺服器進行暴力破解。透過指定允許的密碼嘗試次數,您可以在嘗試一定次數後自動終止SSH 連線。
為此,請變更sshd_config檔案中的MaxAuthTries值。
MaxAuthTries 3
5. 使用 SSH 版本 2
SSH 的第二个版本发布是因为第一个版本中存在许多漏洞。默认情况下,您可以通过将Protocol参数添加到sshd_config文件来启用服务器使用第二个版本。这样,您未来的所有连接都将使用第二个版本的 SSH。
Include /etc/ssh/sshd_config.d/*.conf Protocol 2
6.关闭TCP端口转发和X11转发
攻击者可以尝试通过 SSH 连接的端口转发来访问您的其他系统。为了防止这种情况,您可以在sshd_config文件中关闭AllowTcpForwarding和X11Forwarding功能。
X11Forwarding no AllowTcpForwarding no
7. 使用 SSH 密钥连接
连接到服务器的最安全方法之一是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。另外,您可以通过更改sshd_config文件中与密码相关的参数来完全关闭对服务器的密码访问。
创建 SSH 密钥时,有两个密钥:Public和Private。公钥将上传到您要连接的服务器,而私钥则存储在您将用来建立连接的计算机上。
在您的计算机上使用ssh-keygen命令创建 SSH 密钥。不要将密码短语字段留空并记住您在此处输入的密码。如果将其留空,您将只能使用 SSH 密钥文件访问它。但是,如果您设置了密码,则可以防止拥有密钥文件的攻击者访问它。例如,您可以使用以下命令创建 SSH 密钥:
ssh-keygen
8. SSH 连接的 IP 限制
大多数情况下,防火墙使用自己的标准框架阻止访问,旨在保护服务器。但是,这并不总是足够的,您需要增加这种安全潜力。
为此,请打开**/etc/hosts.allow**文件。通过对该文件进行的添加,您可以限制 SSH 权限,允许特定 IP 块,或输入单个 IP 并使用拒绝命令阻止所有剩余的 IP 地址。
下面您将看到一些示例设置。完成这些之后,像往常一样重新启动 SSH 服务以保存更改。

Linux 服务器安全的重要性
所有服务器管理员都应该考虑数据和数据安全问题。服务器安全是一个非常敏感的问题,因为攻击的主要焦点是 Web 服务器,它们几乎包含有关系统的所有信息。由于大多数服务器都在 Linux 基础架构上运行,因此熟悉 Linux 系统和服务器管理非常重要。
SSH 安全只是保护服务器的方法之一。可以通过停止、阻挡或减缓攻击来最大程度地减少您受到的伤害。除了提供 SSH 安全性之外,您还可以实施许多不同的方法来保护您的 Linux 服务器。
以上是在 Linux 上保護 SSH 伺服器連線的 8 種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。
