Skip to content

JW-Albert/Linux-Setup

Repository files navigation

Linux-Setup

這是一個用於快速設定和配置 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                   # 專案說明文件

🚀 功能特色

1. Debian/Ubuntu 基礎設定 (Debian.sh)

  • 系統更新、安裝 sudo/wget/curl
  • 建立新使用者並加入 sudo 群組
  • SSH 安全設定:自訂連接埠、允許/禁止 root 登入,並備份原設定
  • UFW 防火牆:預設拒絕入站、放行出站,自訂 SSH 連接埠,可選擇開放 80/443,ICMP 丟棄
  • 時間同步:設定 Asia/Taipei、指定台灣 NTP、寫入硬體時鐘
  • 不再安裝 Tell_Me(已移除相關腳本)

2. Docker 安裝 (docker.sh)

  • 更新系統並安裝 wget
  • 使用官方安裝腳本部署 Docker
  • 安裝 Docker Compose 1.29.2 版並賦予執行權限
  • 啟用 Docker 開機自動啟動

3. 單獨 SSH 安全配置 (sshd_secure_setup.sh)

  • 備份 sshd_config
  • 自訂 SSH 連接埠與 root 登入策略
  • 重新啟動 SSH 服務

4. UFW 防火牆設定 (ufw_secure_setup.sh)

  • 備份 sshd_config 與 UFW before.rules
  • 自訂 SSH 連接埠,選擇性開放 80/443
  • 預設拒絕入站、允許出站,啟用 UFW
  • 修改 ICMP 規則為 DROP

5. 時間同步設定

  • Debian 12/13timedatectl-Debian12.sh
  • Ubuntu 24.02+timedatectl-Ubuntu24.02.sh
  • 功能:設定台灣時區、安裝 systemd-timesyncd/util-linux-extra、指定台灣 NTP,寫入硬體時鐘

6. sudo 使用者設定 (sudoer.sh)

  • 建立新帳號並加入 sudo 群組
  • 設定新使用者密碼

7. Cloudflare Tunnel (cloudflared.sh)

  • 新增 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

⚠️ 重要注意事項

安全提醒

  1. SSH 連接埠變更Debian.shsshd_secure_setup.shufw_secure_setup.sh 會修改 SSH 連接埠,請記下新埠號。
  2. 防火牆啟用Debian.shufw_secure_setup.sh 會啟用 UFW,執行前請確認需要放行的連接埠。
  3. ICMP 被丟棄:防火牆腳本會將 ICMP 設為 DROP,機器將無法被 ping 到。
  4. 備份檔案:sshd_config 與 UFW before.rules 會自動備份於同目錄並附加時間戳。

執行順序建議

  1. 初次安裝:Debian.sh 一次完成基礎安全與時間設定。
  2. 需要分步:依需求分別執行 SSH、防火牆、時間同步或 Docker 腳本。

🔍 故障排除

常見問題

  1. 權限錯誤:確保以 root 權限執行腳本
  2. 網路連接問題:檢查網路設定和防火牆規則
  3. 服務啟動失敗:檢查 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 授權條款。


⚠️ 重要提醒:這些腳本會修改系統重要設定,請在測試環境中先進行測試,並確保了解每個腳本的功能後再在生產環境中使用。

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks