在 Linux 上保護 SSH 服務器連接的 8 種方法

SSH 是一種廣泛使用的安全訪問 Linux 服務器的協議。 大多數用戶使用默認設置的 SSH 連接來連接到遠程服務器。 但是,不安全的默認配置也存在各種安全風險。

具有開放 SSH 訪問權限的服務器的 root 帳戶可能存在風險。 尤其是如果您使用的是公共 IP 地址,則破解 root 密碼要容易得多。 因此,有必要了解 SSH 安全性。

這就是在 Linux 上保護 SSH 服務器連接的方法。

1.禁用root用戶登錄

為此,首先禁用 root 用戶的 SSH 訪問並創建一個具有 root 權限的新用戶。 禁止root用戶訪問服務器是一種防禦策略,可以防止攻擊者達到入侵系統的目的。 例如,您可以創建一個名為示例根如下:

                      
                        useradd -m exampleroot
                        
passwd exampleroot
usermod -aG sudo exampleroot

以下是上述命令的簡要說明:

  • 添加用戶創建一個新用戶並-儀表該參數在您創建的用戶的目錄。
  • 密碼該命令是為新用戶分配密碼。 請記住,您分配給用戶的密碼必須複雜且難以猜測。
  • usermod -aG 須藤將新創建的用戶添加到管理員組。

在用戶創建過程之後,有必要對sshd_config訴訟程序。 您可以在以下位置找到此文件/etc/ssh/sshd_config. 使用任何文本編輯器打開文件並進行以下更改:

                      
                        
                          # Authentication: 
                        
                        
#LoginGraceTime 2m
PermitRootLogin no
AllowUsers exampleroot

PermitRootLogin行將阻止 root 用戶通過 SSH 獲得遠程訪問。 包括示例根在裡面允許用戶list 授予用戶必要的權限。

最後,使用以下命令重啟 SSH 服務:

                      
                        sudo systemctl restart ssh
                        

如果失敗並且您收到錯誤消息,請嘗試以下命令。 這可能因您使用的 Linux 發行版而異。

                      
                        sudo systemctl restart sshd
                      
                    

2.更改默認端口

SSH 連接的默認端口是 22。當然,所有攻擊者都知道這一點,因此需要更改默認端口號以確保 SSH 安全。 雖然攻擊者可以通過 Nmap 掃描輕鬆找到新的端口號,但這裡的目標是讓攻擊者的工作更加困難。

要更改端口號,請打開/etc/ssh/sshd_config並對文件進行以下更改:

                      
                        
                          Include
                        
                         /etc/ssh/sshd_config.d
                        
                          /*.conf
                        
                        
Port 5922

完成此步驟後,再次重新啟動 SSH 服務sudo systemctl 重啟 ssh. 您現在可以使用剛剛定義的端口訪問您的服務器。 如果您使用防火牆,則還必須在此處進行任何必要的規則更改。 執行時netstat-tlpn命令,您可以看到您的 SSH 端口號已更改。

3. 禁止密碼為空的用戶訪問

您的系統上可能存在您不小心創建的沒有密碼的用戶。 為防止此類用戶訪問服務器,您可以配置PermitEmptyPasswords行中的值sshd_config文件到.

                      
                        PermitEmptyPasswords no
                      
                    

4.限制登錄/訪問嘗試

默認情況下,您可以通過多次嘗試密碼來訪問服務器。 但是,攻擊者可以利用此漏洞對服務器進行暴力破解。 通過指定允許的密碼嘗試次數,您可以在嘗試一定次數後自動終止 SSH 連接。

為此,請更改MaxAuthTries中的價值sshd_config訴訟程序。

                      
                        MaxAuthTries 3
                      
                    

5. 使用 SSH 版本 2

由於第一版中存在大量漏洞,SSH 的第二版發布。 默認情況下,您可以通過添加協議參數給你sshd_config訴訟程序。 這樣,您未來的所有連接都將使用第二個版本的 SSH。

                      
                        
                          Include
                        
                         /etc/ssh/sshd_config.d
                        
                          /*.conf 
                        
                        
Protocol 2

6.禁用TCP端口轉發和X11轉發

攻擊者可以嘗試通過 SSH 連接進行端口轉發來訪問您的其他系統。 為避免這種情況,您可以關閉AllowTcpForwardingX11 轉發中的特徵sshd_config訴訟程序。

                      
                        X11Forwarding no 
                        
AllowTcpForwarding no

7. 使用 SSH 密鑰連接

連接到服務器的最安全方法之一是使用 SSH 密鑰。 使用 SSH 密鑰時,無需密碼即可訪問服務器。 此外,您可以通過更改密碼相關參數來完全禁用對服務器的密碼訪問。sshd_config訴訟程序。

創建 SSH 密鑰時,有兩個密鑰:上市私人的. 公鑰上傳到您要連接的服務器,私鑰存儲在您要連接的計算機上。

使用以下命令創建 SSH 密鑰ssh-keygen計算機上的命令。 不要離開密碼空白字段並記住您在此處輸入的密碼。 如果將其留空,您將只能使用 SSH 密鑰文件訪問它。 但是,如果您設置了密碼,則可以防止擁有密鑰文件的攻擊者訪問它。 例如,您可以使用以下命令創建 SSH 密鑰:

                      
                        ssh-keygen
                      
                    

8. SSH連接的IP限制

大多數時候,防火牆使用自己的標準框架阻止訪問,旨在保護服務器。 然而,這並不總是足夠的,有必要增加這種安全潛力。

為此,請打開/etc/hosts.allow訴訟程序。 通過對該文件進行的添加,您可以限制 SSH 權限、允許特定 IP 阻止,或者輸入單個 IP 並使用拒絕命令阻止所有其他 IP 地址。

下面是一些示例設置。 完成此操作後,像往常一樣重新啟動 SSH 服務以保存更改。

Linux 服務器安全的重要性

數據和數據安全問題非常詳細,所有服務器管理員都應該考慮。 服務器安全是一個非常敏感的話題,因為攻擊的主要焦點是 Web 服務器,它們幾乎包含有關係統的所有信息。 由於大多數服務器都運行在 Linux 基礎架構上,因此熟悉 Linux 系統和服務器管理非常重要。

SSH 安全只是保護服務器的方法之一。 可以通過招架、格擋或減緩攻擊來最小化你受到的傷害。 除了提供 SSH 安全性之外,您還可以實施許多不同的方法來保護您的 Linux 服務器。

相關文章