返回部落格

自建代理 IP:SSH 初始化與安全強化

自建代理 IP 的伺服器端準備順序:先確認 SSH 登入,再修改連接埠並改用金鑰登入,完成基礎安全強化,接著安裝代理服務並放行連接埠,最後從用戶端接入並驗證。

買一台雲端伺服器當代理使用,真正卡住人的地方通常不是連線本身,而是伺服器端的準備順序。順序正確,用戶端大多一次就能接通;順序混亂,就得反覆回到終端機修改設定。

這裡只談伺服器端:從第一次登入、收緊入口,到代理服務啟動、連接埠放行、用戶端能夠接入,以及連不上時如何分層找原因。

第一次登入,先確認入口能正常使用

執行個體建立完成後,先使用服務商控制台內建的網頁終端機登入,不要一開始就依賴本機工具。這一步只為確認機器正常運作、網路可達。

進入後切換到 root,執行 sudo -i 並按 Enter。提示符號從 $ 變成 # 就代表提權成功,後續操作都以這個身分進行。

順手記下四項資訊:公網 IP、登入使用者名稱(Linux 預設為 root)、密碼、SSH 連接埠(預設 22)。用戶端接入時需要填的就是這四項,少任何一項都無法連線。

更換預設連接埠,再改用金鑰登入

22 連接埠每天都會被掃描無數次,自動化撞庫嘗試很常見。修改連接埠不會讓伺服器本身變得更強,但可以過濾掉大部分自動化雜訊。

設定位置在 /etc/ssh/sshd_config。用 vi 開啟,按 i 進入編輯模式,將 PermitRootLogin 和 PasswordAuthentication 兩行改成 yes,按 Esc 後輸入 :wq 儲存離開。如果服務商支援金鑰登入,更穩妥的做法是把本機公鑰寫入伺服器的 authorized_keys,接著把 PasswordAuthentication 改成 no,只保留金鑰驗證。

修改設定後不要立刻退出目前的工作階段。 先另外開一個終端機視窗,用新的連接埠與新方式登入一次,確認可以進入,再關閉舊視窗。否則一旦設定寫錯,就可能把自己鎖在門外,只能回到控制台救援。

SSH 連接埠是在 Port 那一行修改。改完後重新啟動 SSH 服務讓設定生效,Debian 與 Ubuntu 系統可以執行 /etc/init.d/ssh restart。

開機第一天就完成基礎安全強化

除了更換連接埠與使用金鑰,還有兩件小事適合在第一天處理完。第一,使用 passwd root 為 root 設定足夠長的隨機密碼,不要使用容易猜中的組合;第二,關閉不需要的服務與連接埠。機器上執行的項目越少,暴露面越小;系統防火牆只應放行真正需要的連接埠。

如果這台機器長期只服務固定的幾個來源,可以在安全群組中把來源位址限制到這些位置,比對整個網際網路開放安全得多。

安裝代理服務並設定驗證

伺服器端初始化完成後,再處理代理本身。

一種方式是直接使用 SSH 通道。伺服器上不需要額外安裝任何東西,用戶端利用系統內建的 SSH 服務做轉送,憑證就是伺服器原本的帳號密碼。這種方式省事,但效能一般,並行連線一多就容易吃力,適合臨時使用或帳號很少的情況。

另一種方式是在伺服器上安裝專用的代理服務。通常一條安裝指令就能完成,接著自行設定驗證方式與監聽連接埠。安裝後記得設定開機自動啟動,否則伺服器一重新開機,代理服務也會跟著停止。

驗證方式可以分成三個層級,安全性依序提高:帳號密碼最省事,但一旦外洩就等於把代理交出去;密碼搭配來源 IP 白名單,日常使用通常足夠;金鑰或憑證驗證最穩妥,設定稍微麻煩一些,但長期運作的帳號值得投入這些時間。

連接埠要在兩個地方分別放行

這是最容易卡住的地方。代理服務的監聽連接埠,需要在系統防火牆與服務商的安全群組中各放行一次。兩處彼此獨立,只放行其中一處仍然無法連線。

另一個容易忽略的位置是服務的監聽位址。有些服務預設只綁定 127.0.0.1,在伺服器本機測試可以通、從外部卻連不上,通常就是這個原因。把監聽位址改成伺服器的內網位址或 0.0.0.0 即可。

從本機用戶端接入

在環境管理工具中建立一個新環境,依實際情況選擇代理類型。如果使用 SSH 通道,位址就是伺服器的公網 IP,連接埠填 SSH 連接埠,使用者名稱和密碼則使用伺服器那一組。填完後執行連線檢測。

檢測通過只代表鏈路已經打通,還要開啟這個環境確認三件事:出口 IP 是否為伺服器的公網 IP;DNS 是否也經過代理,因為 DNS 若仍在本機解析,暴露的地區資訊可能會和出口 IP 對不上;時區與語言是否和出口地區一致。三項都通過,這個環境才算可以使用。

帳號數量增加後,要把環境與出口的對應關係固定下來,避免多個帳號共用同一個環境。PurpleMark 這類工具可以為每個帳號單獨綁定出口,比手動維護一張對照表更穩定。

連不上時,從外往內分層檢查

先看最外層:安全群組是否已放行?系統防火牆是否已放行?兩處都確認後再往下檢查。

接著看服務本身:程序還在不在,尤其是伺服器重新啟動過之後?監聽位址是否只綁定在本機?

再往內是驗證層:使用者名稱或密碼有沒有填錯?金鑰檔案的權限是不是過寬?權限不正確時 SSHD 會直接拒絕金鑰。最後才檢查用戶端:填的是公網 IP 還是誤填內網 IP?這裡特別容易搞混。

按照這個順序處理,通常兩三輪就能定位問題在哪一層,而不是一遍又一遍重新安裝服務。

收尾

伺服器端的準備工作花不到半小時,但它會決定這台機器接下來幾個月是否省心。把入口收緊、正確放行連接埠、把驗證設定清楚,剩下的就只是日常維護。