歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

配置和維護Apache WEB Server 安全性


前言:在目前的Internet時代,主頁已成為樹立公司形象和展示自我天地的一個重要手段,配置一台強大且安全的Web Server就顯得尤其重要。在眾多的Web Server產品中,Apache是應用最為廣泛的一個產品,同時也是一個設計上非常安全的程序。

但是,同其它應用程序一樣,Apache也存在安全缺陷。本文將詳細介紹如何正確配置和維護Apache WEB Server的安全性問題等。

一,Apache服務器的介紹

Apache服務器它是Internet網上應用最為廣泛的Web服務器軟件之一。Apache服務器源自美國國家超級技術計算應用中心(NCSA)的Web服務器項目中。目前已在互聯網中占據了領導地位。Apache服務器得經過精心配置之後,才能使它適應高負荷,大吞吐量的互聯網工作。快速、可靠、通過簡單的API擴展,Perl/Python解釋器可被編譯到服務器中,且完全免費,完全源代碼開放。如果你需要創建一個每天有數百萬人訪問的Web服務器,Apache可能是最佳選擇。

二,Apache服務器的主要安全缺陷

正如我們前言所說盡管Apache服務器應用最為廣泛,設計上非常安全的程序。但是同其它應用程序一樣,Apache也存在安全缺陷。畢竟它是完全源代碼,Apache服務器的安全缺陷主要是使用HTTP協議進行的拒絕服務攻擊(denial of service)、緩沖區溢出攻擊以及被攻擊者獲得root權限三缺陷和最新的惡意的攻擊者進行“拒絕服務”(DoS)攻擊。合理的網絡配置能夠保護Apache服務器免遭多種攻擊。我們來介紹一下主要的安全缺陷:

(1)使用HTTP協議進行的拒絕服務攻擊(denial of service)的安全缺陷

這種方法攻擊者會通過某些手段使服務器拒絕對HTTP應答。這樣會使Apache對系統資源(CPU時間和內存)需求的劇增,最終造成Apache系統變慢甚至完全癱瘓。

(2)緩沖區溢出的安全缺陷

該方法攻擊者利用程序編寫的一些缺陷,使程序偏離正常的流程。程序使用靜態分配的內存保存請求數據,攻擊者就可以發送一個超長請求使緩沖區溢出。比如一些Perl編寫的處理用戶請求的網關腳本。一旦緩沖區溢出,攻擊者可以執行其惡意指令或者使系統宕機。

(3)被攻擊者獲得root權限的安全缺陷

該安全缺陷主要是因為Apache服務器一般以root權限運行(父進程),攻擊者會通過它獲得root權限,進而控制整個Apache系統。

(4)惡意的攻擊者進行“拒絕服務”(DoS)攻擊的安全缺陷

這個最新在6月17日發現的漏洞,它主要是存在於Apache的chunk encoding中,這是一個HTTP協議定義的用於接受web用戶所提交數據的功能。 利用黑客程序可以對於運行在FreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2平台上的Apache服務器均可進行有效的攻擊.

所有說使用最高和最新安全版本對於加強Apache Web服務器的安全是至關重要的。請廣大Apache服務器管理員去http://www.apache.org/dist/httpd/下載補丁程序以確保其WEB服務器安全!

三, 正確維護和配置Apache服務器

雖然Apache服務器的開發者非常注重安全性,由於Apache服務器其龐大的項目,難免會存在安全隱患。正確維護和配置Apache WEB服務器就很重要了。我們應注意的一些問題:

(1)Apache服務器配置文件

Apache Web服務器主要有三個配置文件,位於/usr/local/apache/conf目錄下。這三個文件是:

httpd.con----->主配置文件

srm.conf------>填加資源文件

access.conf--->設置文件的訪問權限

注:具體配置可以參考:http://httpd.apache.org/docs/mod/core.html

(2)Apache服務器的日志文件

我們可以使用日志格式指令來控制日志文件的信息。使用Logformat "%a %l"指令,可以把發出HTTP請求浏覽器的IP地址和主機名記錄到日志文件。出於安全的考慮,在日志中我們應知道至少應該那些驗證失敗的WEB用戶,在http.conf文件中加入Logformat "%401u"指令可以實現這個目的。這個指令還有其它的許多參數,用戶可以參考Apache的文檔。另外,Apache的錯誤日志文件對於系統管理員來說也是非常重要的,錯誤日志文件中包括服務器的啟動、停止以及CGI執行失敗等信息。更多請參看Apache日志系列1-5。

(3)Apache服務器的目錄安全認證

在Apache Server中是允許使用 .htaccess做目錄安全保護的,欲讀取這保護的目錄需要先鍵入正確用戶帳號與密碼。這樣可做為專門管理網頁存放的目錄或做為會員區等。

在保護的目錄放置一個檔案,檔名為.htaccss

AuthName "會員專區"

AuthType "Basic"

AuthUserFile "/var/tmp/xxx.pw" ----->把password放在網站外

require valid-user

到apache/bin目錄,建password檔

% ./htpasswd -c /var/tmp/xxx.pw username1 ----->第一次建檔要用參數"-c"

% ./htpasswd /var/tmp/xxx.pw username2

這樣就可以保護目錄內的內容,進入要用合法的用戶.

注:采用了Apache內附的模組。也可以采用在httpd.conf中加入:

  options indexes followsymlinks  allowoverride authconfig  order allow,deny  allow from all 

   (4)Apache服務器訪問控制

我們就要看三個配置文件中的第三個文件了,即access.conf文件,它包含一些指令控制允許什麼用戶訪問Apache目錄。應該把deny from all設為初始化指令,再使用allow from指令打開訪問權限。

   order deny,allow deny from all allow from safechina.net

   設置允許來自某個域、IP地址或者IP段的訪問。

(5)Apache服務器的密碼保護問題

我們再使用.htaccess文件把某個目錄的訪問權限賦予某個用戶。系統管理員需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打開目錄的訪問控制。如:

AuthName PrivateFiles AuthType Basic AuthUserFile /path/to/httpd/users require Phoenix # htpasswd -c /path/to/httpd/users Phoenix

四,設置Apache服務器的WEB和文件服務器

我們在Apache服務器上存放WEB服務器的文件,供用戶訪問,並設置/home/ftp/pub目錄為文件存放區域,用http://download.your.com/pub/來訪問。在防火牆上設置apache反向代理技術,由防火牆代理訪問。 

(1)Apache服務器的設置 

apache服務器采用默認配置。主目錄為/home/httpd/html,主機域名為Phoenix.your.com,且別名到www.your.com中, 並且設置srm.conf加一行別名定義如下: 

Alias /pub /home/ftp/pub/ 

更改默認應用程序類型定義如下: 

DefaultType application/octet-stream 

最後在/etc/httpd/conf/access.conf中增加一項定義 

   Options Indexes  AllowOverride AuthConfig  order allow,deny  allow from all 

   注:Options Indexes允許在找不到index.html文件的情況下允許列出目錄/文件列表。AllowOverride AuthConfig允許做基本的用戶名和口令驗證。這樣的話,需要在/home/ftp/pub目錄下放入.htaccess,內容如下: 

   [root@shopu pub]# more .htaccess  AuthName Branch Office Public Software Download Area  AuthType Basic  AuthUserFile /etc/.usrpasswd  require valid-user 

   用# htpasswd -c /etc/.usrpasswd user1  分別創建不同的允許訪問/pub下文件服務的外部用戶名和口令。 

(2)在防火牆上配置反向代理技術. 

在/etc/httpd/conf/httpd.conf  中加入 NameVirtualHost xxx.xxx.xxx.xxx 

# xxx.xxx.xxx.xxx ----->是防火牆外部在互聯網上永久IP地址

 

  servername www.your.com    errorlog /var/log/httpd/error_log    transferlog /var/log/httpd/access_log    rewriteengine on    proxyrequests off    usecanonicalname off    rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 Apache服務器的IP地址。      servername http://download.your.com/pub/   errorlog /var/log/httpd/download/error_log    transferlog /var/log/httpd/download/access_log    rewriteengine on    proxyrequests off    usecanonicalname off    rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 同上Apache服務器的IP地址。

   設置防火牆上的DNS,讓download.your.com和www.your.com都指向防火牆的外部網地址xxx.xxx.xxx.xxx。用http://www.your.com訪問主頁,用http://download.your.com/pub/訪問公共文件的下載區。

注:還需要在apache服務器主機上建立目錄/var/log/httpd/download/,否則會出錯。另外,也可以設置防火牆主機上的/home/httpd/html/index.html的屬性為750來阻止訪問,這是防外部用戶能訪問到防火牆上的Apache服務器的http://www.your.com中。 

總結:Apache Server是一個非常優秀,非常棒的服務器,只要你正確配置和維護好Apache服務器

Copyright © Linux教程網 All Rights Reserved