萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 資訊安全防護

構建鐵桶 FTP 服務:Serv-U 安全加固完整清單

Serv-U 作為廣泛部署的 FTP 服務器軟體,默認配置極不安全 (空管理密碼、明文傳輸、匿名訪問、無速率限制、目錄遍歷風險)。本文提供從安裝到日誌審計的**全生命週期加固清單**,將 Serv-U 打造為合規、可審計、抗攻擊的文件傳輸服務。

階段 0:安裝階段 — 源頭最小化

  • 非默認路徑安裝:避開 `C:\Program Files\Serv-U`,選擇不可猜測路徑 (如 `D:\Apps\ServU_Prod_2024`),減少自動化掃描/利用命中率。
  • 最小組件安裝:僅勾選「Server program files」+「Administrator program files」。**取消** 「ReadMe/Version text」、「Online help files」——減少攻擊面、磁盤佔用、補丁負擔。
  • 原則:**所有服務器軟體遵循「夠用原則」,不安裝任何非運行必需組件**。

階段 1:初始化 — 管理員強認證

  1. 首次啟動彈出向導 → **取消**,改用手動創建域/用戶 (向導可能創建弱默認值)。
  2. 主界面 →「設置/更改密碼」 → 設置**高強度管理員密碼** (≥20 位、全字符集、密碼管理器生成)。
  3. 啟用 **管理介面 HTTPS** (若支援) 或 **SSH 管理** (Serv-U 15.2+),禁用 HTTP/明文管理。
  4. 限制管理介面綁定 IP:僅綁定內網管理網段 IP / Loopback + SSH 隧道 / VPN 訪問,**嚴禁 0.0.0.0:對公網開放**。

階段 2:域與用戶策略 — 最小權限與生命週期

1. 域級安全設置

  • 「安全性」下拉選單 → **「僅允許 SSL/TLS 連接」 (Explicit FTPS / Implicit FTPS)**,強制加密傳輸 (控制通道 + 數據通道)。
  • **禁用明文 FTP (端口 21)**,僅保留 990 (Implicit FTPS) 或 21 + STARTTLS (Explicit FTPS)。
  • 啟用 **SSL 憑證**:管理介面 → 本地服務器 → 設置 → SSL 憑證 → 「普通名稱」填實際 FQDN (如 `ftp.corp.example.com`),申請受信 CA 證書 (Let's Encrypt/內部 CA/商業證書),應用。

2. 用戶帳戶精細化配置

設置項推薦值/原則說明
帳戶失效時間臨時帳戶必填到期自動移除防止僵屍帳戶長期存活
最大上傳/下載速度1000 KB/s (視業務調整)防大文件佔滿帶寬/磁盤 I/O 導致 DoS
空閒超時 / 會話超時600 秒 / 1800 秒釋放佔用連接槽,防連接耗盡
目錄訪問權限**最小必要**:僅授予列表/讀取/上傳/刪除/重命名/建立目錄,**嚴禁「執行」權限**防 WebShell/惡意腳本通過 FTP 上傳後直接執行
IP 訪問控制「編輯規則」=「允許訪問」 → 僅添加業務來源 IP/網段 (辦公網段/合作夥伴出口 IP/雲端 NAT IP)白名單機制,預設拒絕,極大縮小攻擊面
拒絕訪問列表從系統日誌發現的掃描/暴力破解 IP 段持續加入動態威脅情報餵入 (Fail2Ban/自動化腳本)

階段 3:協議與傳輸加固

  • 強制 FTPS (TLS 1.2+):禁用 SSLv3/TLS 1.0/1.1,加密套件限制 `ECDHE+AES-GCM`、`DHE+AES-GCM`。
  • 被動模式 (PASV) 端口範圍固定:如 `50000-51000`,防火牆/安全組精準放行,避免大範圍端口開放。
  • 啟用 EPSV/EPRT (IPv6 支援)。
  • 禁用匿名登入:除非極少數公開只讀場景 (且僅讀、無寫、隔離 VLAN、審計)。
  • 啟用 UTF-8 (OPTS UTF8 ON),避免中文文件名亂碼導致邏輯錯誤。

階段 4:日誌審計與告警 — 可見性是安全前提

  • 管理介面 → 域 →「活動」→「域日誌」:記錄 IP、用戶、命令、文件、傳輸量、錯誤碼、會話時長。
  • 日誌轉發:配置 Syslog (RFC 5424) 轉發至 SIEM (Splunk/ELK/Graylog/Sentinel),字段結構化解析。
  • 關鍵告警規則**:
    • 短時內多次登入失敗 (暴力破解) → 觸發 Fail2Ban/防火牆封禁 IP。
    • 非常用 IP/地理位置登入 → 郵件/企業微信/鉉釘告警。
    • 大文件上傳/下載 (超閾值) → 人工複核。
    • 目錄遍歷嘗試 (`../`、`..\`) → 即時阻斷告警。
    • 管理員登入/配置變更 → 審計追蹤。
  • 日誌保留**:熱存儲 90 天 + 冷存儲 1 年 (合規要求)。

階段 5:持續運營與應急

  1. 補丁管理:訂閱 SolarWinds Serv-U 安全公告,月度檢查並應用補丁 (CVE-2021-35211、CVE-2022-36881 等歷史高危漏洞)。
  2. 滲透測試**:半年度針對 FTP 服務滲透測試 (認證繞過、目錄遍歷、命令注入、邏輯漏洞)。
  3. 備份與恢復演練**:配置/用戶數據庫/SSL 證書/日誌 異地加密備份,季度演練恢復。
  4. 棄用評估**:FTP 協議固有缺陷 (命令/數據分離、被動模式防火牆穿透難、無完整性校驗):**新業務優先選 SFTP (SSH) / HTTPS (WebDAV/S3 API) / MFT 托管服務**,逐步淘汰 FTP。

一鍵審計腳本 (PowerShell 檢查關鍵配置)

$servuPath = "C:\Program Files\RhinoSoft\Serv-U\Serv-U.exe" # 實際路徑
# 檢查版本
$ver = (Get-Item $servuPath).VersionInfo.FileVersion
Write-Host "Serv-U Version: $ver"
# 檢查配置文件 (Serv-U 使用 .ini 或 註冊表/數據庫,具體視版本)
# 此處為示例:檢查關鍵註冊表鍵值 (假設)
$reg = 'HKLM:\SOFTWARE\RhinoSoft\Serv-U\Domains\YourDomain'
if (Test-Path $reg) {
    $ssl = Get-ItemPropertyValue $reg 'RequireSSL' -ErrorAction SilentlyContinue
    $anon = Get-ItemPropertyValue $reg 'AllowAnonymous' -ErrorAction SilentlyContinue
    $maxUp = Get-ItemPropertyValue $reg 'MaxUploadSpeed' -ErrorAction SilentlyContinue
    $maxDown = Get-ItemPropertyValue $reg 'MaxDownloadSpeed' -ErrorAction SilentlyContinue
    Write-Host "RequireSSL: $([bool]$ssl) | AllowAnonymous: $([bool]$anon) | MaxUp: $maxUp KB/s | MaxDown: $maxDown KB/s"
    if (-not $ssl) { Write-Error "CRITICAL: SSL/TLS NOT ENFORCED!" }
    if ($anon) { Write-Warning "WARNING: Anonymous login ENABLED!" }
}

FTP 服務器是數據流動的關卡,**配置即防線,日誌即眼睛,補丁即盾牌,淘汰才是終極方案**。按清單落地,讓 Serv-U 從「弱點」變「堡壘」。

copyright © 萬盛學電腦網 all rights reserved