一台全新 VPS 上的頭十分鐘,悄悄決定了很多。一個新的公用 IP 幾乎立刻就開始被自動化機器人探測——它們不是針對您,它們只是把一切都掃一遍。什麼都不做,您就在靠運氣。做四五件小事,您就關上了那些真正會被踹開的門。這是清單,按優先順序排,附指令。
1. SSH 金鑰,並關掉密碼登入
這是最要緊的那件。如果您能用密碼登入,一個猜到它的機器人也能——它們每分鐘試上千次。
在您的筆電上,如果您還沒有金鑰:
ssh-keygen -t ed25519 -C "you@laptop"
ssh-copy-id root@your-server-ip
然後在伺服器上,關掉密碼:
# /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
sudo systemctl reload ssh
⚠️ 在關掉第一個工作階段之前,先測一個第二個 SSH 工作階段——如果金鑰登入能用,很好;如果不能,您還有那個開著的工作階段來修它。把自己鎖在門外是這裡的經典烏龍。
2. 一道防火牆——預設拒絕
只暴露您打算暴露的。在 Ubuntu/Debian 上:
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH # 或你的 SSH 埠
sudo ufw enable
現在一個遊離的服務除非您開放它,否則從外面夠不著。這抓住了您必然會忘掉的那個東西。
給 NAT 式方案的一點提醒:您的 SSH 落在一個轉發埠上,而不是 22,您也開不了任意對內埠——隔離替您做了這活的一部分。在獨立IP方案上,所有埠都歸您,所以防火牆乾的活更多。
3. 自動安全更新
大多數被攻陷的伺服器不是精心挑的目標——它們是在一台沒人更新的機器上,跑著一個修補程式早已修好的已知漏洞。讓打修補程式自動化:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
設好就忘。這是 SSH 金鑰之後價值最高的習慣。
4. fail2ban(可選,但便宜)
密碼登入已經關掉後,暴力破解贏不了——所以這更多是削減噪聲、及早封掉濫用 IP,而不是核心保護:
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
為更安靜的記錄值得裝;如果您想保持極簡,跳過它也不必內疚。
您可以跳過什麼
- 改 SSH 埠 —— 減少機器人噪聲,攔不住真正的攻擊者。表面功夫。別把它跟安全混為一談。
- 繁複的 IDS/SELinux 調優 —— 對一台跑機器人或代理的單一用途機器來說過頭了。收益遞減。
誠實的總結
如果您只做一件事,做 SSH 金鑰 + 停用密碼登入。 加上防火牆和自動更新,您就在遠不到十分鐘裡處理了現實世界裡絕大多數的真實風險。再往後的一切都是打磨。
在機器上跑一個常開的代理或機器人?把這個和用 systemd 讓它保活配起來,這樣它熬過的不只是攻擊者,還有重新啟動和崩潰。
評論
目前還沒有評論。歡迎成為第一位。