Linode VPS 架站指南——方案選擇與初始安全設定

租一台 Linode VPS 架站,難的從來不是按下「Create」那一刻,而是兩個常被新手跳過的決定:方案到底要選哪一階,以及主機開好後的第一個小時要做哪些安全設定。前者選錯,輕則每月多付一倍租金,重則網站卡在記憶體不足;後者沒做,主機開機幾分鐘內就會被自動掃描程式試著暴力登入。

Linode 在 2022 年被 Akamai 併購,現在官方名稱是 Akamai Connected Cloud,但控制台流程與方案結構大致延續舊版,市面上多數教學仍通用。網路上談 Linode VPS 架站的文章不少,多半把篇幅花在註冊帳號、刷卡、點哪個按鈕,真正該講清楚的「這個網站適合哪一階方案」「主機到手後安全要鎖哪幾道」反而帶過。這篇把這兩塊補滿,從方案怎麼挑、機房選哪裡、連線進去之後第一個小時的硬化清單,一路講到備份與信件主機要設的反解,讓你開好的不只是一台能跑的主機,而是一台不容易被打進來的主機。

Linode 的方案分成哪幾類,各適合什麼網站

先給結論:個人部落格與中小型 WordPress 網站,從 Shared CPU 的入門階開始就夠,需要更多資源再線上升級;只有在流量大且需要穩定運算(例如吃重的資料庫、即時運算服務)時,才需要一開始就上 Dedicated CPU。

Linode 採用以小時計費、月費封頂的方式,用多少付多少,不綁約。方案大致分成這幾類:

  • 共享 CPU(Shared CPU):最入門的 Nanode 1GB 約每月 5 美元(每小時約 0.0075 美元),規格是 1GB 記憶體、1 顆 vCPU、25GB SSD、每月 1TB 流量。往上還有 2GB(約 12 美元)、4GB(約 24 美元)等階。CPU 與其他租戶共用,價格最低,適合多數內容型網站。
  • 專用 CPU(Dedicated CPU):CPU 核心不與他人共用,效能穩定,入門階月費比同記憶體的共享方案高一截。適合運算吃緊、需要可預期效能的服務。
  • 大量記憶體(High Memory):記憶體配比特別高,適合記憶體密集的應用,入門價更高。
  • GPU:用於圖形運算與機器學習,價格最高,一般架站用不到。

所有方案都免費附 IPv4 與 IPv6 位址、每個資料中心提供免費的 DDoS 防護,這點對小網站是實質保障。共享與專用方案在相同記憶體規格下價差其實沒有想像中大,但對純內容網站來說,把錢花在「不夠就升級」比「先買貴的放著」更實際。

Nanode 1GB 夠不夠跑 WordPress

夠跑,但要看怎麼配。1GB 記憶體跑一個流量不大的 WordPress,搭配輕量的 Nginx 或 LEMP 環境、開啟頁面快取,日常運作沒問題;它也是用來架靜態網站、測試環境、開發機的常見選擇。

會卡住通常出在三種情況:同時裝了肥大的佈景與大量外掛、把 MySQL 和 PHP-FPM 的記憶體開太鬆、或流量突然衝高。Linode 隨時可以線上 Resize 升級規格(升級時主機會重開機),所以務實的做法是先從 Nanode 起步,從控制台的監控圖盯著 CPU 使用率與記憶體,真的吃緊再往上跳一階,而不是一開始就為了「保險」多付一倍。

開主機前要先決定哪些設定

建立主機(Create Linode)時,控制台會要你一次決定幾件影響後續維護的事,先想清楚再按下去:

  • 作業系統(Distributions):Linode 提供 Ubuntu、Debian、CentOS、Rocky Linux、Alpine、Fedora 等多種 Linux 發行版。新手架站建議選 Ubuntu LTS 或 Debian 的長期支援版本,社群文件最多、踩雷時最好找解法。標示「Deprecated」的版本是官方版本已停止支援,不要選。
  • 資料中心(Region):機房位置直接決定台灣讀者連到你網站的延遲。
  • 方案(Plan):依前面的判斷選 Shared CPU 的合適階。
  • 主機標籤(Label):給主機一個好認的名字,未來機器一多才不會混亂。
  • Root 密碼:建立時設定的 root 密碼一定要夠強並記好,這是你第一次登入用的鑰匙。
  • SSH 金鑰:如果建立前就先在控制台加好 SSH 公鑰,主機開好就能直接用金鑰登入,省去後面手動貼上的步驟。

Marketplace 一鍵安裝也值得一提。Linode 的 Marketplace 提供 WordPress、LAMP、LEMP、Docker 等一鍵部署範本,多數架在 Debian 環境上,對不想從零手動安裝環境的人很方便。要提醒的是,一鍵安裝幫你裝好了軟體,卻不代表幫你做好了安全設定,後面的硬化步驟一樣得自己跑一遍。

台灣讀者該選哪一個資料中心

以連線品質判斷,主要客群在台灣或香港時,東京(Tokyo)、新加坡(Singapore)、美國西岸的 Fremont 是相對可接受的三個選項,其中東京對台灣的回應時間通常最理想。

決定機房前,可以先用 Linode 官方提供的 Speed Test 服務實測。它會讓你從目前所在的網路,測到各機房節點的下載、上傳速度與往返延遲(回應時間)。從台灣連到東京節點,回應時間通常落在四十幾毫秒;連到新加坡則會多一些,落在六十幾毫秒。差距看起來不大,但對講求載入速度的網站,東京一般是台灣讀者體感較好的選擇。要特別注意:機房在建立主機時就定下來,事後想換機房等於要重新部署,所以這一步別隨便點。

主機開好後第一個小時要做哪些安全設定

主機一開機、拿到公開 IP 的那一刻,就會開始被全球的自動掃描程式探測,最常見的就是針對 SSH 22 埠的密碼暴力嘗試。所以連線進去後第一件事不是裝網站,是把主機鎖好。以下是 Ubuntu/Debian 環境下的硬化順序,照著跑一遍,第一個小時就能把絕大多數自動化攻擊擋在門外。

第一步、用 root 登入並更新系統。 用建立時設的 root 密碼,透過 SSH 連進主機,先把套件更新到最新,把已知漏洞補上:

apt update && apt upgrade -y

第二步、建立一個有 sudo 權限的日常帳號。 直接用 root 操作風險高,應該建立自己的帳號、賦予 sudo 權限,之後都用這個帳號登入:

adduser <你的帳號>
usermod -aG sudo <你的帳號>

第三步、設定自動安全更新。 安裝並啟用 unattended-upgrades,讓系統自動套用安全性修補,減少手動維護的空窗:

apt install unattended-upgrades

接著編輯 /etc/apt/apt.conf.d/50unattended-upgrades,把安全性更新(-security)那一行的註解解開,再到 /etc/apt/apt.conf.d/20auto-upgrades 開啟定期更新與套用。

第四步、改掉 SSH 預設埠並關閉 root 遠端登入。 編輯 /etc/ssh/sshd_config,把預設的 22 埠改成 1024 到 65535 之間的一個埠(避開最常被掃描的預設埠),同時禁止 root 直接用 SSH 登入、只允許你剛建立的帳號:

Port <你選的埠號>
PermitRootLogin no
AllowUsers <你的帳號>

改完重啟 SSH 服務(systemctl restart ssh)。要提醒的是,改埠之後再連線就得帶上新埠號,例如 ssh -p <你選的埠號> <你的帳號>@<你的主機IP>

第五步、改用 SSH 金鑰登入,並關閉密碼登入。 SSH 金鑰用一對非對稱金鑰取代密碼:私鑰留在你的電腦,公鑰放到主機。把你的公鑰內容貼進主機的 ~/.ssh/authorized_keys,並把該檔案權限設為 0600。確認金鑰能正常登入後,再回到 /etc/ssh/sshd_config 把密碼登入關掉:

PasswordAuthentication no

關掉之後,就算有人猜中密碼也進不來,因為登入只認金鑰。這一步是整套硬化裡防護效益最高的一環,務必做。操作前先確定金鑰真的能登入,否則關掉密碼又沒設好金鑰,會把自己鎖在門外。

第六步、設定主機內的 UFW 防火牆。 UFW 是 Linux 上好上手的防火牆。安裝後,預設拒絕所有進入連線,只放行你需要的埠——架網站至少要放行你改過的 SSH 埠,以及網頁服務的 80、443 埠:

apt install ufw
ufw allow <你的SSH埠號>/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

啟用前務必先放行 SSH 埠,否則啟用防火牆的瞬間連線會被切斷。用 ufw status 可以隨時檢視目前規則。

第七步、安裝 Fail2Ban 擋暴力嘗試。 Fail2Ban 會監控登入紀錄,把短時間內登入失敗太多次的 IP 暫時封鎖,進一步降低被暴力嘗試打中的機率:

apt install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
service fail2ban restart

複製一份 jail.local 是為了避免日後套件更新時,你的設定被原始檔覆蓋掉。

Linode 的 Cloud Firewall 和主機裡的 UFW 有什麼不同

兩者是兩層不同的防火牆,建議搭配使用而不是二選一。主機裡的 UFW 跑在你的作業系統內,封包要先進到主機才被它過濾;Linode 的 Cloud Firewall 則設在 Akamai 的網路邊緣,在流量還沒抵達你的主機之前就先擋下,等於多一道前置關卡。

實務上的常見配置是:在 Linode 控制台的 Firewalls 分頁建立一組雲端防火牆,設定預設拒絕進入、放行你需要的埠(改過的 SSH 埠與 80、443),再把它套用到主機上;主機內同時保留 UFW 作為第二層。兩層都設,就算其中一層規則寫錯或失效,另一層還能補位。

還有哪些設定值得在上線前一起做

除了安全硬化,有兩項設定建議在網站正式上線前一併處理,免得之後出狀況才回頭補。

開啟備份。 Linode 提供付費的自動備份服務(Backups),會定期為主機建立快照,主機出問題時能還原到先前狀態。架正式網站時這筆錢通常值得花;若預算很緊,至少要自己安排把資料庫與檔案定期備份到別的地方,別把所有雞蛋放在同一台主機上。

設定反解(RDNS/PTR 記錄)。 如果這台主機要負責寄信,反向解析就很重要。許多收件郵件伺服器會檢查寄件 IP 有沒有對應的 PTR 記錄,沒設好的信容易被丟進垃圾信匣,甚至直接被退。設定前要先把網域的 A 記錄指到主機 IP,再到控制台的 Networking 分頁,對該 IP 編輯 Reverse DNS、填入你的網域。純內容網站、不自行寄信的話,這一步可以暫時略過。

時區也順手調一下。系統預設多為 UTC,台灣主機建議用 timedatectl set-timezone Asia/Taipei 改成台北時間,之後看排程與日誌的時間才不會錯亂。

從選方案到鎖好主機,該怎麼安排這趟流程

回到一開始的兩個決定。方案上,內容型網站從 Shared CPU 入門階起步、靠線上 Resize 隨流量調整,比一次買到頂划算;機房對台灣讀者優先看東京,且要記得機房一旦選定就難更換。安全上,主機到手的第一個小時就要走完那七步硬化——建帳號、自動更新、改 SSH 埠、關 root、上金鑰、關密碼登入、UFW 加 Fail2Ban,再用 Linode 的 Cloud Firewall 補一層邊緣防護。

把這兩件事在動手裝網站之前先處理好,後面才不會一邊上線一邊救火。挑好你的方案與機房,照著硬化清單把主機鎖緊,再開始部署你的網站環境吧。

相關文章
標籤: SSH 安全, 防火牆設定, VPS, Linode, WordPress 架站