在建立 Oracle 雲端伺服器(Ubuntu 24.04)時,有許多基礎但重要的設定步驟需要完成。本文將完整記錄從系統初始化、SSH 金鑰產生、防火牆設定到工具安裝的整個流程,方便日後快速查閱與實作。
環境說明: 本文以 Ubuntu 24.04 LTS 為基礎,所有指令皆針對此版本測試。
🚀 一、系統初始化設定
首次登入伺服器後,建議先完成以下基礎設定,確保系統處於最新狀態並配置正確的時區。
1.1 設定系統時區
將伺服器時區設定為台北時間(Asia/Taipei):
sudo timedatectl set-timezone Asia/Taipei驗證時區設定:
timedatectl輸出應顯示:
Time zone: Asia/Taipei (CST, +0800)1.2 更新系統套件
更新套件清單並升級所有已安裝的套件:
sudo apt updatesudo apt upgrade -yapt update:更新套件清單,取得最新的套件資訊apt upgrade:升級所有可更新的套件-y參數:自動回答 yes,無需手動確認
重要提示: 首次更新可能需要較長時間,請耐心等候。更新完成後建議重新啟動伺服器以套用核心更新。
1.3 安裝基礎監控工具
安裝 btop 作為系統資源監控工具:
sudo apt install btop -ybtop 是一個現代化的系統監控工具,提供美觀的介面來查看:
- CPU、記憶體、磁碟使用率
- 網路流量
- 執行中的程序
執行 btop 即可啟動監控介面:
btop按 q 可退出程式。
1.4 其他建議安裝的工具
# 基礎工具包sudo apt install -y curl wget git vim
# 網路診斷工具sudo apt install -y net-tools dnsutils
# 系統資訊工具sudo apt install -y neofetch htop🔑 二、SSH 金鑰產生與設定
SSH 金鑰是連接遠端伺服器最安全的認證方式,透過公私鑰配對機制,可以免除每次輸入密碼的麻煩,同時提升安全性。
2.1 什麼是 SSH 金鑰
SSH 金鑰由兩個檔案組成:
- 私鑰(Private Key):保存在本機,絕不可外流
- 公鑰(Public Key):放置在遠端伺服器
~/.ssh/authorized_keys
當連線時,伺服器會用公鑰驗證本機的私鑰,確認身份無誤後即可登入。
2.2 在 Linux/macOS 上產生 SSH 金鑰
使用 ssh-keygen 指令即可快速生成金鑰對:
ssh-keygen執行後會有以下互動式提示:
- 設定金鑰儲存路徑:預設為
~/.ssh/id_rsa,可直接按 Enter 使用預設值 - 設定密碼保護:可選擇為私鑰設定密碼(建議設定以增加安全性),或直接按 Enter 跳過
生成完成後,會產生兩個檔案:
~/.ssh/id_rsa→ 私鑰~/.ssh/id_rsa.pub→ 公鑰
2.3 取得公鑰內容
使用以下指令查看公鑰內容:
cat ~/.ssh/id_rsa.pub將輸出的內容複製,並貼到遠端伺服器的 ~/.ssh/authorized_keys 檔案中即可。
2.4 連線到遠端伺服器
ssh username@server_ip若設定正確,即可直接登入而不需輸入密碼。
🔐 三、開啟密碼登入(非必要但有時需要)
在某些情況下,可能需要暫時開啟密碼登入功能(例如測試或緊急存取)。
3.1 編輯 SSH 設定檔
使用 vim 編輯器修改 SSH 設定:
sudo vim /etc/ssh/sshd_config找到以下這行並修改:
PasswordAuthentication yesvim 快速操作提示:
- 按
i進入編輯模式- 編輯完成後按
Esc退出編輯模式- 輸入
:wq儲存並離開- 輸入
:q!不儲存直接離開
3.2 重啟 SSH 服務
在 Ubuntu 24.04 中,SSH 服務名稱為 ssh:
sudo systemctl restart ssh3.3 檢查 SSH 服務狀態
確認服務正常運作:
sudo systemctl status ssh若遇到錯誤訊息表示找不到 ssh 服務,可能需要安裝 OpenSSH Server:
sudo apt install openssh-server -y🛡️ 四、Ubuntu 24.04 防火牆設定
Ubuntu 24.04 預設使用 UFW (Uncomplicated Firewall) 作為防火牆管理工具,它是 iptables 的前端介面,提供簡單易用的指令來管理防火牆規則。
重要提醒: Oracle Cloud 的 Ubuntu 實例會預設配置 iptables 規則來保護實例安全。這些預設規則主要限制入站流量,只開放必要的埠號(如 SSH)。在使用 UFW 之前,必須先清理這些 iptables 規則,否則兩者會產生衝突,導致防火牆規則混亂。
4.1 清理預設的 iptables 規則
Oracle Cloud Ubuntu 實例會預設配置 iptables 規則來提供基本的安全防護。這些規則通常會限制入站連線,只允許特定埠號(如 22 for SSH)的流量通過。為了避免與 UFW 衝突,必須先清理這些規則。
檢查現有的 iptables 規則
先查看當前的 iptables 規則:
sudo iptables -L -n -v您通常會看到類似以下的輸出,顯示有預設的 INPUT、FORWARD、OUTPUT 鏈,以及一些自訂規則。
清空所有 iptables 規則
# 清空 filter 表的所有規則sudo iptables -F
# 刪除所有自訂鏈sudo iptables -X
# 清空計數器sudo iptables -Z
# 設定預設政策為 ACCEPT(避免鎖住自己)sudo iptables -P INPUT ACCEPTsudo iptables -P FORWARD ACCEPTsudo iptables -P OUTPUT ACCEPT移除 iptables-persistent(如果有安裝)
# 檢查是否安裝dpkg -l | grep iptables-persistent
# 如果有安裝則移除sudo apt remove iptables-persistent -ysudo apt autoremove -y確認 iptables 規則已清空
檢查規則是否已成功清空:
sudo iptables -L -n -v應該看到所有鏈(INPUT、FORWARD、OUTPUT)都是空的,且政策為 ACCEPT。
處理 iptables-persistent 服務(如果存在)
# 檢查是否有 iptables-persistent 相關服務sudo systemctl list-units --all | grep netfilter-persistent
# 如果有該服務,停用並禁用它sudo systemctl stop netfilter-persistentsudo systemctl disable netfilter-persistentOracle Cloud 特別說明: Oracle Cloud Ubuntu 實例通常會預設配置 iptables 規則來保護實例。這些規則主要透過配置文件在系統啟動時載入,而不是透過 systemd 服務。因此清空規則後,重新啟動系統時這些規則可能會再次出現。使用 UFW 後,這些預設規則會被 UFW 管理取代。
注意: 清空 iptables 規則後,伺服器暫時處於無防火牆保護狀態,建議立即設定 UFW。
4.2 Oracle 雲端多層防護機制
在 Oracle Cloud 環境中,安全防護分為多個層次:
| 防護層級 | 工具 | 說明 |
|---|---|---|
| 雲端層級 | Oracle Cloud Infrastructure Network Firewall | OCI 原生網路防火牆服務 |
| 網路層級 | Security Lists / Network Security Groups | 虛擬網路層級的安全規則 |
| 系統層級 | UFW (Ubuntu) | 作業系統層級的封包過濾 |
| 應用層級 | iptables | 底層網路封包控制工具 |
重要: 即使在系統層級開放埠號,仍需在 OCI Console 的 Security Lists 中設定對應規則,流量才能通過。
4.3 安裝 UFW
如果系統尚未安裝 UFW,請先安裝:
sudo apt install ufw -y4.4 UFW 基本操作
檢查 UFW 狀態
sudo ufw status啟用 UFW
sudo ufw enable警告: 啟用前請確保已開放 SSH (22 埠),否則可能無法再次連線。
開放常用服務
# 開放 SSH (必須先設定,避免被鎖在外面)sudo ufw allow ssh# 或指定埠號sudo ufw allow 22/tcp
# 開放 HTTP 和 HTTPSsudo ufw allow httpsudo ufw allow https# 或指定埠號sudo ufw allow 80/tcpsudo ufw allow 443/tcp開放特定埠號
# 開放單一埠號sudo ufw allow 8080/tcp
# 開放埠號範圍sudo ufw allow 3000:3010/tcp
# 允許特定 IP 存取sudo ufw allow from 203.0.113.0/24查看規則清單
# 簡單列表sudo ufw status
# 詳細列表(含規則編號)sudo ufw status numbered刪除規則
# 方法一:直接刪除規則sudo ufw delete allow 8080/tcp
# 方法二:使用編號刪除sudo ufw status numberedsudo ufw delete 3停用 UFW
sudo ufw disable📋 五、快速參考表
以下整理所有操作指令與設定要點,方便快速查閱:
| 主題 | 操作/說明 | 指令或設定範例 | 備註 |
|---|---|---|---|
| 設定時區 | 設定系統時區為台北時間 | sudo timedatectl set-timezone Asia/Taipei | 驗證:timedatectl |
| 系統更新 | 更新系統套件清單並升級 | sudo apt update && sudo apt upgrade -y | 首次更新可能需要較長時間 |
| 安裝 btop | 安裝系統監控工具 | sudo apt install btop -y | 執行 btop 啟動,按 q 退出 |
| SSH 金鑰產生 | 產生 SSH 金鑰對 | ssh-keygen | 將公鑰放在伺服器 ~/.ssh/authorized_keys |
| 取得公鑰 | 顯示公鑰內容以便複製 | cat ~/.ssh/id_rsa.pub | 需要完整複製貼到伺服器 |
| SSH 連線 | 使用 SSH 連線到遠端伺服器 | ssh username@server_ip | 確保私鑰權限為 600 |
| 開啟密碼登入 | 編輯 SSH 設定檔並重啟服務 | sudo vim /etc/ssh/sshd_configPasswordAuthentication yessudo systemctl restart ssh | Ubuntu 24.04 服務名稱為 ssh |
| 清空 iptables | 清空所有 iptables 規則 | sudo iptables -Fsudo iptables -Xsudo iptables -P INPUT ACCEPT | 啟用 UFW 前建議先清空 |
| 移除 iptables-persistent | 移除 iptables 持久化服務 | sudo apt remove iptables-persistent -y | 避免與 UFW 衝突 |
| 安裝 UFW | 安裝 UFW 防火牆 | sudo apt install ufw -y | Ubuntu 預設防火牆管理工具 |
| 啟用 UFW | 啟動 UFW 防火牆 | sudo ufw enable | 啟用前先開放 SSH |
| UFW 開放埠號 | 透過 UFW 開放服務 | sudo ufw allow sshsudo ufw allow 80/tcp | 必須先開放 SSH 避免被鎖在外面 |
| UFW 查看規則 | 列出目前的 UFW 規則 | sudo ufw status numbered | numbered 參數顯示規則編號 |
| UFW 刪除規則 | 刪除 UFW 規則 | sudo ufw delete 3 | 使用編號刪除規則 |
✅ 六、建立伺服器的完整流程
整合以上所有步驟,建議的 Ubuntu 24.04 伺服器建立流程如下:
6.1 本機操作(首次設定)
-
在本機產生 SSH 金鑰對
Terminal window ssh-keygen -
取得公鑰內容
Terminal window cat ~/.ssh/id_rsa.pub -
複製公鑰內容(整行,包含開頭的
ssh-rsa和結尾的使用者名稱)
6.2 伺服器初始設定
步驟 1:首次登入並設定 SSH 金鑰
使用 Oracle 提供的方式首次登入(通常是使用 OCI Console 的 SSH 功能或臨時密碼)
將公鑰加入授權檔案:
mkdir -p ~/.sshecho "你的公鑰內容" >> ~/.ssh/authorized_keyschmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys步驟 2:系統初始化
設定時區:
sudo timedatectl set-timezone Asia/Taipei更新系統:
sudo apt updatesudo apt upgrade -y安裝基礎工具:
sudo apt install -y btop vim curl wget git步驟 3:清理預設的 iptables 規則
檢查現有規則:
sudo iptables -L -n -v清空 iptables:
sudo iptables -Fsudo iptables -Xsudo iptables -Zsudo iptables -P INPUT ACCEPTsudo iptables -P FORWARD ACCEPTsudo iptables -P OUTPUT ACCEPT移除 iptables-persistent(如果有安裝):
sudo apt remove iptables-persistent -ysudo apt autoremove -y步驟 4:安裝並設定 UFW
安裝 UFW:
sudo apt install ufw -y設定 UFW 規則(重要:必須先開放 SSH):
# 先開放 SSH(避免被鎖在外面)sudo ufw allow ssh
# 開放其他需要的服務sudo ufw allow httpsudo ufw allow https
# 或指定特定埠號sudo ufw allow 80/tcpsudo ufw allow 443/tcp啟用 UFW:
sudo ufw enable警告: 確保在啟用 UFW 之前已經開放 SSH (22 埠),否則會立即失去連線!
步驟 5:設定 OCI Security Lists
重要: 即使在系統層級開放了埠號,仍需在 Oracle Cloud Console 設定 Security Lists:
- 登入 OCI Console
- 進入 Networking → Virtual Cloud Networks
- 選擇對應的 VCN → Security Lists
- 新增 Ingress Rules:
- Source CIDR:
0.0.0.0/0(或特定 IP 範圍)- IP Protocol: TCP
- Destination Port Range: 80, 443 等
6.3 驗證設定
-
登出後使用 SSH 金鑰重新連線
Terminal window ssh username@server_ip -
檢查時區設定
Terminal window timedatectl -
檢查 UFW 狀態
Terminal window sudo ufw status verbose -
檢查系統服務
Terminal window systemctl status sshsystemctl status ufw -
測試防火牆規則(從外部測試)
Terminal window # 在本機執行curl -I http://your-server-ip
🎯 七、常見問題排除
Q1: SSH 連線被拒絕
可能原因:
- SSH 服務未啟動
- UFW 或 OCI Security Lists 阻擋 22 埠
- 公鑰權限設定錯誤
解決方式:
# 確認 SSH 服務運作(Ubuntu 24.04 服務名稱為 ssh)sudo systemctl status sshsudo systemctl start ssh
# 檢查 UFW 是否開放 SSHsudo ufw status verbose
# 如果未開放,則開放 SSHsudo ufw allow ssh
# 修正公鑰權限chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keysQ2: 啟用 UFW 後立即失去連線
原因: 在啟用 UFW 之前沒有先開放 SSH (22 埠)
解決方式: 如果還能透過 OCI Console 連線,執行:
# 停用 UFWsudo ufw disable
# 開放 SSHsudo ufw allow 22/tcp
# 重新啟用sudo ufw enable預防措施: 永遠記得在啟用防火牆前先開放 SSH!
Q3: UFW 規則已設定但服務仍無法存取
可能原因: OCI Security Lists 沒有開放對應埠號
解決方式:
-
檢查系統層級防火牆
Terminal window sudo ufw status numbered -
登入 OCI Console 檢查 Security Lists
- Networking → Virtual Cloud Networks
- 選擇對應的 VCN
- Security Lists → Ingress Rules
- 確認有對應埠號的規則
-
測試埠號是否開放
Terminal window # 在伺服器上監聽測試nc -l 8080# 在本機測試連線nc -zv your-server-ip 8080
Q4: iptables 規則與 UFW 衝突
原因: 舊的 iptables 規則仍然存在
解決方式:
# 查看現有 iptables 規則sudo iptables -L -n -v
# 完全清空 iptablessudo iptables -Fsudo iptables -Xsudo iptables -P INPUT ACCEPTsudo iptables -P FORWARD ACCEPTsudo iptables -P OUTPUT ACCEPT
# 重啟 UFWsudo ufw disablesudo ufw enableQ5: apt update 很慢或失敗
可能原因: 預設的軟體源伺服器速度慢或網路問題
解決方式:
# 備份原始設定sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
# 更換為台灣的 mirror(選用)sudo sed -i 's|http://archive.ubuntu.com|http://tw.archive.ubuntu.com|g' /etc/apt/sources.list
# 更新sudo apt updateQ6: 時區設定後系統時間仍不正確
原因: 可能需要同步網路時間
解決方式:
# 檢查 NTP 同步狀態timedatectl status
# 啟用 NTP 同步sudo timedatectl set-ntp true
# 手動同步時間(如果需要)sudo apt install ntpdate -ysudo ntpdate time.google.com📚 八、進階資源
官方文件:
- Oracle Cloud Infrastructure Documentation
- Ubuntu Server Guide
- OpenSSH Official Documentation
- UFW - Uncomplicated Firewall
實用工具:
安全性相關:
🎬 結語
Oracle Cloud Ubuntu 24.04 伺服器的建立流程看似步驟繁多,但每一步都是建立安全穩定系統的基礎。從時區設定、系統更新、SSH 金鑰配置到防火牆管理,這些設定確保了伺服器能夠正確運作並保持安全防護。
重點回顧:
- ✅ 優先設定時區與更新系統
- ✅ 使用 SSH 金鑰而非密碼認證
- ✅ 清理舊的 iptables 規則後再啟用 UFW
- ✅ 啟用防火牆前務必先開放 SSH
- ✅ 記得同時設定 OCI Security Lists
建議將這些指令整理成自動化腳本,可參考以下架構:
#!/bin/bash# Ubuntu 24.04 伺服器初始化腳本(for Oracle Cloud)
echo "開始初始化 Oracle Cloud Ubuntu 24.04 伺服器..."
# 設定時區echo "設定時區為 Asia/Taipei..."sudo timedatectl set-timezone Asia/Taipei
# 更新系統echo "更新系統套件..."sudo apt update && sudo apt upgrade -y
# 安裝工具echo "安裝基礎工具..."sudo apt install -y btop vim curl wget git
# 清理 Oracle Cloud 預設的 iptables 規則echo "清理預設的 iptables 規則..."sudo iptables -Fsudo iptables -Xsudo iptables -Zsudo iptables -P INPUT ACCEPTsudo iptables -P FORWARD ACCEPTsudo iptables -P OUTPUT ACCEPT
# 移除 iptables-persistent(如果有安裝)sudo apt remove iptables-persistent -y 2>/dev/null
# 安裝並設定 UFWecho "安裝並設定 UFW 防火牆..."sudo apt install ufw -ysudo ufw allow sshsudo ufw allow httpsudo ufw allow httpssudo ufw --force enable
echo ""echo "✅ 初始化完成!"echo ""echo "⚠️ 重要提醒:"echo "1. 請確認 SSH 連線正常"echo "2. 請記得在 OCI Console 設定 Security Lists"echo "3. UFW 狀態:$(sudo ufw status | head -1)"定期檢查安全性設定,確保伺服器始終處於最佳防護狀態。祝您使用愉快!
回報錯字、失效連結,或告訴我你想看的延伸主題。