安全配置和維護Apache WEB Server

來源:互聯網
上載者:User
apache|server|web|安全 前言:在目前的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指令開啟存取權限。

  <directory /usr/local/http/docs/private>
  <limit>
  order deny,allow
  deny from all
  allow from safechina.net
  </limit>
  </directory>

  設定允許來自某個域、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.XXXX.com/pub/來訪問。在防火牆上設定apache反向 Proxy技術,由防火牆代理訪問。



(1)Apache伺服器的設定

  apache伺服器採用預設配置。主目錄為/home/httpd/html,主機網域名稱為Phoenix.XXXX.com,且別名到www.XXXX.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)在防火牆上配置反向 Proxy技術. 
 
  在/etc/httpd/conf/httpd.conf中加入 NameVirtualHost xxx.xxx.xxx.xxx
  # xxx.xxx.xxx.xxx ----->是防火牆外部在互連網上永久IP地址 
  servername www.XXXX.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.XXXX.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.XXXX.com和www.XXXX.com都指向防火牆的外部網地址xxx.xxx.xxx.xxx。用http://www.XXXX.com訪問首頁,用http://download.XXXX.com/pub/訪問公用檔案的下載區。

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

  總結:Apache Server是一個非常優秀,非常棒的伺服器,只要你正確配置和維護好Apache伺服器,你就會感受到Apache Server 所帶來的好處。



  

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。