使用 Ubuntu 20.04、18.04 和 16.04 進行初始伺服器設定
簡介
設定伺服器是建立可靠且安全的網站、應用程式託管或資料管理環境的重要步驟。本文將探討設定 Ubuntu 伺服器的過程,特別是 20.04、18.04 和 16.04 版本。我們將介紹必要的步驟,以及實際示例及其相應的輸出,以幫助您順利完成初始伺服器設定過程。
先決條件
在深入伺服器設定之前,請確保已滿足以下先決條件:
一個 Ubuntu 20.04、18.04 或 16.04 伺服器例項。
具有管理員許可權(或 root 訪問許可權)的使用者帳戶。
一個 SSH 客戶端,用於遠端連線到伺服器(例如,OpenSSH)。
更新和升級系統
首先,務必更新和升級系統,以確保您擁有最新的軟體包和安全補丁。執行以下命令:
$ sudo apt update
此命令更新軟體包列表,以便進行升級和新安裝。
$ sudo apt upgrade
此命令將所有已安裝的軟體包升級到最新版本。
建立新使用者
雖然建議避免在日常任務中使用 root 帳戶,但建立具有 sudo 許可權的新使用者被認為是一種最佳實踐。請按照以下示例操作:
$ sudo adduser example_user
將“example_user”替換為您所需的使用者名稱。系統將提示您設定密碼併為新使用者提供其他資訊。
授予管理員許可權
要授予新建立的使用者管理員許可權,您需要將其新增到 sudo 組。執行以下命令:
$ sudo usermod -aG sudo example_user
此命令將使用者新增到 sudo 組,允許他們執行具有管理員許可權的命令。
配置 SSH 訪問
安全外殼 (SSH) 允許安全地遠端訪問您的伺服器。您可以配置 SSH 使用基於金鑰的身份驗證而不是密碼,以增強安全性。執行以下步驟:
在您的本地機器上生成 SSH 金鑰對(如果您沒有的話):
$ ssh-keygen -t rsa -b 4096
將公鑰複製到伺服器:
$ ssh-copy-id example_user@your_server_ip
停用密碼身份驗證(可選但推薦):
編輯 SSH 配置檔案:
$ sudo nano /etc/ssh/sshd_config
更改以下行:
PasswordAuthentication no
儲存檔案並重新啟動 SSH 服務:
$ sudo systemctl restart sshd
防火牆配置
啟用防火牆有助於保護您的伺服器免受未經授權的訪問。Ubuntu 提供 UFW(Uncomplicated Firewall)作為一種簡單的防火牆規則管理方式。請按照以下示例操作:
允許 SSH 連線:
$ sudo ufw allow OpenSSH
啟用防火牆:
$ sudo ufw enable
驗證防火牆狀態:
$ sudo ufw status
設定基本防火牆規則
有時,您可能需要允許或拒絕對特定埠的訪問。以下示例演示瞭如何允許 HTTP 流量:
$ sudo ufw allow 80/tcp
此命令允許埠 80 上的傳入 TCP 流量,該埠用於 HTTP。
啟用自動安全更新
保持伺服器最新對於安全性至關重要。Ubuntu 提供“unattended-upgrades”軟體包來自動執行安全更新。執行以下步驟:
安裝軟體包:
$ sudo apt install unattended-upgrades
啟用自動更新:
$ sudo dpkg-reconfigure --priority=low unattended-upgrades
按照提示配置更新首選項。
使用基於金鑰的身份驗證保護 SSH 訪問
為了進一步增強 SSH 訪問的安全性,您可以停用密碼身份驗證,並完全依賴基於金鑰的身份驗證。請按照以下步驟操作:
編輯 SSH 配置檔案:
$ sudo nano /etc/ssh/sshd_config
找到指定 PasswordAuthentication 的行,並將它的值更改為 no:
PasswordAuthentication no
取消註釋指定 PubkeyAuthentication 的行以啟用基於金鑰的身份驗證:
PubkeyAuthentication yes
儲存檔案並重新啟動 SSH 服務:
$ sudo systemctl restart sshd
現在,您只能使用與之前新增的公鑰關聯的私鑰訪問伺服器。
配置時區和 NTP
正確設定時區並確保準確的時間同步對於各種伺服器功能和應用程式都很重要。要配置時區並啟用 NTP(網路時間協議),請執行以下步驟:
檢查當前時區:
$ timedatectl show
使用帶 set-timezone 選項的 timedatectl 命令設定所需的時區。例如,要將時區設定為“America/New_York”:
$ sudo timedatectl set-timezone America/New_York
安裝 NTP 以進行時間同步:
$ sudo apt install ntp
啟動並啟用 NTP 服務:
$ sudo systemctl start ntp $ sudo systemctl enable ntp
安裝和配置 Web 伺服器(Apache)
如果您打算在 Ubuntu 伺服器上託管網站或 Web 應用程式,則安裝 Web 伺服器至關重要。在此示例中,我們將安裝和配置 Apache,它是最流行的 Web 伺服器之一。執行以下步驟:
安裝 Apache:
$ sudo apt install apache2
調整防火牆以允許傳入的 HTTP 和 HTTPS 流量:
$ sudo ufw allow 'Apache'
驗證 Apache 服務的狀態:
$ sudo systemctl status apache2
開啟 Web 瀏覽器並輸入伺服器的 IP 地址。您應該會看到預設的 Apache 頁面,這確認安裝成功。
安裝和配置資料庫伺服器(MySQL)
如果您的伺服器需要資料庫管理系統,MySQL 是一種強大且廣泛使用的選項。請按照以下步驟安裝和配置 MySQL:
安裝 MySQL 伺服器:
$ sudo apt install mysql-server
保護 MySQL 安裝:
$ sudo mysql_secure_installation
按照提示設定 root 密碼並提高 MySQL 安裝的安全性。
驗證 MySQL 服務的狀態:
$ sudo systemctl status mysql
定期更新系統
為了確保伺服器的持續安全性和穩定性,務必使用最新的軟體更新和安全補丁來保持系統的最新狀態。執行以下命令定期更新系統:
$ sudo apt update && sudo apt upgrade -y
此命令將更新軟體包列表並升級所有已安裝的軟體包,應用所有可用的更新。
結論
透過遵循以上綜合指南,您已瞭解如何在 Ubuntu 20.04、18.04 和 16.04 上執行初始伺服器設定。我們涵蓋了各個方面,包括使用者建立、SSH 配置、防火牆設定、保護 SSH 訪問、配置時區和 NTP、安裝和配置 Web 伺服器(Apache)、安裝和配置資料庫伺服器(MySQL)以及定期更新系統的重要性。有了這些知識,您現在可以設定