這是一個用於快速設定和配置 Debian/Ubuntu 系統的腳本集合,涵蓋用戶管理、安全配置、服務安裝與時間同步等常見任務。
Linux-Setup/
├── Debian.sh # Debian/Ubuntu 一鍵基礎設定(使用者、SSH、UFW、時間同步)
├── docker.sh # Docker 與 Docker Compose 安裝
├── sshd_secure_setup.sh # 單獨的 SSH 安全配置
├── ufw_secure_setup.sh # UFW 防火牆設定與 ICMP 丟棄
├── timedatectl-Debian12.sh # Debian 12/13 時間同步設定
├── timedatectl-Ubuntu24.02.sh # Ubuntu 24.02+ 時間同步設定
├── sudoer.sh # 建立具 sudo 權限的使用者
├── cloudflared.sh # 安裝 Cloudflare Tunnel (cloudflared)
└── README.md # 專案說明文件
- 系統更新、安裝 sudo/wget/curl
- 建立新使用者並加入 sudo 群組
- SSH 安全設定:自訂連接埠、允許/禁止 root 登入,並備份原設定
- UFW 防火牆:預設拒絕入站、放行出站,自訂 SSH 連接埠,可選擇開放 80/443,ICMP 丟棄
- 時間同步:設定 Asia/Taipei、指定台灣 NTP、寫入硬體時鐘
- 不再安裝 Tell_Me(已移除相關腳本)
- 更新系統並安裝 wget
- 使用官方安裝腳本部署 Docker
- 安裝 Docker Compose 1.29.2 版並賦予執行權限
- 啟用 Docker 開機自動啟動
- 備份 sshd_config
- 自訂 SSH 連接埠與 root 登入策略
- 重新啟動 SSH 服務
- 備份 sshd_config 與 UFW before.rules
- 自訂 SSH 連接埠,選擇性開放 80/443
- 預設拒絕入站、允許出站,啟用 UFW
- 修改 ICMP 規則為 DROP
- Debian 12/13:
timedatectl-Debian12.sh - Ubuntu 24.02+:
timedatectl-Ubuntu24.02.sh - 功能:設定台灣時區、安裝 systemd-timesyncd/util-linux-extra、指定台灣 NTP,寫入硬體時鐘
- 建立新帳號並加入 sudo 群組
- 設定新使用者密碼
- 新增 Cloudflare 軟體源並安裝 cloudflared
- Debian 12/13 或 Ubuntu 24.02+ 系統
- Root 權限或 sudo 權限
- 可連網
- 大多數腳本需 root 執行;若以 sudo 執行請確保有密碼
chmod +x Debian.sh
sudo ./Debian.sh執行過程會互動詢問:
- SSH 連接埠(預設 55555)
- 是否允許 root 登入(預設 no)
- 是否開放 80/443(預設否)
- 新使用者帳號(預設 albert)與密碼
# Docker 安裝
chmod +x docker.sh
sudo ./docker.sh
# 只配置 SSH
chmod +x sshd_secure_setup.sh
sudo ./sshd_secure_setup.sh
# 只配置防火牆 (含 ICMP DROP)
chmod +x ufw_secure_setup.sh
sudo ./ufw_secure_setup.sh
# Debian 12/13 時間同步
chmod +x timedatectl-Debian12.sh
sudo ./timedatectl-Debian12.sh
# Ubuntu 24.02+ 時間同步
chmod +x timedatectl-Ubuntu24.02.sh
sudo ./timedatectl-Ubuntu24.02.sh
# 建立 sudo 使用者
chmod +x sudoer.sh
sudo ./sudoer.sh
# 安裝 cloudflared
chmod +x cloudflared.sh
sudo ./cloudflared.sh- SSH 連接埠變更:
Debian.sh、sshd_secure_setup.sh、ufw_secure_setup.sh會修改 SSH 連接埠,請記下新埠號。 - 防火牆啟用:
Debian.sh與ufw_secure_setup.sh會啟用 UFW,執行前請確認需要放行的連接埠。 - ICMP 被丟棄:防火牆腳本會將 ICMP 設為 DROP,機器將無法被 ping 到。
- 備份檔案:sshd_config 與 UFW before.rules 會自動備份於同目錄並附加時間戳。
- 初次安裝:
Debian.sh一次完成基礎安全與時間設定。 - 需要分步:依需求分別執行 SSH、防火牆、時間同步或 Docker 腳本。
- 權限錯誤:確保以 root 權限執行腳本
- 網路連接問題:檢查網路設定和防火牆規則
- 服務啟動失敗:檢查 systemd 服務狀態
# 檢查 SSH 服務
sudo systemctl status ssh
# 檢查 Docker 服務
sudo systemctl status docker
# 檢查防火牆狀態
sudo ufw status
# 檢查時間同步服務
sudo systemctl status systemd-timesyncd
sudo timedatectl status- 版本:3.1.1
- 最後更新:2025年12月11日
- 支援系統:Debian 12/13、Ubuntu 24.02+
- 主要更新:
- 徹底移除 Tell_Me 相關安裝與說明
- 增補 cloudflared 安裝腳本說明
- 梳理互動式輸入與安全注意事項
歡迎提交 Issue 和 Pull Request 來改善這個專案。
本專案採用 MIT 授權條款。