LUCKVM / CLOUD INFRASTRUCTURE

探索 LuckVM

首頁 網域註冊 支援中心 訊息中心 關於我們

VPS安全防護與備份完整教學2026|新手必做10項設定,防止被黑與數據丟失

很多新手買了VPS之後,第一件事就是趕緊架網站、裝服務——但忘記做最基本的安全設定。結果幾天後就發現VPS被暴力破解、被植入挖礦木馬、網站被掛惡意程式、甚至數據全部被加密勒索。

根據雲端安全廠商的統計,一個公開在網路上的VPS,平均22分鐘就會收到第一次暴力破解嘗試,每天可能被掃描上萬次。好消息是:只要做幾個簡單的安全設定,就能防禦99%以上的常見攻擊。

VPS安全防護

▲ 做好安全防護,你的VPS才能像金盾牌一樣穩固

本文整理了新購VPS後必做的12項安全設定,從SSH金鑰、防火牆、防暴力破解、自動更新,到快照備份、異地備份、DDoS防護,每一項都給出完整可複製貼上的指令,即使是第一次使用VPS的新手,也能在30分鐘內完成所有設定。

💡 本文以 Ubuntu 22.04 / Debian 12 為範例(LuckVM預設可選系統)。CentOS/AlmaLinux指令略有不同,但觀念通用。建議先在LuckVM購買VPS後,開機就照著本文做一遍。

一、為什麼VPS安全很重要?真實的威脅有哪些?

很多人會想:「我只是架一個小部落格,裡面沒什麼重要數據,誰會來攻擊我?」

答案是:自動化掃描機器人不在乎你是誰。它們24小時不間斷掃描整個網際網路的所有IP,只要發現你的SSH port開著、密碼強度不足,就會用字典檔暴力破解——你的VPS可能被用來:

  • ⛏️ 植入挖礦程式,偷你的CPU和電力(最常見)
  • 📧 發送垃圾郵件,導致IP被封鎖
  • 🎯 成為DDoS攻擊的跳板(殭屍網路成員)
  • 🔒 勒索軟體加密你的硬碟,要求比特幣贖金
  • 🌐 掛上惡意網站、釣魚頁面
  • 💀 刪除你所有數據(網站、數據庫、備份)

最可怕的是:大部分人被入侵時根本沒發覺,直到收到主機商的違規通知、IP被封、或硬碟被加密才發現——那時候數據通常已經救不回來了

⚠️ 真實案例:一位用戶買了VPS架WordPress部落格,密碼設為"root123456",3天後發現伺服器CPU 100%滿載被植入挖礦程式,WordPress數據庫被刪除,因為沒有備份,兩年的文章全部遺失。做好本文前7項設定就能避免這種悲劇。

二、安全防護原則:最小權限 + 縱深防禦

在開始動手之前,先記住兩個核心原則:

  1. 最小權限原則(Least Privilege):只開啟你需要的服務、Port、帳號權限。不需要的東西全部關掉。
  2. 縱深防禦(Defense in Depth):不要只靠一層防護,要建立多層防線——防火牆、金鑰登入、Fail2ban、自動更新、備份——就算某一層被突破,還有下一層保護你。

三、新VPS到手,第一步:更新系統

SSH連上VPS之後,第一件事就是更新所有套件到最新版本,修補已知的安全漏洞:

# 更新套件清單
sudo apt update

# 升級所有已安裝套件
sudo apt upgrade -y

# 安裝常用工具(後續會用到)
sudo apt install -y ufw fail2ban unattended-upgrades curl wget git vim

整個過程大約2-5分鐘,完成後建議reboot重開機:

sudo reboot

四、修改SSH預設Port並加強安全設定

SSH預設Port是22,全世界的掃描機器人第一個掃的就是這個Port。把它改成一個不常用的Port(例如22222或其他1024-65535之間的數字),可以立刻減少90%以上的暴力破解嘗試

步驟1:編輯SSH設定檔

sudo vim /etc/ssh/sshd_config

找到以下幾行並修改(如果沒有的話就新增):

# 將Port從22改為自訂Port(例如22222)
Port 22222

# 禁止root帳號直接用密碼登入(建議設為prohibit-password,等金鑰設定完再改no)
PermitRootLogin prohibit-password

# 最大驗證嘗試次數(防止暴力破解)
MaxAuthTries 3

# 閒置超過5分鐘自動斷線
ClientAliveInterval 300
ClientAliveCountMax 0

# 不使用DNS反查(加快連線速度)
UseDNS no
⚠️ 重要提醒:在金鑰登入設定完成並測試成功之前,千萬不要把PasswordAuthentication改為no,否則你可能會把自己鎖在外面。建議等第四、第五步都完成並測試可以用金鑰登入後,再回來關閉密碼登入。

步驟2:重啟SSH服務

sudo systemctl restart sshd

⚠️ 千萬不要關掉現在這個SSH視窗! 先開一個新的終端視窗測試能不能連上:

# 新Port連線測試
ssh -p 22222 root@你的IP

如果可以成功連線,代表設定正確。如果連不上,回到原來的視窗檢查設定哪裡錯了。

五、設定UFW防火牆,關閉不必要的Port

防火牆的作用是:只開放你需要的Port,其他全部預設拒絕。這是最基礎也最重要的防線。

UFW防火牆設定

▲ UFW防火牆啟用後,只有SSH(22)/HTTP(80)/HTTPS(443)三個Port開放

步驟1:設定預設規則

# 預設拒絕所有入站連線
sudo ufw default deny incoming

# 預設允許所有出站連線
sudo ufw default allow outgoing

步驟2:開放必要的Port

# 開放SSH(注意要用你自訂的Port,不是22!)
sudo ufw allow 22222/tcp

# 開放HTTP和HTTPS(架網站需要)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 如果需要FTP、郵件等其他服務,再對應開放

步驟3:啟用防火牆

sudo ufw enable

輸入y確認後,防火牆就啟用了。可以用以下指令查看狀態:

sudo ufw status numbered
🚨 千萬注意:開啟防火牆之前,一定要先允許你的SSH Port!否則防火牆一開,你會立刻把自己擋在外面,只能透過VNC或救援模式連回去。

六、設定SSH金鑰登入,關閉密碼登入

密碼登入最大的問題是:只要密碼不夠複雜,機器人就可以用字典檔暴力破解。SSH金鑰是一對加密金鑰(公鑰+私鑰),用金鑰登入基本上不可能被暴力破解(金鑰長度256位元,暴力破解需要的時間比宇宙年齡還長)。

SSH金鑰產生

▲ 使用ed25519演算法產生SSH金鑰對

步驟1:在本機電腦產生金鑰對

這個指令在你自己的電腦上執行(不是在VPS上):

# Mac / Linux 直接在終端機輸入
ssh-keygen -t ed25519 -C "your-email@example.com"

按Enter使用預設路徑,建議設定一個passphrase(密碼片語)保護你的私鑰。完成後會產生兩個檔案:

  • ~/.ssh/id_ed25519 —— 私鑰,絕對不能分享給任何人
  • ~/.ssh/id_ed25519.pub —— 公鑰,要上傳到VPS

步驟2:將公鑰上傳到VPS

ssh-copy-id -p 22222 root@你的VPS_IP

輸入VPS密碼後,公鑰就會被上傳到VPS的~/.ssh/authorized_keys檔案。

步驟3:測試金鑰登入

ssh -p 22222 root@你的VPS_IP

如果不需要輸入密碼就能登入(或者只需要輸入你設定的passphrase),代表金鑰設定成功。

步驟4:關閉密碼登入(重要!)

再次編輯SSH設定檔:

sudo vim /etc/ssh/sshd_config

找到PasswordAuthentication,改為:

PasswordAuthentication no
PubkeyAuthentication yes

重啟SSH:

sudo systemctl restart sshd
🚨 再次提醒:在關閉密碼登入之前,一定要先開另一個終端視窗確認金鑰可以登入,再關閉當前視窗。否則你可能永遠連不回去了。

做完這一步,你的SSH已經從「密碼可被暴力破解」提升到「軍規級加密防護」,暴力破解基本上不可能成功。

七、安裝Fail2ban防暴力破解

即使改了Port、用了金鑰,還是會有掃描機器人不斷嘗試連線。Fail2ban會監控系統日誌,如果某個IP連續多次登入失敗,就自動把它封鎖一段時間,是防暴力破解的第二道防線。

# 安裝Fail2ban
sudo apt install -y fail2ban

# 複製設定檔(不要直接改 jail.conf)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# 編輯設定
sudo vim /etc/fail2ban/jail.local

找到[sshd]區段,修改為:

[sshd]
enabled = true
port = 22222          # 改為你自訂的SSH Port
filter = sshd
logpath = /var/log/auth.log
maxretry = 3          # 3次失敗就封鎖
bantime = 3600        # 封鎖1小時(單位:秒)
findtime = 600        # 10分鐘內3次失敗就算

啟動Fail2ban:

sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

# 查看狀態
sudo fail2ban-client status sshd

八、建立非root管理帳號

root帳號擁有系統最高權限,一旦被入侵,攻擊者可以做任何事。建議建立一個日常使用的一般帳號,需要管理權限時再用sudo切換:

# 建立新帳號(使用者名稱自訂,例如admin)
sudo adduser admin

# 加入sudo群組,讓它可以用sudo執行管理指令
sudo usermod -aG sudo admin

# 把SSH金鑰複製到新帳號
sudo mkdir -p /home/admin/.ssh
sudo cp ~/.ssh/authorized_keys /home/admin/.ssh/
sudo chown -R admin:admin /home/admin/.ssh
sudo chmod 700 /home/admin/.ssh
sudo chmod 600 /home/admin/.ssh/authorized_keys

測試新帳號能不能登入:

ssh -p 22222 admin@你的IP

測試sudo權限:

sudo whoami
# 應該輸出 root

一切正常後,可以考慮進一步禁止root帳號登入(等你確定新帳號運作正常再做):

sudo vim /etc/ssh/sshd_config
# 將 PermitRootLogin 改為 no
PermitRootLogin no

sudo systemctl restart sshd

九、啟用自動安全更新

很多入侵不是因為你密碼太弱,而是因為系統套件有已知漏洞但沒更新。啟用自動安全更新,系統會自動安裝重要的安全補丁:

sudo dpkg-reconfigure -plow unattended-upgrades

選擇「是」,然後編輯設定檔調整更新頻率:

sudo vim /etc/apt/apt.conf.d/50unattended-upgrades

確保以下設定是對的:

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";   # 只自動安裝安全更新
};
Unattended-Upgrade::Automatic-Reboot "false";    # 不自動重開機(建議)
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";

十、安裝SSL憑證,強制HTTPS

如果你的VPS用來架網站,一定要啟用HTTPS加密傳輸,否則使用者連線時的密碼、資料都會以明文傳輸,容易被中間人竊聽。

Let's Encrypt提供免費的SSL憑證,用Certbot可以一鍵申請:

# 安裝Certbot(以Nginx為例)
sudo apt install -y certbot python3-certbot-nginx

# 自動申請並設定憑證
sudo certbot --nginx -d 你的網域名稱

# 自動續約(Let's Encrypt憑證90天到期,會自動續約)
sudo certbot renew --dry-run

申請成功後,網站會自動強制跳轉到HTTPS,瀏覽器地址欄會顯示綠色鎖頭🔒。

十一、設定快照備份:對付失誤與勒索軟體的最後防線

無論你做了多少安全設定,都無法保證100%不會出事:可能是你自己打錯指令刪錯檔案、可能是網站程式有零日漏洞、可能是勒索軟體剛好針對你。唯一能讓你在出事後快速復原的,就是備份。

數據備份

▲ 數據備份是最後一道防線,出事時唯一能救你的東西

💡 備份3-2-1黃金原則:
• 至少保留 3 份備份
• 用 2 種不同媒體儲存
• 至少 1 份存在異地(不在同一台VPS/機房)

方法1:LuckVM控制台一鍵快照(最簡單)

LuckVM客戶中心內建快照功能,可以一鍵建立整台VPS的完整快照,出問題時一鍵還原:

LuckVM快照備份

▲ LuckVM客戶中心快照管理介面,每日自動備份,一鍵還原

建議設定:

  • ✅ 啟用每日自動快照(預設保留7-30天)
  • ✅ 每次執行重大操作(升級系統、安裝新軟體、改設定)前,先手動建立快照
  • ✅ 重要數據額外做異地備份(見下方方法2、3)

方法2:WordPress網站外掛備份(適合架站用戶)

如果你用WordPress架站,可以安裝備份外掛:

外掛名稱 免費版 特點
UpdraftPlus 最受歡迎,可備份到Google Drive/OneDrive/S3
All-in-One WP Migration 一鍵匯出匯入,搬家超簡單
WPvivid 支援定時自動備份+異地儲存
BlogVault 付費 即時備份+增量備份+惡意軟體掃描

方法3:rsync異地備份腳本(進階)

如果你有第二台VPS或雲端儲存,可以用rsync寫一個簡單的定時備份腳本,每天自動把重要檔案同步到異地:

# 安裝rsync
sudo apt install -y rsync

# 建立備份腳本
vim ~/backup.sh

腳本範例:

#!/bin/bash
# 備份網站數據、數據庫、設定檔到異地伺服器

BACKUP_DIR="/tmp/backup_$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# 備份Nginx設定
tar czf $BACKUP_DIR/nginx.tar.gz /etc/nginx/

# 備份WordPress(假設在/var/www/)
tar czf $BACKUP_DIR/www.tar.gz /var/www/

# 備份MySQL數據庫
mysqldump -u root -p'你的密碼' --all-databases | gzip > $BACKUP_DIR/db.sql.gz

# 用rsync同步到備份伺服器(替換成你的備份VPS資訊)
rsync -avz $BACKUP_DIR/ backup-user@備份IP:/backups/luckvm/

# 清理本地臨時檔案
rm -rf $BACKUP_DIR

echo "備份完成:$(date)" >> /var/log/backup.log

加入crontab每天凌晨3點自動執行:

chmod +x ~/backup.sh
crontab -e
# 加入這一行:
0 3 * * * /root/backup.sh

十二、其他進階安全建議

1. 安裝DDoS防護(Cloudflare)

如果你的網站公開對外營運,DDoS攻擊是常見威脅(競爭對手、敲詐勒索都可能發動)。建議把網站域名接入Cloudflare免費CDN,可以隱藏真實IP、免費防禦中小規模DDoS攻擊、還能加速網站全球存取速度。

2. 關閉不需要的服務

用指令查看目前正在監聽的Port,把不需要的服務關掉:

sudo ss -tulpn

只保留你真正需要的服務(SSH、Nginx/Apache、數據庫),其他全部關閉或解除安裝。

3. 啟用兩步驟驗證(2FA)

可以為SSH登入加上Google Authenticator兩步驟驗證,就算私鑰被偷,攻擊者還是需要手機上的動態驗證碼才能登入:

sudo apt install -y libpam-google-authenticator
google-authenticator
# 按照提示掃描QR Code加入Google Authenticator App

4. 定期查看系統日誌

偶爾看一下登入記錄,看看有沒有可疑活動:

# 查看最近的登入記錄
sudo last

# 查看失敗的登入嘗試
sudo lastb

# 查看Fail2ban封鎖了哪些IP
sudo fail2ban-client status sshd

十三、完整安全設定檢查清單

VPS安全檢查清單

▲ 建議按照清單逐項完成,全部做完VPS安全等級達到A+級別

編號 安全措施 重要程度 防禦對象
1 更新系統到最新版本 ⭐⭐⭐⭐⭐ 已知漏洞攻擊
2 修改SSH預設Port ⭐⭐⭐⭐ 90%的自動化掃描
3 設定SSH金鑰登入 ⭐⭐⭐⭐⭐ 密碼暴力破解
4 關閉密碼登入 ⭐⭐⭐⭐⭐ 所有密碼型攻擊
5 啟用UFW防火牆 ⭐⭐⭐⭐⭐ 未授權Port存取
6 安裝Fail2ban ⭐⭐⭐⭐ 重複暴力破解
7 建立非root帳號 ⭐⭐⭐⭐ 權限過大風險
8 啟用自動安全更新 ⭐⭐⭐⭐⭐ 未修補的漏洞
9 安裝SSL憑證 ⭐⭐⭐⭐ 中間人竊聽
10 啟用每日快照備份 ⭐⭐⭐⭐⭐ 數據丟失/勒索
11 異地備份 ⭐⭐⭐⭐⭐ 單點故障/機房事故
12 Cloudflare DDoS防護 ⭐⭐⭐ DDoS攻擊

十四、常見問題 FAQ

Q1:我改了SSH Port之後忘記Port號怎麼辦?
可以透過LuckVM客戶中心的VNC控制台登入VPS(不需要SSH),然後執行cat /etc/ssh/sshd_config | grep Port查看目前Port。建議把自訂Port記在密碼管理器裡。
Q2:我把自己鎖在VPS外面了,怎麼辦?
不要慌。先登入LuckVM客戶中心,使用VNC Web Console登入(這個不受防火牆和SSH設定影響),進去之後修正SSH設定或防火牆規則,然後重啟sshd/ufw即可。
Q3:金鑰和密碼哪個更安全?一定要關閉密碼登入嗎?
SSH金鑰遠比密碼安全,建議強烈關閉密碼登入。但如果你經常需要從不同電腦登入,可以設定很強的密碼(20位以上亂數)加上Fail2ban保護,至少不要用預設Port+弱密碼的組合。
Q4:快照和異地備份差在哪裡?只開快照不就夠了嗎?
快照存在同一台實體伺服器上,如果機房硬碟故障、或被入侵者刪除快照,還是會丟數據。異地備份存在另一個地點(另一台VPS、Google Drive、S3),就算整台VPS和快照都不見了,還有一份備份。重要網站一定要異地備份。
Q5:多久做一次備份合適?
網站每天更新(例如電商、部落格)→ 每日備份;靜態官網很少更新 → 每週備份;每次修改程式/升級系統前,強烈建議先手動建立快照。
Q6:我懷疑VPS被入侵了,怎麼辦?
① 立刻用LuckVM快照還原到最近乾淨的備份;② 還原後立刻修改所有密碼、更換SSH金鑰;③ 檢查是哪個漏洞導致入侵(通常是弱密碼、過期外掛);④ 如果沒有備份,建議直接重裝系統,因為木馬可能藏在很難發現的地方。

十五、總結

VPS安全聽起來很複雜,但實際上只要跟著本文做一次,30分鐘就能完成全部基本設定,防禦99%以上的常見攻擊。記住幾個重點:

  1. 更新系統永遠是第一步——過期的套件是最大漏洞來源。
  2. 改SSH Port + 金鑰登入 + 關密碼——三個動作解決絕大部分暴力破解。
  3. UFW防火牆 + Fail2ban——多兩層防線,代價極小、效果極大。
  4. 備份!備份!備份!——不論做了多少安全設定,備份是最後的救命仙丹。快照+異地備份都要做。
  5. 最小權限原則——不需要的Port不要開,不需要的服務不要裝,不要隨便用root操作。

還沒有VPS?開始你的安全架站之旅

LuckVM提供香港/日本/台灣/新加坡/美國/韓國全球節點,內建快照備份、免費DDoS防護
入門方案月費$1起,支援PayPal/信用卡/支付寶/USDT付款

前往 LuckVM 官網選購

安全不是一次做完就結束的事情,而是持續的習慣。建議每隔幾個月回來看一次,檢查系統是否有更新、備份是否正常運作、有沒有可疑的登入記錄。只要保持良好習慣,你的VPS就能安全穩定地運行很多年。

如果這篇教學對你有幫助,歡迎分享給需要的朋友。有任何安全相關問題,可以在下方留言或到LuckVM官方社群提問,我們有24/7技術客服可以協助你。