1. 程式人生 > >Web Server 配置安全

Web Server 配置安全

訪問 性能 命令執行 sca 服務器端 安全加固 管理後臺 減少 .net

常見 Web Server:Apache Httpd、Nginx、LightHttp。Web Server 安全:自身是否安全 + 是否提供了可用的安全功能。

Apache 安全

Apache 的漏洞大多是 Apache 的 module 造成,其核心高危漏洞幾乎沒有。默認啟動的 Module 出現過的高危漏洞很少,大多數高危漏洞集中在默認沒有安裝或啟用的 Module 上。

檢查 Apache 安全的第一件事就是檢查 Module 的安裝情況,根據 “最小權限原則”,應該盡可能減少不必要的 Module;對於要使用的 Module 則檢查其對應版本是否存在已知的安全漏洞。

定制好了 Apache 的安裝包後,需要為 Apache 單獨建立一個 user/group,然後指定 Apache 進程以單獨的用戶身份運行。禁止使用高權限身份運行!運行 Apache 的用戶不應該具備 shell。

要保護好 Apache Log,比如實時地發送到遠程的 syslog 服務器,以防攻擊者入侵後刪除痕跡。

Nginx 安全

Nginx 高性能,高並發。出現較多高危漏洞,在官網 http://nginx.org/en/security_advisories.html 公布已發現的安全問題。要緊密關註漏洞信息,及時更新到安全版本。

Nginx 的配置靈活,在對抗 DDOS 和 CC 攻擊方面也能起到一定的緩解作用;在 Nginx 的配置中還可以做一些簡單的條件判斷,比如客戶端 User_Agent 具有什麽特征,或者來自某個特定 referer、IP 等條件,定制特別的響應動作,比如返回錯誤號或重定向。

jBoss 遠程命令執行

jBoss 是 J2EE 環境中流行的 Web 容器,如果配置不當可能造成遠程命令執行。

jBoss 在默認安裝時由一個管理後臺,JMX-Console。該後臺給管理員一些高級功能,包括配置 MBeans。通過 8080 端口訪問 /jmx-console 能夠進入管理界面,默認安裝時訪問 JMX-Console 是沒有任何認證的

在 JMX-Console 中,有多種可以遠程執行命令的方法:

通過 DeploymentScanner 遠程加載一個 war 包:默認 DeploymentScanner 將檢查 URL 是否是 file:/[JBOSSHOME]/server/default/deploy/,但通過 addURL() 方法卻可以添加一個遠程 war 包。

通過 BSH(Bean Shell)Deployment 也能部署 war 包:BSH 能夠執行一次性的腳本或創建服務。

出於安全防禦的目的,在做安全加固的時候,應該刪除 JMX-Console 後臺:刪除 jmx-console.war 和 web-console.war。如果業務上不得不使用 JMX-Console,則應該使用一個強密碼,並且運行 JMX-Console 的端口不應該向 Internet 開放。

Tomcat 遠程命令執行

Apache Tomcat 與 jBoss 一樣,默認運行在 8080 端口。提供的 Tomcat Manager 的操作與 JMX-Console 類似,管理員可以在 Tomcat Manager 中部署 war 包(需要有 manager 權限,該權限在配置文件 tomcat-users.xml 中定義)

雖然 Tomcat 有後臺密碼認證,但仍然建議刪除這個後臺,以免被攻破後帶來安全隱患。

HTTP Parameter Pollution

通過 GET 或 POST 向服務器發起請求時,提交兩個相同的參數,例如:/?a=value1&a=value2。在某些服務端環境中只會取第一個或最後一個參數;而在另一些環境中,比如 .NET,則會變成 a=value1,value2。這種特性在繞過一些服務器端的邏輯判斷時很有用。

Web Server 配置安全