防火牆決定伺服器上哪些埠接受外部連線。任何沒有被明確開放的埠都應該關閉——這就是預設拒絕,它把您的攻擊面縮小到您實際執行的那些服務。UFW 讓這件事變得很簡單。唯一要做對的是順序:在開啟防火牆之前先放行 SSH,否則您會把自己鎖在外面。
1. 安裝 UFW(通常已經預裝)
sudo apt update && sudo apt install -y ufw
2. 先放行 SSH——在做任何其他事情之前
這是防止被鎖在外面的關鍵一步。請在 enable 之前完成:
sudo ufw allow OpenSSH
# or, if you use a custom SSH port:
# sudo ufw allow 22/tcp
3. 只開放您需要的埠
sudo ufw allow 80/tcp # HTTP, if you serve a website
sudo ufw allow 443/tcp # HTTPS
# add app-specific ports only as needed, e.g.:
# sudo ufw allow 51820/udp # WireGuard VPN
4. 設定預設策略並啟用
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable # asks for confirmation
5. 驗證
sudo ufw status verbose
您應該能看到 SSH 和您選擇的埠處於允許狀態,其餘全部被拒絕。每次改動之後都檢查一下。
常見操作
sudo ufw allow 3000/tcp # open a port
sudo ufw delete allow 3000/tcp # close it again
sudo ufw status numbered # list rules with numbers
sudo ufw delete 2 # delete rule #2
sudo ufw disable # turn the firewall off
誠實的提醒
- 在
ufw enable之前先放行 SSH。 這是把人們鎖在自己伺服器之外的頭號失誤。萬一發生,服務供應商控制台能讓您回來——EQVPS 為每台 VPS 都提供瀏覽器控制台。 - 防火牆只是一層防護。 它控制哪些埠是開放的,而不是埠上發生了什麼。把它和 SSH 金鑰認證 以及 fail2ban 結合使用。
- 在 NAT 方案上,對內埠的工作方式不同——伺服器本機的防火牆仍然有用,但只有獨立 IP 方案才能接受任意對內連線。
下一步
防火牆加上金鑰就完成了加固工作的大部分。用 新 VPS 安全清單 來收尾。要為 Web 應用開放 443?參見 如何設定帶 HTTPS 的 nginx 反向代理。
評論
目前還沒有評論。歡迎成為第一位。