使用 Ubuntu 進行初始伺服器設置
介紹
當你首次建立新的 Ubuntu 伺服器時,應該在初始設定過程中執行一些重要的配置步驟。這些步驟將提升伺服器的安全性與可用性,並為後續操作打下穩固的基礎。
本教學已在 Ubuntu 22.04 LTS、24.04 LTS 及 24.10 上驗證。這些指令使用的是在當前臨時版本和即將推出的 25.x 版本中依然穩定的預設套件,這些版本包含 apt、OpenSSH 和 UFW 的預設設定。
重點摘要
- 以 root 身份登入:學習如何首次安全地存取您的 Ubuntu 伺服器。
- 建立非 root 使用者:新增一個具有
sudo權限的一般使用者帳號,以減少日常使用 root 帳號的安全風險。 - 設定 SSH 金鑰認證:配置 SSH 金鑰以進行安全且無密碼登入,並將您的公鑰複製到新使用者帳號。
- 使用 UFW 配置防火牆:啟用並測試簡易防火牆 (UFW) 以限制存取,同時確保保持 SSH 開啟以避免被鎖定。
- 在退出 root 前驗證存取權限:在關閉 root 會話之前,確認您的新用戶可以使用
sudo並透過 SSH 連線,以避免被鎖出。 - 最佳實踐適用於多種環境: 這些初始步驟適用於雲端虛擬機、Droplets、VPS 和裸機伺服器。
使用 Linux-Console.net 應用平台從 GitHub 部署您的應用程式。讓 Linux-Console.net 專注於擴展您的應用程式。
使用 Ubuntu 進行初始伺服器設置
- 以 root 身份登入
- 建立新使用者
- 授予管理員權限
- 設定防火牆
- 啟用您的常規使用者的外部存取
步驟 1 - 以 root 身份登入
要登入您的伺服器,您需要知道您的伺服器的公共 IP 位址。如果您為認證安裝了 SSH 金鑰,還需要 root 使用者帳戶的密碼或私鑰。如果您尚未登入您的伺服器,您可能會想參考我們的指南「如何使用 SSH 連接 Droplets」,該指南詳細說明了此過程。
如果您目前尚未連接到您的伺服器,請使用以下命令以 root 使用者身份登入。將命令中標示的 your_server_ip 部分替換為您伺服器的公共 IP 位址:
ssh root@your_server_ip如果出現主機真實性警告,請接受它。如果您的伺服器使用密碼驗證,請提供您的root密碼以登入。如果您使用的是受密碼保護的 SSH 金鑰,每次會話首次使用該金鑰時可能需要輸入密碼。如果這是您第一次使用密碼登入伺服器,您可能還需要更改root密碼。如果收到提示,請按照指示更改密碼。
關於根
root 使用者是在 Linux 環境中具有高級權限的管理使用者。由於 root 帳號擁有較高的權限,因此不建議您經常使用它。root 帳號即使是無意間也可能造成非常破壞性的更改。
下一步是建立一個具有較低權限的新使用者帳戶,用於日常使用。之後,我們會教你如何在需要時暫時提升權限。
步驟 2 - 創建新用戶
一旦你以 root 身份登入,你就可以新增使用者帳號。將來,我們將使用這個新帳號登入,而不是 root。
此範例會建立一個名為 sammy 的新使用者,但你應該將其替換為你喜歡的使用者名稱:
adduser sammy你將被問幾個問題,從帳戶密碼開始。
請輸入一個強密碼,並且可以選擇填寫任何其他您想提供的資訊。這些資訊不是必填的,您可以在任何想跳過的欄位按下 ENTER。
步驟 3 - 授予管理員權限
現在你有了一個擁有一般帳號權限的新使用者帳號。然而,你有時需要以 root 使用者身份執行管理任務。
為了避免登出您的普通用戶後再以 root 帳戶登入,您可以為您的普通用戶帳戶設定所謂的 超級用戶 或 root 權限。這些權限將允許您的普通用戶在命令前加上 sudo 來以管理員身份執行指令。
要將這些權限添加到您的新使用者,您需要將該使用者加入 sudo 系統群組。預設在 Ubuntu 中,屬於 sudo 群組的使用者可以使用 sudo 命令。
以 root 身份,執行此命令將新用戶加入 sudo 群組(將黃色標記的 sammy 用戶名替換為你的新用戶):
usermod -aG sudo sammy現在你可以在命令前輸入 sudo,以普通用戶身份登入時使用超級用戶權限運行命令。
步驟 4 - 設置防火牆
Ubuntu 伺服器可以使用 UFW 防火牆來確保僅允許特定服務的連線。您可以使用此應用程式來設定基本防火牆。
注意: 如果您的伺服器運行在 Linux-Console.net 上,您可以選擇使用 Linux-Console.net 雲端防火牆,而不是 UFW 防火牆。我們建議一次只使用一個防火牆,以避免可能難以排查的規則衝突。
應用程式可以在安裝時向 UFW 註冊它們的設定檔。這些設定檔允許 UFW 通過名稱來管理這些應用程式。OpenSSH,即允許你連接到伺服器的服務,已經向 UFW 註冊了設定檔。
您可以透過輸入以下指令來檢查已安裝的 UFW 檔案列表:
ufw app listAvailable applications:
OpenSSH你需要確保防火牆允許 SSH 連線,這樣下次才能登入你的伺服器。請透過輸入以下指令來允許這些連線:
ufw allow OpenSSH現在通過輸入來啟用防火牆:
ufw enable輸入 y 並按下 ENTER 以繼續。你可以輸入以下指令來查看 SSH 連線仍然被允許:
ufw statusStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
目前防火牆正在阻擋除了 SSH 外的所有連線。如果你安裝並配置了其他服務,將需要調整防火牆設定以允許新的流量進入你的伺服器。你可以在我們的 UFW 基礎指南 中了解一些常見的 UFW 操作。
若要稍後新增 HTTP 存取,僅允許您需要的服務:
ufw allow 80/tcp
ufw allow 443/tcp請參考《如何在 Ubuntu 上使用 UFW 設置防火牆》,以了解常見的模式,如速率限制和特定服務規則。
步驟 5 - 為您的一般用戶啟用外部訪問
既然你已經有了一個日常使用的普通用戶,你需要確保可以直接使用 SSH 登入該帳戶。
注意: 在確認您可以使用新用戶登入並使用 sudo 之前,我們建議保持以 root 登入。如果您在連接時遇到問題,可以以 root 身份進行故障排除並進行必要的更改。如果您使用 Linux-Console.net 的 Droplet 並遇到 root SSH 連線問題,您可以使用恢復控制台重新獲取對 Droplet 的訪問權限。
為新用戶配置 SSH 訪問取決於您的伺服器的 root 帳戶是使用密碼還是 SSH 密鑰進行身份驗證。
如果 root 帳戶使用密碼驗證
如果您是使用密碼登入的 root 帳號,則 SSH 的密碼驗證已經 啟用。您可以透過開啟新的終端機會話並使用新的使用者名稱 SSH 登入您的新用戶帳號:
ssh sammy@your_server_ip輸入您的常規用戶密碼後,您將登入系統。請記住,如果您需要以管理員權限執行命令,請在命令前輸入 sudo,如下所示:
sudo command_to_run當每次使用 sudo 時(以及之後的定期使用),你將會收到提示要求輸入你一般使用者的密碼。
為了增強您伺服器的安全性,我們強烈建議設定 SSH 金鑰,而非使用密碼認證。請參考我們的 Ubuntu SSH 金鑰設定指南,了解如何配置基於金鑰的認證。
如果根帳戶使用 SSH 金鑰驗證
如果你使用 SSH 金鑰登入了你的 root 帳號,那麼 SSH 的密碼驗證將會被 禁用。要使用 SSH 金鑰以一般使用者身份登入,你必須將本地公鑰的副本新增到新使用者的 ~/.ssh/authorized_keys 檔案中。
由於您的公鑰已經存在於伺服器上的 root 帳戶的 ~/.ssh/authorized_keys 檔案中,您可以使用當前的會話將該檔案和目錄結構複製到您的新用戶帳戶中。
以正確的擁有權和權限複製文件最簡單的方法是使用 rsync 命令。該命令將複製 root 使用者的 .ssh 目錄,保留權限,並修改文件所有者,所有操作都可以在一個命令中完成。請確保將下方命令中標示的部分更改為你的常規使用者名稱:
注意: rsync 命令對於結尾有斜線與沒有斜線的來源和目標目錄的處理方式不同。在下面使用 rsync 時,確保來源目錄(~/.ssh)不要 包含結尾的斜線(檢查確認你沒有使用 ~/.ssh/)。
如果你不小心在命令末尾加上斜線,rsync 會將 root 帳戶的 ~/.ssh 目錄的 內容 複製到 sudo 使用者的家目錄,而不是複製整個 ~/.ssh 目錄結構。這些檔案將位於錯誤的位置,SSH 將無法找到並使用它們。
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy現在,在你的本地機器上打開一個新的終端會話,並使用你的新用戶名進行 SSH 登入:
ssh sammy@your_server_ip你應該可以使用新的使用者帳戶連接到你的伺服器,而不需要使用密碼。請記住,如果你需要以管理員權限執行指令,請在指令前加上 sudo,如下所示:
sudo command_to_run每次在每個工作階段首次使用 sudo 時(以及之後定期使用時),系統會提示您輸入常規使用者的密碼。
常見問題
1. Ubuntu 可以用作伺服器嗎?
絕對如此。 Ubuntu 是全球最受歡迎的伺服器作業系統之一,並且設計用於各種場景,從輕量級 VPS 實例到企業級叢集。
Ubuntu 伺服器的主要優勢:
| 功能 | 描述 |
|---|---|
| 開源且免費 | 免許費用 |
| 長期支援 | 長期支援版本可獲得 5 年的更新。 |
| 雲端就緒 | 為主要雲端平台優化的映像檔(Linux-Console.net、AWS、GCP)。 |
| 友好的 DevOps | 附帶 OpenSSH、apt 和 systemd。 |
| 廣泛的硬體支援 | 可在 x86、ARM、PPC 等平台上運行。 |
Ubuntu 處理得很好的伺服器範例任務:
- 網站主機(Apache、Nginx)
- 資料庫(PostgreSQL、MySQL、MongoDB)
- 應用伺服器(Node.js、Python、Java)
- 容器編排(Docker、Kubernetes)
- 檔案存儲與備份
範例:要檢查您的 Ubuntu 版本:
lsb_release -a
# OR
cat /etc/os-release如需了解更多有關 SSH 和套件管理的資訊,請參見:OpenSSH 金鑰指南。
2. Ubuntu 伺服器是免費的嗎?
是的。 Ubuntu 伺服器完全免費下載、安裝及使用,無論是個人、教育或商業用途都適用。沒有任何授權費或訂閱費。
如果你正在尋找一個簡單且可靠的入門方式,可以考慮在 Linux-Console.net 上部署 Ubuntu Droplet。Linux-Console.net 提供預先配置好的 Ubuntu 伺服器映像,因此你只需幾次點擊就能啟動安全、可用於生產的伺服器——這對初學者和專家來說都非常適合。
注意:只有在需要延長安全維護、合規性功能或企業支援時,才需要使用 Ubuntu Pro。對於大多數用戶和一般工作負載,免費版本的 Ubuntu Server 已經足夠使用。
3. 我應該為新伺服器選擇哪個 Ubuntu 版本?
建議:
使用長期支援(LTS)版本。LTS 版本已準備好用於生產環境,並且會獲得五年的更新。
熱門 LTS 版本:
| 釋放 | 發布日期 | 終止支援 | 筆記 |
|---|---|---|---|
| Ubuntu 24.04 LTS | 2024年4月 | 2029年4月 | 最新;建議用於新安裝 |
| Ubuntu 22.04 LTS | 2022年4月 | 2027年4月 | 廣泛使用;高度穩定 |
檢查您目前的版本:
lsb_release -cs # Shows the codename (e.g., 'jammy' for 22.04)本指南及其指令經過驗證,適用於 24.04 LTS 和 22.04 LTS。
4. 我應該禁用 SSH 的密碼驗證嗎?
是的,為了強化安全性。
一旦您設置了 SSH 金鑰認證 並確認可以登入,禁用 SSH 密碼認證可以降低您的伺服器遭受暴力破解攻擊的風險。
步驟:
打開 SSH 配置:
sudo nano /etc/ssh/sshd_config尋找並設置:
PasswordAuthentication no重新啟動 SSH:
sudo systemctl reload sshd
重要: 在進行此更改之前,務必保留其他方式存取伺服器,例如 Linux-Console.net 的 Droplet 控制台或備用存取方式。
5. 我需要更改預設的 SSH 埠嗎?
更改 SSH 埠號 22 是可選的,並不能取代正確的 SSH 金鑰驗證或防火牆配置。
優點與缺點:
| 更改埠號 22 | 效果 |
|---|---|
| 稍微減少掃描 | 自動化機器人可能會繞過非22埠 |
| 不是安全替代品 | 攻擊者仍然可以找到開放的端口 |
| 需要更新防火牆 | 需要更改 UFW 或 firewalld 規則 |
如果您更改埠號:
編輯
/etc/ssh/sshd_config:Port 2277 # Example port; use a port >1024 that's not in use更新 UFW 規則:
sudo ufw allow 2277/tcp使用以下方式連接:
ssh -p 2277 user@your_server_ip記錄您的新端口以避免鎖定。
將其作為額外步驟,而不是你的主要防護措施。
結論
恭喜!您已完成使用 Ubuntu 進行基本初始伺服器設置的過程。透過遵循這些步驟,您已大幅提升伺服器的安全性,並為未來配置奠定了基礎。您現在擁有一個具有 sudo 權限的非 root 使用者帳號,以便更安全地進行日常管理;已配置防火牆(UFW)以限制所有流量,僅允許您明確允許的流量;並且已啟用安全的 SSH 金鑰驗證——顯著降低未經授權訪問的風險。
有了這些最佳實踐,你的 Ubuntu 伺服器已經準備好進行網站託管和應用部署,以及任何進一步的自訂設置。本教程完成的設置是幾乎每個 Linux 伺服器專案的基礎要求,理解這些基本原則將幫助你自信地管理雲端或內部的基礎設施。
記得要追蹤你的新憑證,定期更新,並持續學習,以確保你的系統安全且易於維護。
下一步
到目前為止,你的伺服器已經有了穩固的基礎。你現在可以在伺服器上安裝任何所需的軟體。
如果你想更熟悉 Linux 指令,可以查看我們的 Linux 指令入門指南。
正在尋找有關 SSH 和防火牆加固的下一步措施嗎?請查看《SSH 基礎知識:操作 SSH 伺服器、客戶端與金鑰》、《如何使用 SSH 連接遠程伺服器》以及《理解 SSH 加密與連接過程》.
接下來試試這個: 使用 Ubuntu 24.04 LTS 在 Linux-Console.net 創建一個 Droplet,按照這些步驟操作,然後添加一個託管資料庫或通過 App Platform 部署。瀏覽 Linux-Console.net 的 Ubuntu 發行版頁面以查看最新映像和發行說明。
感謝您與 Linux-Console.net 社群一起學習。
