Rocky Linux 9.5 初始設定教程:專為 Docker 場景設計
這份教程基於 Rocky Linux 9.5 的穩定性和與 RHEL 的高度相容性,專門針對使用 Docker 的雲基礎設施專案(如 Traefik、Mail 服務等)進行優化。所有專案檔案統一放置在 /opt/mycloud-infra/(可替換為 /opt/custom)。教程先後有序、詳盡完整,適合保存作為參考手冊。
前提假設
- 使用 Vultr 作為雲提供商(其他平台步驟類似)。
- 伺服器規格建議:至少 1 vCPU、2 GB RAM、20 GB SSD。
- 所有命令以 root 或 sudo 執行,除非指定。
- 安全原則:最小權限、最小暴露端口、定期備份。
教程階段
- 部署 Rocky Linux 9.5
- 系統初始化
- 用戶創建與權限設定
- 安裝與配置 Docker
- SSH 遠端存取安全配置
- 防火牆與端口管理
- 額外安全強化
- 專案目錄設定與權限最佳化
- 驗證與維護
1. 部署 Rocky Linux 9.5
- 登入 Vultr 帳戶 → "Deploy New Instance"
- 選擇位置(如 Singapore 或 Tokyo)
- 選計劃:Cloud Compute,起始規格 1 vCPU、2 GB RAM
- OS:選擇 "Rocky Linux 9 x64"
- 上傳 SSH 公鑰,設定主機名,部署
- 記錄 IP 並測試連線:
ssh root@your_server_ip
注意: Vultr 預設鏡像已足夠,若需特定版本可上傳 ISO。
2. 系統初始化
- 更新系統:
sudo dnf update -y sudo dnf upgrade -y sudo reboot - 安裝基本工具:
sudo dnf install -y epel-release sudo dnf install -y vim net-tools wget curl firewalld fail2ban - 設定時區:
sudo timedatectl set-timezone Asia/Taipei - 啟用 NTP:
sudo systemctl enable --now chronyd
3. 用戶創建與權限設定
- 創建用戶(以 jonathan 為例):
sudo adduser jonathan sudo passwd jonathan - 加入 wheel 與 docker 組(docker 組待安裝後):
sudo usermod -aG wheel jonathan sudo usermod -aG docker jonathan
4. 安裝與配置 Docker
- 添加倉庫並安裝:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - 啟動並加入用戶:
sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker jonathan - 驗證:
su - jonathan docker --version docker compose version - 創建網路:
docker network create traefik
5. SSH 遠端存取安全配置
- 編輯
/etc/ssh/sshd_config:Port 2222PermitRootLogin noPasswordAuthentication noAllowUsers jonathan
sudo systemctl restart sshd - 產生並複製金鑰:
ssh-keygen -t ed25519 -C "your_email@example.com" ssh-copy-id jonathan@your_server_ip -p 2222 - 測試:
ssh jonathan@your_server_ip -p 2222
6. 防火牆與端口管理
- 啟用:
sudo systemctl start firewalld sudo systemctl enable firewalld - 添加常用端口:
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # Mail 端口示例 sudo firewall-cmd --permanent --add-port=25/tcp # SMTP sudo firewall-cmd --permanent --add-port=465/tcp # SMTPS sudo firewall-cmd --permanent --add-port=993/tcp # IMAPS sudo firewall-cmd --reload sudo firewall-cmd --list-all
7. 額外安全強化
- SELinux:檢查
sestatus,必要時設 permissive - 自動更新:安裝
dnf-automatic並啟用 timer - Fail2Ban:安裝並配置 sshd jail
- 其他:強密碼政策、禁用 postfix 等
8. 專案目錄設定與權限最佳化
- 創建目錄:
sudo mkdir -p /opt/mycloud-infra/traefik/letsencrypt - 一鍵權限:
sudo chown -R jonathan:jonathan /opt/mycloud-infra sudo chmod 750 /opt/mycloud-infra sudo chmod 600 /opt/mycloud-infra/traefik/.env sudo chmod 700 /opt/mycloud-infra/traefik/letsencrypt sudo chmod 600 /opt/mycloud-infra/traefik/letsencrypt/acme.json
黃金守則: 所有操作用 jonathan 帳號執行,避免 root 直接操作專案。
9. 驗證與維護
- 驗證 Docker:
docker run hello-world - 檢查 SSH、防火牆、端口
- 定期:每月更新、備份
/opt/mycloud-infra/