Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Web 伺服器安全防禦全景指南:從埠口掃描到 CGI 輸入驗證的纵深防禦

編輯:關於伺服器

Web 伺服器作為企業對外服務的前哨,面臨多層次威脅。本文系統梳理三大類核心風險——「過度服務暴露」、「私有資料誤公開」、「不可信輸入盲目信任」,並提供以 nmap、lsof、rpcinfo、showmount 為核心的偵察工具鏈,以及 Apache/.htaccess、PHP/Session、SSH/SCP 等實戰加固方案。

風險類別一:提供不應提供的服務 — 攻擊面最小化

埠口掃描與服務清查

# 全埠掃描並過濾開放埠
nmap -sS -T4 -p 1-65535 www.example.server | grep open

# 輸出範例:
# 21/tcp  open  ftp
# 22/tcp  open  ssh
# 25/tcp  open  smtp
# 80/tcp  open  http
# 111/tcp open  sunrpc  <-- 高風險
# 3306/tcp open  mysql   <-- 高風險
# 4333/tcp open  msql    <-- 極高風險

服務裁決矩陣

服務風險等級處置建議
SSH (22)低 (若為最新版)保留,強制金鑰認證、禁用密碼、修改預設埠
HTTP/HTTPS (80/443)業務必需保留,部署 WAF、啟用 HSTS、CSP
FTP (21)中僅允許匿名下載;管理上傳改用 SCP/SFTP
SMTP (25)業務必需保留,啟用 STARTTLS、SPF/DKIM/DMARC
SunRPC (111)高防火牆封鎖對外,內網若需 NFS 改用 Kerberos 加密
MySQL (3306) / mSQL (4333)極高嚴禁對外開放,應用層連接走 Unix Socket 或內網私有 IP
SNMP (161/udp)高若非必須關閉;必須用 SNMPv3 + 強社群字串 + ACL 限制來源

進程-埠口關聯定位:lsof

# 列出所有網路連線與擁有進程
lsof -P -n -i

# 針對特定埠 (如 139/SMB)
lsof -P -n -i tcp:139

輸出範例:smbd 276 root 5u IPv4 175 TCP *:139 (LISTEN) → 確認服務身分,決策保留/停用。

風險類別二:私有資料誤公開 — 目錄結構與存取控制隔離

根目錄分離架構 (最佳實踐)

/home/www/servers/www.customer.com/        <-- FTP 根目錄 (使用者可見)
├── pages/                                  <-- Web DocumentRoot (公開可存取)
│   ├── index.php
│   └── images/
├── private/                                <-- 私有資料 (Web 不可見)
│   ├── orders.log
│   ├── config.db
│   └── debug.trace
└── .htaccess (若無法分離目錄時的次佳方案)
  • FTP 對應 / → 使用者可讀寫 pages/ 與 private/。
  • Web DocumentRoot 指向 pages/ → 瀏覽器永無法存取 private/ 下檔案。

次佳方案:.htaccess 封鎖 (僅限 Apache)

# /home/www/servers/www.customer.com/private/.htaccess
Order Deny,Allow
Deny from All

風險: 若主配置 AllowOverride Limit 被關閉,防護失效。根目錄分離為唯一可靠架構。

多租戶環境的符號連結攻擊防禦

惡意租戶建立 ln -s /home/www/servers/victim.com/private /home/www/servers/attacker.com/pages/leak,透過自身 Web 存取他人私有檔案。

# Apache 主配置 httpd.conf 徹底禁用符號連結追蹤

    Options -FollowSymLinks
    AllowOverride None

# 虛擬主機層級嚴禁覆蓋開啟

搭配 suexec / PHP-FPM pool per user 以使用者身分執行 CGI/PHP,配合 open_basedir 限制 PHP 跨目錄存取。

風險類別三:不可信輸入盲目信任 — 輸入驗證與輸出編碼

不可信資料來源清單

  • HTTP 參數:GET, POST, COOKIE
  • HTTP 標頭:Referer, User-Agent, X-Forwarded-For, 所有 HTTP_* 變數
  • 伺服器變數:REMOTE_ADDR (可偽造), REQUEST_URI

經典錯誤:信任 Referer 防 CSRF


正確模式: 同步驗證 所有輸入參數 + 使用 CSRF Token (隨機、單次、綁定 Session)。

統一輸入驗證管道 (PHP 範例)

 $rule) {
        $val = $input[$field] ?? '';
        // 白名單驗證:型別、長度、格式、範圍
        if ($rule['type'] === 'int')   { $val = filter_var($val, FILTER_VALIDATE_INT, ['options'=>['min_range'=>$rule['min']??0, 'max_range'=>$rule['max']??PHP_INT_MAX]]); }
        elseif ($rule['type'] === 'email') { $val = filter_var($val, FILTER_VALIDATE_EMAIL); }
        elseif ($rule['type'] === 'alpha') { $val = preg_match('/^[a-zA-Z]+$/', $val) ? $val : false; }
        // ... 其他規則
        if ($val === false) throw new InvalidArgumentException("Invalid $field");
        $clean[$field] = $val;
    }
    return $clean;
}

// 應用層僅使用已驗證的 $clean 資料
$rules = ['id'=>['type'=>'int','min'=>1], 'email'=>['type'=>'email']];
$clean = validate_input($_POST, $rules);
$pdo->prepare("SELECT * FROM users WHERE id=:id AND email=:email")->execute($clean);
?>

狀態管理:Session 而非 Hidden Field






// PHP: $_SESSION['cart'] = ['items'=>..., 'total'=>999.00];
// Java: session.setAttribute("cart", cartObj);
// ASP.NET: Session["cart"] = cartObj;

偵察工具鏈速查表

工具用途關鍵指令
nmap埠口掃描、服務版本偵測、OS 指紋nmap -sV -O -A target
lsof本機進程-埠口-檔案關聯lsof -P -n -i
nslookup / digDNS 區域傳輸、記錄枚舉dig axfr @ns.example.com example.com
rpcinfo / showmountNFS/RPC 服務枚舉、匿名掛載檢測showmount -e target
Ethereal/Wireshark封包深度分析、明文密碼捕獲Follow TCP Stream
Cheops網路拓撲視覺化、主機類型識別GUI 操作

總結:纵深防禦檢核清單

  1. 網路層:防火牆預設拒絕,僅開放業務必需埠;SNMPv3 + ACL;內外網 DNS 分離。
  2. 主機層:最小化服務;lsof 定期審計;檔案系統 ACL + 無執行權限掛載;日誌集中化與異常告警。
  3. 應用層:DocumentRoot 與私有資料目錄物理分離;禁用 FollowSymLinks;統一輸入驗證管道;CSRF Token + SameSite Cookie;參數化查詢/ORM 防 SQLi;輸出編碼防 XSS。
  4. 傳輸層:全站 HTTPS (HSTS);管理介面強制 VPN/跳板機 + MFA;檔案傳輸僅 SCP/SFTP。
  5. 監控層:WAF 規則更新自動化;日誌關聯分析 (SIEM);滲透測試週期化;事故響應演練。

Web 伺服器安全非單一產品可解,而是「架構隔離、最小權限、零信任輸入、持續可見」四大支柱構成的系統工程。以本文工具鏈與模式為起點,建立屬於組織的標準化加固基線與驗證閉環。

Copyright © Windows教程網 All Rights Reserved