目錄
停用root使用者登入:" >停用root使用者登入:
2.更改預設連接埠" >2.更改預設連接埠
3. 禁止使用空白密碼的使用者存取" >3. 禁止使用空白密碼的使用者存取
4.限制登入/存取嘗試" >4.限制登入/存取嘗試
5. 使用 SSH 版本 2" >5. 使用 SSH 版本 2
6.关闭TCP端口转发和X11转发" >6.关闭TCP端口转发和X11转发
7. 使用 SSH 密钥连接" >7. 使用 SSH 密钥连接
8. SSH 连接的 IP 限制" >8. SSH 连接的 IP 限制
Linux 服务器安全的重要性" >Linux 服务器安全的重要性
首頁 系統教程 Linux 在 Linux 上保護 SSH 伺服器連線的 8 種方法

在 Linux 上保護 SSH 伺服器連線的 8 種方法

Feb 15, 2024 pm 03:50 PM
linux linux教程 linux系統 linux指令 shell腳本 嵌入式linux linux入門 linux學習

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
登入後複製
在 Linux 上保护 SSH 服务器连接的 8 种方法

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
登入後複製
在 Linux 上保护 SSH 服务器连接的 8 种方法

在這一步驟之後,使用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
登入後複製

在 Linux 上保护 SSH 服务器连接的 8 种方法

6.关闭TCP端口转发和X11转发

攻击者可以尝试通过 SSH 连接的端口转发来访问您的其他系统。为了防止这种情况,您可以在sshd_config文件中关闭AllowTcpForwardingX11Forwarding功能。

X11Forwarding 
no AllowTcpForwarding no
登入後複製

7. 使用 SSH 密钥连接

连接到服务器的最安全方法之一是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。另外,您可以通过更改sshd_config文件中与密码相关的参数来完全关闭对服务器的密码访问。

创建 SSH 密钥时,有两个密钥:PublicPrivate。公钥将上传到您要连接的服务器,而私钥则存储在您将用来建立连接的计算机上。

在您的计算机上使用ssh-keygen命令创建 SSH 密钥。不要将密码短语字段留空并记住您在此处输入的密码。如果将其留空,您将只能使用 SSH 密钥文件访问它。但是,如果您设置了密码,则可以防止拥有密钥文件的攻击者访问它。例如,您可以使用以下命令创建 SSH 密钥:

ssh-keygen
登入後複製

8. SSH 连接的 IP 限制

大多数情况下,防火墙使用自己的标准框架阻止访问,旨在保护服务器。但是,这并不总是足够的,您需要增加这种安全潜力。

为此,请打开**/etc/hosts.allow**文件。通过对该文件进行的添加,您可以限制 SSH 权限,允许特定 IP 块,或输入单个 IP 并使用拒绝命令阻止所有剩余的 IP 地址。

下面您将看到一些示例设置。完成这些之后,像往常一样重新启动 SSH 服务以保存更改。

在 Linux 上保护 SSH 服务器连接的 8 种方法

Linux 服务器安全的重要性

所有服务器管理员都应该考虑数据和数据安全问题。服务器安全是一个非常敏感的问题,因为攻击的主要焦点是 Web 服务器,它们几乎包含有关系统的所有信息。由于大多数服务器都在 Linux 基础架构上运行,因此熟悉 Linux 系统和服务器管理非常重要。

SSH 安全只是保护服务器的方法之一。可以通过停止、阻挡或减缓攻击来最大程度地减少您受到的伤害。除了提供 SSH 安全性之外,您还可以实施许多不同的方法来保护您的 Linux 服务器。

以上是在 Linux 上保護 SSH 伺服器連線的 8 種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

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體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

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

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

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

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

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

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

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

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

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

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

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

vscode 可以用於 mac 嗎 vscode 可以用於 mac 嗎 Apr 15, 2025 pm 07:36 PM

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

See all articles