使用 Debian 11 的初始伺服器設置

介紹

當您首次創建新的Debian 11服務器時,有一些配置步驟您應該在基本設置的早期進行。這將增加您的服務器的安全性和可用性,並為後續操作奠定堅實的基礎。

在本教程中,我們將學習如何以root用戶身份登錄到我們的服務器,創建具有管理權限的新用戶,並設置基本防火牆。

步驟1 — 以Root身份登錄

要登錄到您的服務器,您需要知道您的服務器的公共IP地址。您還需要密碼或者,如果您安裝了用於身份驗證的SSH密鑰,則需要root用戶帳戶的私鑰。如果您尚未登錄到您的服務器,您可能需要參考我們的指南如何使用SSH連接到您的Droplet,該指南詳細介紹了這個過程。

如果您尚未連接到服務器,請使用以下命令以root用戶身份登錄(將命令中的突出顯示部分替換為您的服務器的公共IP地址):

  1. ssh root@your_server_ip

接受主機真實性警告(如果出現)。如果您使用密碼驗證,請提供您的root密碼進行登錄。如果您使用的是帶密碼保護的SSH金鑰,您可能會在每個會話的第一次使用該金鑰時被提示輸入密碼。如果這是您第一次使用密碼登錄到服務器,您可能還會被提示更改root密碼。

關於 Root

root用戶是Linux環境中的管理用戶,擁有非常廣泛的特權。由於root帳戶的特權增強,建議您不要經常使用它。這是因為root帳戶所固有的權力部分包括甚至可能會意外地進行非常破壞性的更改。

下一步是設置一個替代用戶帳戶,用於日常工作的範圍較小。稍後,我們將解釋如何在您需要時獲得增加的特權。

第2步 — 創建新用戶

一旦您以root身份登錄,我們準備添加新的用戶帳戶,從現在開始將使用該帳戶進行登錄。

這個例子創建了一個名為sammy的新用戶,但你應該用你喜歡的用戶名來替換它:

  1. adduser sammy

接下來會問你幾個問題,首先是帳戶密碼。

輸入一個強密碼,並可選擇填寫任何你想填寫的額外信息。這不是必需的,你可以在想跳過的任何字段中按ENTER

接下來,我們將為這個新用戶設置管理員特權。

第三步 — 授予管理員特權

現在,我們已經創建了一個具有常規帳戶特權的新用戶帳戶。但是,有時我們可能需要使用它來執行管理任務。

為了避免不得不退出我們的常規用戶並重新以root帳戶登錄,我們可以設置所謂的超級用戶root特權給我們的常規帳戶。這將允許我們的常規用戶在命令前加上sudo詞來使用管理權限運行命令。

要將這些特權添加到我們的新用戶,我們需要將新用戶添加到sudo組。默認情況下,在Debian 11上,屬於sudo組的用戶被允許使用sudo命令。

作為root,執行以下命令將你的新用戶添加到sudo組(用你的新用戶替換下面突出顯示的詞):

  1. usermod -aG sudo sammy

現在,當以常規用戶身份登錄時,您可以在命令前輸入sudo來以超級用戶權限運行該命令。

第四步 — 設置基本防火牆

Debian 服務器可以使用防火牆來確保只允許特定服務的某些連接。在本指南中,我們將安裝並使用 UFW 防火牆來幫助設置防火牆策略和管理例外情況。

我們可以使用 apt 軟件包管理器來安裝 UFW。更新本地索引以檢索有關可用軟件包的最新信息,然後通過輸入以下命令安裝 UFW 防火牆軟件:

  1. apt update
  2. apt install ufw

注意:如果您的服務器運行在 DigitalOcean 上,您可以選擇使用DigitalOcean 雲防火牆代替 UFW 防火牆。我們建議一次只使用一個防火牆,以避免可能難以調試的衝突規則。

防火牆配置文件允許 UFW 管理已安裝應用程序的命名防火牆規則集。一些常見軟件的配置文件已經預先與 UFW 捆綁在一起,並且安裝過程中的軟件包可以向 UFW 註冊額外的配置文件。OpenSSH,現在允許我們連接到服務器的服務,具有我們可以使用的防火牆配置文件。

您可以通過輸入以下命令列出所有可用的應用程序配置文件:

  1. ufw app list
Output
Available applications: . . . OpenSSH . . .

我們需要確保防火牆允許SSH連接,這樣我們下次可以登錄回來。我們可以通過輸入以下命令來允許這些連接:

  1. ufw allow OpenSSH

之後,我們可以通過輸入以下命令來啟用防火牆:

  1. ufw enable

輸入 y 然後按 ENTER 鍵繼續。您可以通過輸入以下命令來查看SSH連接仍然被允許:

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

防火牆目前阻止了除SSH之外的所有連接,如果您安裝和配置了其他服務,您需要調整防火牆設置以允許可接受的流量進入。您可以在我們的UFW基本指南中了解一些常見的UFW操作。

步驟 5 — 為您的常規用戶啟用外部訪問

現在我們有了一個用於日常使用的常規用戶,我們需要確保可以直接通過SSH登錄該帳戶。

注意:在确认您可以使用新用户登录并使用sudo之前,我们建议保持登录为root。这样,如果您遇到问题,可以作为root进行故障排除并进行任何必要的更改。如果您使用的是DigitalOcean Droplet并且在root SSH连接时遇到问题,您也可以通过使用DigitalOcean Console登录到Droplet

为您的新用户配置SSH访问的过程取决于您的服务器的root帐户是使用密码还是SSH密钥进行身份验证。

如果Root帐户使用密码身份验证

如果您使用密码登录到您的root帐户,则SSH启用了密码身份验证。您可以通过打开新的终端会话并使用新用户名进行SSH登录:

  1. ssh sammy@your_server_ip

输入您的常规用户密码后,您将登录。请记住,如果您需要以管理员权限运行命令,请在其之前键入sudo,如下所示:

  1. sudo command_to_run

在每个会话中首次使用sudo时,您将被要求输入常规用户密码(之后会定期出现)。

為了增強您的伺服器安全性,我們強烈建議設置 SSH 金鑰,而不是使用密碼驗證。請參考我們關於在 Debian 11 上設置 SSH 金鑰的指南,了解如何配置基於金鑰的驗證。

如果 root 帳戶使用 SSH 金鑰驗證

如果您使用 SSH 金鑰登錄您的 root 帳戶,那麼 SSH 的密碼驗證就會被 禁用。您需要將本地公鑰的副本添加到新用戶的 ~/.ssh/authorized_keys 檔案中,以成功登錄。

由於您的公鑰已經位於伺服器上 root 帳戶的 ~/.ssh/authorized_keys 檔案中,我們可以使用 cp 命令將該檔案和目錄結構複製到我們現有會話中的新用戶帳戶。之後,我們可以使用 chown 命令調整檔案的所有權。

請確保更改下面命令中的突顯部分,以匹配您的常規用戶名稱:

  1. cp -r ~/.ssh /home/sammy
  2. chown -R sammy:sammy /home/sammy/.ssh

cp -r 命令將整個目錄複製到新使用者的家目錄,而 chown -R 命令將該目錄(以及其中的所有內容)的所有者更改為指定的 使用者名稱:群組名稱(Debian 預設會建立與您使用者名稱相同的群組)。

現在,打開一個新的終端會話,並使用您的新使用者名稱通過 SSH 登錄:

  1. ssh sammy@your_server_ip

您應該可以無需使用密碼就登錄到新的使用者帳戶。請記住,如果您需要以管理權限運行命令,請在其前面加上 sudo,就像這樣:

  1. sudo command_to_run

在每個會話中的第一次使用 sudo 時(以及之後定期使用時),系統會提示您輸入您的常規使用者密碼。

接下來該做什麼?

在這一點上,您的伺服器已經建立了堅實的基礎。您現在可以在伺服器上安裝任何所需的軟體。

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-11