SSH是一種廣泛應用的協議,用於安全地遠端存取Linux伺服器。大多數用戶使用預設設定的SSH連線來連接到遠端伺服器。然而,預設配置存在安全風險,因此需要注意。
為了保護具有開放SSH存取權限的伺服器,特別是使用公共IP位址的情況下,禁止root帳號登入是必要的。破解root密碼將變得更加容易,因此我們需要加強SSH的安全性。
以下是保護Linux上SSH伺服器連線的方法:
#為了實現這一目標,首先需要停用root使用者的SSH訪問,並建立一個具有root權限的新使用者。關閉root用戶的伺服器存取是一種防禦策略,可以阻止攻擊者入侵系統。例如,您可以建立一個名為”exampleroot」的用戶,操作如下:
useradd -m exampleroot passwd exampleroot usermod -aG sudo exampleroot
以下是上述指令的簡要說明:
在使用者建立過程之後,需要對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
#預設的 SSH 連線連接埠是 22。當然,所有的攻擊者都知道這一點,因此需要更改預設連接埠號碼以確保 SSH 安全。儘管攻擊者可以透過 Nmap 掃描輕鬆找到新的連接埠號,但這裡的目標是讓攻擊者的工作更加困難。
要變更連接埠號,請開啟**/etc/ssh/sshd_config**並對檔案進行以下變更:
Include /etc/ssh/sshd_config.d/*.confPort 22099
在這一步驟之後,使用sudo systemctl restart ssh再次重新啟動 SSH 服務。現在您可以使用剛剛定義的連接埠存取您的伺服器。如果您使用的是防火牆,則還必須在此處進行必要的規則變更。在執行netstat -tlpn命令時,您可以看到您的 SSH 連接埠號碼已更改。
在您的系統上可能有您不小心建立的沒有密碼的使用者。若要防止此類使用者存取伺服器,您可以將sshd_config檔案中的PermitEmptyPasswords行值設定為no。
PermitEmptyPasswords no
#預設情況下,您可以根據需要嘗試多次輸入密碼來存取伺服器。但是,攻擊者可以利用此漏洞對伺服器進行暴力破解。透過指定允許的密碼嘗試次數,您可以在嘗試一定次數後自動終止SSH 連線。
為此,請變更sshd_config檔案中的MaxAuthTries值。
MaxAuthTries 3
SSH 的第二个版本发布是因为第一个版本中存在许多漏洞。默认情况下,您可以通过将Protocol参数添加到sshd_config文件来启用服务器使用第二个版本。这样,您未来的所有连接都将使用第二个版本的 SSH。
Include /etc/ssh/sshd_config.d/*.conf Protocol 2
攻击者可以尝试通过 SSH 连接的端口转发来访问您的其他系统。为了防止这种情况,您可以在sshd_config文件中关闭AllowTcpForwarding和X11Forwarding功能。
X11Forwarding no AllowTcpForwarding no
连接到服务器的最安全方法之一是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。另外,您可以通过更改sshd_config文件中与密码相关的参数来完全关闭对服务器的密码访问。
创建 SSH 密钥时,有两个密钥:Public和Private。公钥将上传到您要连接的服务器,而私钥则存储在您将用来建立连接的计算机上。
在您的计算机上使用ssh-keygen命令创建 SSH 密钥。不要将密码短语字段留空并记住您在此处输入的密码。如果将其留空,您将只能使用 SSH 密钥文件访问它。但是,如果您设置了密码,则可以防止拥有密钥文件的攻击者访问它。例如,您可以使用以下命令创建 SSH 密钥:
ssh-keygen
大多数情况下,防火墙使用自己的标准框架阻止访问,旨在保护服务器。但是,这并不总是足够的,您需要增加这种安全潜力。
为此,请打开**/etc/hosts.allow**文件。通过对该文件进行的添加,您可以限制 SSH 权限,允许特定 IP 块,或输入单个 IP 并使用拒绝命令阻止所有剩余的 IP 地址。
下面您将看到一些示例设置。完成这些之后,像往常一样重新启动 SSH 服务以保存更改。
所有服务器管理员都应该考虑数据和数据安全问题。服务器安全是一个非常敏感的问题,因为攻击的主要焦点是 Web 服务器,它们几乎包含有关系统的所有信息。由于大多数服务器都在 Linux 基础架构上运行,因此熟悉 Linux 系统和服务器管理非常重要。
SSH 安全只是保护服务器的方法之一。可以通过停止、阻挡或减缓攻击来最大程度地减少您受到的伤害。除了提供 SSH 安全性之外,您还可以实施许多不同的方法来保护您的 Linux 服务器。
以上是在 Linux 上保護 SSH 伺服器連線的 8 種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!