Home Blog Tags Download Contact
WServer Logo

🚀VPS 基礎安全 8 部曲

✅ 目錄

新增管理帳號與設定免密 sudo 👤
禁止 root 直接登入 🚫
啟用 SSH 密鑰登入 🔑
UFW 防火牆初步配置 🔥
啟用 Fail2Ban 防爆破 🧱
設定 2FA 二階段驗證 🔐
設定自動備份到異地伺服器 ⭐ -->
適用 (Debian/Ubuntu)

🔐 「讓未來的你感謝今天的你」
🔄 整體流程概覽
📊 **安全設定流程圖:** 1️⃣ 修改 SSH Port:降低被暴力破解風險 預設 SSH 連接埠為 `22`,極易被掃描工具攻擊。我們將其改為自訂安全埠(建議選擇 `1025~65535` 之間的任意值)。 🔧 **操作步驟:**
sudo nano /etc/ssh/sshd_config
Port 22 🛠️ 修改為自訂埠(例如:`Port 8888`)。如果原行前有 `#`,代表被註解了,可刪除 `#` 或在檔案尾端新增一行: Port 8888 🚨 **安全提醒:** 本文以 `8888` 為例,建議選用其他隨機端口,降低被掃描命中的機率。 儲存後重啟 SSH:
sudo service sshd restart
測試連線:
ssh root@Your Server IP -p 8888
2️⃣ 建立 sudo 管理帳號(yourvps)並設定免密碼 如果Server 沒有sudo,需要進行安裝:
apt update && apt install sudo
新增管理帳號:
adduser yourvps
usermod -aG sudo yourvps
``` 編輯 sudoers 檔案:
sudo visudo
在 `User Privilege Specification` 區段加上:
yourvps ALL=(ALL) NOPASSWD: ALL
3️⃣ 禁止 root 登入:防止最關鍵帳戶被暴力破解 再次編輯 SSH 設定檔:
sudo nano /etc/ssh/sshd_config
PermitRootLogin
設定為:
PermitRootLogin no
🚀 重啟 SSH: sudo service sshd restart 4️⃣ 啟用 SSH 密鑰登入(大招🔒):擺脫密碼風險 🗝️ 密鑰登入的原理是使用「一對」密鑰(公鑰與私鑰)進行配對驗證。只要你保護好私鑰,黑客幾乎無法入侵。 📢 建議使用 Ed25519 密鑰(若設備支援),本文以 RSA 為範例。 💻 在本地機產生密鑰對:
ssh-keygen -t rsa -b 4096 -C "yourvps"
產生後會出現類似: ~/.ssh/id_rsa # 私鑰 ~/.ssh/id_rsa.pub # 公鑰 🛰️ 把公鑰上傳至伺服器:
ssh [email protected] -p 8888
mkdir ~/.ssh
然後從本地執行: scp -P 8888 ~/.ssh/id_rsa.pub [email protected]:/home/yourvps/.ssh/authorized_keys ⚙️ 設定檔案權限:
chmod 600 ~/.ssh/authorized_keys
🚫 禁用密碼登入:
sudo nano /etc/ssh/sshd_config
搜尋 `PasswordAuthentication`,改為: PasswordAuthentication no 重啟 SSH:
sudo service sshd restart
✅ 現在只有擁有私鑰的裝置才能登入伺服器! 5️⃣ 設定 UFW 防火牆(Uncomplicated Firewall) 🔥 基本防火牆配置流程如下:

sudo ufw default deny incoming
sudo ufw default allow outgoing
允許 SSH(記得替換為你的自訂端口):
sudo ufw allow 8888/tcp comment 'SSH custom port'
✅ 啟用防火牆:
sudo ufw enable
查看狀態:
sudo ufw status
#🎉 到這裡,你的 VPS 已具備以下基本防禦力 💪:
- 避免 root 被暴力破解 🚫
- 避免密碼被撞庫 🛡️
- 只允許特定密鑰登入 🔐
- 限制埠口存取 🔥
✨**溫馨提示:** 安全是一場持續的戰爭,這只是入門。
之後還可考慮 fail2ban、2FA、多機備份、主動監控等更高階保護。
6️⃣ 安裝並配置 Fail2Ban(封鎖惡意 IP) Fail2Ban 是一個超輕量的服務,可自動檢測登入失敗紀錄,並自動封鎖嘗試爆破的 IP。 🔧 安裝:
sudo apt install fail2ban
建立自訂配置:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
編輯:
sudo nano /etc/fail2ban/jail.local
🔍 修改 SSH 區塊如下: [sshd] enabled = true port = 8888 filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 3600 啟動服務:
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
查看是否生效:
sudo fail2ban-client status sshd
✅ 成功上線後,它會自動封鎖爆破你 VPS 的機器人 🧠。 7️⃣ 加入 Two-Factor Authentication(2FA)🔐 即便密鑰登入再安全,也怕本地裝置被竊取。這時候 2FA 就像是鎖上加鎖 🔒。 🔧 安裝:
sudo apt install libpam-google-authenticator
針對使用者設定: google-authenticator 系統會給出 QRCode,你可用手機上的 Authy 或 Google Authenticator 掃描,並獲得動態碼。 🔧 編輯 PAM:
sudo nano /etc/pam.d/sshd
在最上方加上: auth required pam_google_authenticator.so 🔧 編輯 SSH 設定:
sudo nano /etc/ssh/sshd_config
加入或確保以下項目: ChallengeResponseAuthentication yes AuthenticationMethods publickey,keyboard-interactive 🚀 重啟服務:
sudo systemctl restart sshd
✅ 成功後,登入時需先通過密鑰,然後輸入手機上的動態驗證碼,極大提升安全性。 8️⃣ 自動異地備份(多機備援)🧬 一切安全設定若無備份,依然如空中樓閣。這裡介紹簡易的 **rsync + cron + SSH key** 備份方案。 🧱 第一步:在備份機生成密鑰
ssh-keygen -t ed25519 -C "backup@node"
🚀 第二步:將公鑰傳到主機
ssh-copy-id -p 9753 backup@main-server
🗂️ 第三步:備份指令範例
rsync -azP -e "ssh -p 9753" backup@main-server:/home/yourserver /mnt/backup/vps/
📅 第四步:加入排程自動執行
crontab -e
加入每日凌晨 3 點備份: 0 3 * * * /usr/bin/rsync -azP -e "ssh -p 9753" backup@main-server:/home/yourserver /mnt/backup/vps/ ✅ 若搭配 borgbackup、Restic、Duplicacy 等工具可進一步做到版本控制與加密。 🔚 結語:到這裡你已完成 VPS 基礎安全 8 部曲

| 模組 | 功能簡述 | 安全加分 |
|--------------|-------------------------------|----------|
| 改SSH埠口 | 躲避掃描機器人 | ⭐⭐⭐ |
| 密鑰登入 | 徹底取代易被撞庫的密碼登入 | ⭐⭐⭐⭐ |
| 禁止root登入 | 減少關鍵帳號風險 | ⭐⭐ |
| sudo免密 | 安全便利兼顧 | ⭐⭐ |
| UFW防火牆 | 防止無用端口被探測 | ⭐⭐ |
| Fail2Ban | 自動封鎖爆破 IP | ⭐⭐⭐⭐ |
| 2FA驗證 | 雙重保護你的登入流程 | ⭐⭐⭐⭐⭐ |
| 多機備份 | 防止資料遺失與損壞 | ⭐⭐⭐⭐⭐ |

Loading stats...