Apache 作為全球市佔率最高的 Web 伺服器,廣泛運行於 Unix/Linux 平台。隨著 Web 服務成為企業核心業務,安全威脅也隨之增加,攻擊重心轉向 Web 層面。本文系統梳理 Apache 面臨的主要安全風險,並提供十項具體防護建議,助您打造相對安全的 Apache 環境。
攻擊者利用 CGI 程式靜態記憶體分配缺陷,發送超長請求導致緩衝區溢出,進而執行惡意指令。
若 Apache 以 root 身分運行,系統或守護進程漏洞可能被利用提權,導致伺服器完全失陷。
定期關注 Apache 官網 變更日誌,及時套用安全更新,修補緩衝區溢出等已知漏洞。
修改 httpd.conf:
ServerSignature Off
ServerTokens Prod
進階偽裝:修改原始碼 ap_release.h 與 os/unix/os.h,將伺服器標識偽裝為 Microsoft-IIS/5.0 (Win32),重新編譯安裝。
四大核心目錄應相互獨立,無父子邏輯關係:
ServerRoot:僅 root 可存取DocumentRoot:Web 內容管理員與 apache 用戶/群組可存取ScriptAlias:僅 CGI 開發人員與 apache 用戶可存取CustomLog/ErrorLog:僅 root 可存取範例結構:
/etc/http (ServerRoot)
/etc/logs (Logs)
/var/www/cgi-bin (ScriptAlias)
/var/www/html (DocumentRoot)
遵循最小權限原則,建立專用帳號(如 httpd/webteam),避免使用 nobody/nogroup。設定範例:
groupadd webteam
usermod -G webteam test
chown -R httpd.webteam /www/html
chmod -R 2570 /www/htdocs
chown -R root.root /etc/logs
chmod -R 700 /etc/logs
Options -Indexes FollowSymLinksOrder deny,allow / Allow from all.htaccess 覆蓋:AllowOverride None基於 IP/網段限制存取:
order deny,allow
deny from all
allow from 192.168.1.0/255.255.255.0
使用 .htaccess 實現目錄級認證,較程式碼驗證更安全。大量用戶場景建議啟用資料庫驗證模組(編譯時開啟)。
透過 chroot 將 Apache 限制在特定目錄樹(如 /usr/local/httpd)下,即使被入侵也無法存取系統其他區域。建議使用 jail 工具簡化部署(官網:jmcresearch.com)。
安裝 mod_evasive 模組,快速識別並拒絕同一 IP 對同一 URL 的重複請求。下載:SecurityFocus Tools。
suEXEC 或 CGIWrap 以特定用戶身分執行 CGI,限制損害範圍。exec 指令:Options IncludesNOEXEC。啟用 SSL/TLS 加密敏感頁面傳輸,保護用戶憑證與交易資料,電子商務與 Webmail 必備。
總結:安全是持續過程而非一次性配置。結合補丁管理、最小權限、資訊隱藏、目錄隔離、存取控制、入侵偵測與加密傳輸,可顯著提升 Apache 伺服器的安全態勢。