首頁  >  文章  >  系統教程  >  在 Linux 上保護 SSH 伺服器連線的 8 種方法

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

WBOY
WBOY轉載
2024-02-15 15:50:03745瀏覽

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中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除