安全配置和維護(hù)Apache WEB Server
添加時(shí)間:2011-3-18
添加:
admin
在目前的Internet時(shí)代,主頁(yè)已成為樹(shù)立公司形象和展示自我天地的一個(gè)重要手段,配置一臺(tái)強(qiáng)大且安全的Web Server就顯得尤其重要。在眾多的Web Server產(chǎn)品中,Apache是應(yīng)用最為廣泛的一個(gè)產(chǎn)品, 同時(shí)也是一個(gè)設(shè)計(jì)上非常安全的程序。但是,同其它應(yīng)用程序一樣,Apache也存在安全缺陷。本文將詳細(xì)介紹如何正確配置和維護(hù)Apache WEB Server的安全性問(wèn)題等。
一、Apache服務(wù)器的介紹
Apache服務(wù)器它是Internet網(wǎng)上應(yīng)用最為廣泛的Web服務(wù)器軟件之一。Apache服務(wù)器源自美國(guó)國(guó)家超級(jí)技術(shù)計(jì)算應(yīng)用中心(NCSA)的Web服務(wù)器項(xiàng)目中。目前已在互聯(lián)網(wǎng)中占據(jù)了領(lǐng)導(dǎo)地位。Apache服務(wù)器得經(jīng)過(guò)精心配置之后,才能使它適應(yīng)高負(fù)荷,大吞吐量的互聯(lián)網(wǎng)工作。快速、可靠、通過(guò)簡(jiǎn)單的API擴(kuò)展,Perl/Python解釋器可被編譯到服務(wù)器中,且完全免費(fèi),完全源代碼開(kāi)放。如果你需要?jiǎng)?chuàng)建一個(gè)每天有數(shù)百萬(wàn)人訪問(wèn)的Web服務(wù)器,Apache可能是最佳選擇。
二、Apache服務(wù)器的主要安全缺陷
正如我們前言所說(shuō)盡管Apache服務(wù)器應(yīng)用最為廣泛,設(shè)計(jì)上非常安全的程序。但是同其它應(yīng)用程序一樣,Apache也存在安全缺陷。畢竟它是完全源代碼,Apache服務(wù)器的安全缺陷主要是使用HTTP協(xié)議進(jìn)行的拒絕服務(wù)攻擊(denial of service)、緩沖區(qū)溢出攻擊以及被攻擊者獲得root權(quán)限三缺陷和最新的惡意的攻擊者進(jìn)行“拒絕服務(wù)”(DoS)攻擊。合理的網(wǎng)絡(luò)配置能夠保護(hù)Apache服務(wù)器免遭多種攻擊。我們來(lái)介紹一下主要的安全缺陷:
(1)使用HTTP協(xié)議進(jìn)行的拒絕服務(wù)攻??(denial of service)的安全缺陷
這種方法攻擊者會(huì)通過(guò)某些手段使服務(wù)器拒絕對(duì)HTTP應(yīng)答。這樣會(huì)使Apache對(duì)系統(tǒng)資源(CPU時(shí)間和內(nèi)存)需求的劇增,最終造成Apache系統(tǒng)變慢甚至完全癱瘓。
(2)緩沖區(qū)溢出的安全缺陷
該方法攻擊者利用程序編寫(xiě)的一些缺陷,使程序偏離正常的流程。程序使用靜態(tài)分配的內(nèi)存保存請(qǐng)求數(shù)據(jù),攻擊者就可以發(fā)送一個(gè)超長(zhǎng)請(qǐng)求使緩沖區(qū)溢出。比如一些Perl編寫(xiě)的處理用戶(hù)請(qǐng)求的網(wǎng)關(guān)腳本。一旦緩沖區(qū)溢出,攻擊者可以執(zhí)行其惡意指令或者使系統(tǒng)宕機(jī)。
(3)被攻擊者獲得root權(quán)限的安全缺陷
該安全缺陷主要是因?yàn)锳pache服務(wù)器一般以root權(quán)限運(yùn)行(父進(jìn)程),攻擊者會(huì)通過(guò)它獲得root權(quán)限,進(jìn)而控制整個(gè)Apache系統(tǒng)。
(4)惡意的攻擊者進(jìn)行“拒絕服務(wù)”(DoS)攻擊的安全缺陷
這個(gè)最新在6月17日發(fā)現(xiàn)的漏洞,它主要是存在于Apache的chunk encoding中,這是一個(gè)HTTP協(xié)議定義的用于接受web用戶(hù)所提交數(shù)據(jù)的功能。 利用黑客程序可以對(duì)于運(yùn)行在FreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2平臺(tái)上的Apache服務(wù)器均可進(jìn)行有效的攻擊.
所有說(shuō)使用最高和最新安全版本對(duì)于加強(qiáng)Apache Web服務(wù)器的安全是至關(guān)重要的。請(qǐng)廣大Apache服務(wù)器管理員去http://www.apache.org/dist/httpd/下載補(bǔ)丁程序以確保其WEB服務(wù)器安全!
三、正確維護(hù)和配置Apache服務(wù)器
雖然Apache服務(wù)器的開(kāi)發(fā)者非常注重安全性,由于Apache服務(wù)器其龐大的項(xiàng)目,難免會(huì)存在安全隱患。正確維護(hù)和配置Apache WEB服務(wù)器就很重要了。我們應(yīng)注意的一些問(wèn)題:
(1)Apache服務(wù)器配置文件
Apache Web服務(wù)器主要有三個(gè)配置文件,位于/usr/local/apache/conf目錄下。這三個(gè)文件是:
httpd.con----->主配置文件
srm.conf------>填加資源文件
access.conf--->設(shè)置文件的訪問(wèn)權(quán)限
注:具體配置可以參考:http://httpd.apache.org/docs/mod/core.html
(2)Apache服務(wù)器的日志文件
我們可以使用日志格式指令來(lái)控制日志文件的信息。使用LogFormat "%a %l"指令,可以把發(fā)出HTTP請(qǐng)求瀏覽器的IP地址和主機(jī)名記錄到日志文件。出于安全的考慮,在日志中我們應(yīng)知道至少應(yīng)該那些驗(yàn)證失敗的WEB用戶(hù),在http.conf文件中加入LogFormat "%401u"指令可以實(shí)現(xiàn)這個(gè)目的。這個(gè)指令還有其它的許多參數(shù),用戶(hù)可以參考Apache的文檔。另外,Apache的錯(cuò)誤日志文件對(duì)于系統(tǒng)管理員來(lái)說(shuō)也是非常重要的,錯(cuò)誤日志文件中包括服務(wù)器的啟動(dòng)、停止以及CGI執(zhí)行失敗等信息。更多請(qǐng)參看Apache日志系列1-5。
(3)Apache服務(wù)器的目錄安全認(rèn)證
在Apache Server中是允許使用 .htaccess做目錄安全保護(hù)的,欲讀取這保護(hù)的目錄需要先鍵入正確用戶(hù)帳號(hào)與密碼。這樣可做為專(zhuān)門(mén)管理網(wǎng)頁(yè)存放的目錄或做為會(huì)員區(qū)等。
在保護(hù)的目錄放置一個(gè)檔案,檔名為.htaccss
AuthName "會(huì)員專(zhuān)區(qū)"
AuthType "Basic"
AuthUserFile "/var/tmp/xxx.pw" ----->把password放在網(wǎng)站外
require valid-user 到apache/bin目錄,建password檔
% ./htpasswd-c/var/tmp/xxx.pw username1----->第一次建檔要用參數(shù)"-c"
% ./htpasswd/var/tmp/xxx.pw username2
這樣就可以保護(hù)目錄內(nèi)的內(nèi)容,進(jìn)入要用合法的用戶(hù).
注:采用了Apache內(nèi)附的模組。也可以采用在httpd.conf中加入:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
(4)Apache服務(wù)器訪問(wèn)控制
我們就要看三個(gè)配置文件中的第三個(gè)文件了,即access.conf文件,它包含一些指令控制允許什么用戶(hù)訪問(wèn)Apache目錄。應(yīng)該把deny from all設(shè)為初始化指令,再使用allow from指令打開(kāi)訪問(wèn)權(quán)限。
order deny,allow
deny from all
allow from safechina.net
設(shè)置允許來(lái)自某個(gè)域、IP地址或者IP段的訪問(wèn)。
(5)Apache服務(wù)器的密碼保護(hù)問(wèn)題
我們?cè)偈褂?htaccess文件把某個(gè)目錄的訪問(wèn)權(quán)限賦予某個(gè)用戶(hù)。系統(tǒng)管理員需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打開(kāi)目錄的訪問(wèn)控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix
四、設(shè)置Apache服務(wù)器的WEB和文件服務(wù)器
我們?cè)贏pache服務(wù)器上存放WEB服務(wù)器的文件,供用戶(hù)訪問(wèn),并設(shè)置/home/ftp/pub目錄為文件存放區(qū)域,用http://download.XXXX.com/pub/來(lái)訪問(wèn)。在防火墻上設(shè)置apache反向代理技術(shù),由防火墻代理訪問(wèn)。
(1)Apache服務(wù)器的設(shè)置
apache服務(wù)器采用默認(rèn)配置。主目錄
為/home/httpd/html,主機(jī)域名為Phoenix.XXXX.com,且別名到www.XXXX.com中,并且設(shè)置srm.conf加一行別名定義如下:
Alias/pub/home/ftp/pub/
更改默認(rèn)應(yīng)用程序類(lèi)型定義如下:
DefaultType application/octet-stream
最后在/etc/httpd/conf/access.conf中增加一項(xiàng)定義
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
注:Options Indexes允許在找不到index.html文件的情況下允許列出目錄/文件列表。AllowOverride AuthConfig允許做基礎(chǔ)的用戶(hù)名和口令驗(yàn)證。這樣的話(huà),需要在/home/ftp/pub目錄下放入.htaccess,內(nèi)容如下:
用# htpasswd -c /etc/.usrpasswd user1 分別創(chuàng)建不同的允許訪問(wèn)/pub下文件服務(wù)的外部用戶(hù)名和口令。
(2)在防火墻上配置反向代理技術(shù).
在/etc/httpd/conf/httpd.conf中加入 NameVirtualHost xxx.xxx.xxx.xxx
# xxx.xxx.xxx.xxx ----->是防火墻外部在互聯(lián)網(wǎng)上永久IP地址
一、Apache服務(wù)器的介紹
Apache服務(wù)器它是Internet網(wǎng)上應(yīng)用最為廣泛的Web服務(wù)器軟件之一。Apache服務(wù)器源自美國(guó)國(guó)家超級(jí)技術(shù)計(jì)算應(yīng)用中心(NCSA)的Web服務(wù)器項(xiàng)目中。目前已在互聯(lián)網(wǎng)中占據(jù)了領(lǐng)導(dǎo)地位。Apache服務(wù)器得經(jīng)過(guò)精心配置之后,才能使它適應(yīng)高負(fù)荷,大吞吐量的互聯(lián)網(wǎng)工作。快速、可靠、通過(guò)簡(jiǎn)單的API擴(kuò)展,Perl/Python解釋器可被編譯到服務(wù)器中,且完全免費(fèi),完全源代碼開(kāi)放。如果你需要?jiǎng)?chuàng)建一個(gè)每天有數(shù)百萬(wàn)人訪問(wèn)的Web服務(wù)器,Apache可能是最佳選擇。
二、Apache服務(wù)器的主要安全缺陷
正如我們前言所說(shuō)盡管Apache服務(wù)器應(yīng)用最為廣泛,設(shè)計(jì)上非常安全的程序。但是同其它應(yīng)用程序一樣,Apache也存在安全缺陷。畢竟它是完全源代碼,Apache服務(wù)器的安全缺陷主要是使用HTTP協(xié)議進(jìn)行的拒絕服務(wù)攻擊(denial of service)、緩沖區(qū)溢出攻擊以及被攻擊者獲得root權(quán)限三缺陷和最新的惡意的攻擊者進(jìn)行“拒絕服務(wù)”(DoS)攻擊。合理的網(wǎng)絡(luò)配置能夠保護(hù)Apache服務(wù)器免遭多種攻擊。我們來(lái)介紹一下主要的安全缺陷:
(1)使用HTTP協(xié)議進(jìn)行的拒絕服務(wù)攻??(denial of service)的安全缺陷
這種方法攻擊者會(huì)通過(guò)某些手段使服務(wù)器拒絕對(duì)HTTP應(yīng)答。這樣會(huì)使Apache對(duì)系統(tǒng)資源(CPU時(shí)間和內(nèi)存)需求的劇增,最終造成Apache系統(tǒng)變慢甚至完全癱瘓。
(2)緩沖區(qū)溢出的安全缺陷
該方法攻擊者利用程序編寫(xiě)的一些缺陷,使程序偏離正常的流程。程序使用靜態(tài)分配的內(nèi)存保存請(qǐng)求數(shù)據(jù),攻擊者就可以發(fā)送一個(gè)超長(zhǎng)請(qǐng)求使緩沖區(qū)溢出。比如一些Perl編寫(xiě)的處理用戶(hù)請(qǐng)求的網(wǎng)關(guān)腳本。一旦緩沖區(qū)溢出,攻擊者可以執(zhí)行其惡意指令或者使系統(tǒng)宕機(jī)。
(3)被攻擊者獲得root權(quán)限的安全缺陷
該安全缺陷主要是因?yàn)锳pache服務(wù)器一般以root權(quán)限運(yùn)行(父進(jìn)程),攻擊者會(huì)通過(guò)它獲得root權(quán)限,進(jìn)而控制整個(gè)Apache系統(tǒng)。
(4)惡意的攻擊者進(jìn)行“拒絕服務(wù)”(DoS)攻擊的安全缺陷
這個(gè)最新在6月17日發(fā)現(xiàn)的漏洞,它主要是存在于Apache的chunk encoding中,這是一個(gè)HTTP協(xié)議定義的用于接受web用戶(hù)所提交數(shù)據(jù)的功能。 利用黑客程序可以對(duì)于運(yùn)行在FreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2平臺(tái)上的Apache服務(wù)器均可進(jìn)行有效的攻擊.
所有說(shuō)使用最高和最新安全版本對(duì)于加強(qiáng)Apache Web服務(wù)器的安全是至關(guān)重要的。請(qǐng)廣大Apache服務(wù)器管理員去http://www.apache.org/dist/httpd/下載補(bǔ)丁程序以確保其WEB服務(wù)器安全!
三、正確維護(hù)和配置Apache服務(wù)器
雖然Apache服務(wù)器的開(kāi)發(fā)者非常注重安全性,由于Apache服務(wù)器其龐大的項(xiàng)目,難免會(huì)存在安全隱患。正確維護(hù)和配置Apache WEB服務(wù)器就很重要了。我們應(yīng)注意的一些問(wèn)題:
(1)Apache服務(wù)器配置文件
Apache Web服務(wù)器主要有三個(gè)配置文件,位于/usr/local/apache/conf目錄下。這三個(gè)文件是:
httpd.con----->主配置文件
srm.conf------>填加資源文件
access.conf--->設(shè)置文件的訪問(wèn)權(quán)限
注:具體配置可以參考:http://httpd.apache.org/docs/mod/core.html
(2)Apache服務(wù)器的日志文件
我們可以使用日志格式指令來(lái)控制日志文件的信息。使用LogFormat "%a %l"指令,可以把發(fā)出HTTP請(qǐng)求瀏覽器的IP地址和主機(jī)名記錄到日志文件。出于安全的考慮,在日志中我們應(yīng)知道至少應(yīng)該那些驗(yàn)證失敗的WEB用戶(hù),在http.conf文件中加入LogFormat "%401u"指令可以實(shí)現(xiàn)這個(gè)目的。這個(gè)指令還有其它的許多參數(shù),用戶(hù)可以參考Apache的文檔。另外,Apache的錯(cuò)誤日志文件對(duì)于系統(tǒng)管理員來(lái)說(shuō)也是非常重要的,錯(cuò)誤日志文件中包括服務(wù)器的啟動(dòng)、停止以及CGI執(zhí)行失敗等信息。更多請(qǐng)參看Apache日志系列1-5。
(3)Apache服務(wù)器的目錄安全認(rèn)證
在Apache Server中是允許使用 .htaccess做目錄安全保護(hù)的,欲讀取這保護(hù)的目錄需要先鍵入正確用戶(hù)帳號(hào)與密碼。這樣可做為專(zhuān)門(mén)管理網(wǎng)頁(yè)存放的目錄或做為會(huì)員區(qū)等。
在保護(hù)的目錄放置一個(gè)檔案,檔名為.htaccss
AuthName "會(huì)員專(zhuān)區(qū)"
AuthType "Basic"
AuthUserFile "/var/tmp/xxx.pw" ----->把password放在網(wǎng)站外
require valid-user 到apache/bin目錄,建password檔
% ./htpasswd-c/var/tmp/xxx.pw username1----->第一次建檔要用參數(shù)"-c"
% ./htpasswd/var/tmp/xxx.pw username2
這樣就可以保護(hù)目錄內(nèi)的內(nèi)容,進(jìn)入要用合法的用戶(hù).
注:采用了Apache內(nèi)附的模組。也可以采用在httpd.conf中加入:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
(4)Apache服務(wù)器訪問(wèn)控制
我們就要看三個(gè)配置文件中的第三個(gè)文件了,即access.conf文件,它包含一些指令控制允許什么用戶(hù)訪問(wèn)Apache目錄。應(yīng)該把deny from all設(shè)為初始化指令,再使用allow from指令打開(kāi)訪問(wèn)權(quán)限。
order deny,allow
deny from all
allow from safechina.net
設(shè)置允許來(lái)自某個(gè)域、IP地址或者IP段的訪問(wèn)。
(5)Apache服務(wù)器的密碼保護(hù)問(wèn)題
我們?cè)偈褂?htaccess文件把某個(gè)目錄的訪問(wèn)權(quán)限賦予某個(gè)用戶(hù)。系統(tǒng)管理員需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打開(kāi)目錄的訪問(wèn)控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix
四、設(shè)置Apache服務(wù)器的WEB和文件服務(wù)器
我們?cè)贏pache服務(wù)器上存放WEB服務(wù)器的文件,供用戶(hù)訪問(wèn),并設(shè)置/home/ftp/pub目錄為文件存放區(qū)域,用http://download.XXXX.com/pub/來(lái)訪問(wèn)。在防火墻上設(shè)置apache反向代理技術(shù),由防火墻代理訪問(wèn)。
(1)Apache服務(wù)器的設(shè)置
apache服務(wù)器采用默認(rèn)配置。主目錄
為/home/httpd/html,主機(jī)域名為Phoenix.XXXX.com,且別名到www.XXXX.com中,并且設(shè)置srm.conf加一行別名定義如下:
Alias/pub/home/ftp/pub/
更改默認(rèn)應(yīng)用程序類(lèi)型定義如下:
DefaultType application/octet-stream
最后在/etc/httpd/conf/access.conf中增加一項(xiàng)定義
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
注:Options Indexes允許在找不到index.html文件的情況下允許列出目錄/文件列表。AllowOverride AuthConfig允許做基礎(chǔ)的用戶(hù)名和口令驗(yàn)證。這樣的話(huà),需要在/home/ftp/pub目錄下放入.htaccess,內(nèi)容如下:
[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 分別創(chuàng)建不同的允許訪問(wèn)/pub下文件服務(wù)的外部用戶(hù)名和口令。
(2)在防火墻上配置反向代理技術(shù).
在/etc/httpd/conf/httpd.conf中加入 NameVirtualHost xxx.xxx.xxx.xxx
# xxx.xxx.xxx.xxx ----->是防火墻外部在互聯(lián)網(wǎng)上永久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服務(wù)器的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服務(wù)器的IP地址。 |
設(shè)置防火墻上的DNS,讓download.XXXX.com和www.XXXX.com都指向防火墻的外部網(wǎng)地址xxx.xxx.xxx.xxx。用http://www.XXXX.com訪問(wèn)主頁(yè),用http://download.XXXX.com/pub/訪問(wèn)公共文件的下載區(qū)。
注:還需要在apache服務(wù)器主機(jī)上建立目錄/var/log/httpd/download/,否則會(huì)出錯(cuò)。另外,也可以設(shè)置防火墻主機(jī)上的/home/httpd/html/index.html的屬性為750來(lái)阻止訪問(wèn),這是防外部用戶(hù)能訪問(wèn)到防火墻上的Apache服務(wù)器的http://www.XXXX.com中。
總結(jié):Apache Server是一個(gè)非常優(yōu)秀,非常棒的服務(wù)器,只要你正確配置和維護(hù)好Apache服務(wù)器,你就會(huì)感受到Apache Server 所帶來(lái)的好處。
關(guān)鍵字:安全配置 維護(hù) Apache WEB Server
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶(hù)
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶(hù)的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解