正確配置與維護Apache安全性設(shè)置方法
更新時間:2010年12月17日 10:36:08 作者:
Apache Server是一個非常優(yōu)秀,非常棒的服務(wù)器,只要你正確配置和維護好Apache服務(wù)器,你就會感受到Apache Server 所帶來的好處,同樣希望你能夠通過閱讀本文達到理論和實踐雙豐收的目的。
一,Apache服務(wù)器的介紹
Apache服務(wù)器它是Internet網(wǎng)上應(yīng)用最為廣泛的Web服務(wù)器軟件之一。Apache服務(wù)器源自美國國家超級技術(shù)計算應(yīng)用中心(NCSA)的 Web服務(wù)器項目中。目前已在互聯(lián)網(wǎng)中占據(jù)了領(lǐng)導(dǎo)地位。Apache服務(wù)器得經(jīng)過精心配置之后,才能使它適應(yīng)高負荷,大吞吐量的互聯(lián)網(wǎng)工作??焖佟⒖煽俊⑼ㄟ^簡單的API擴展,Perl/Python解釋器可被編譯到服務(wù)器中,且完全免費,完全源代碼開放。如果你需要創(chuàng)建一個每天有數(shù)百萬人訪問的Web服務(wù)器,Apache可能是最佳選擇。
二,Apache服務(wù)器的主要安全缺陷
正如我們前言所說盡管Apache服務(wù)器應(yīng)用最為廣泛,設(shè)計上非常安全的程序。但是同其它應(yīng)用程序一樣,Apache也存在安全缺陷。畢竟它是完全源代碼,Apache服務(wù)器的安全缺陷主要是使用HTTP協(xié)議進行的拒絕服務(wù)攻擊(denial of service)、緩沖區(qū)溢出攻擊以及被攻擊者獲得 root權(quán)限三缺陷和最新的惡意的攻擊者進行“拒絕服務(wù)”(DoS)攻擊。合理的網(wǎng)絡(luò)配置能夠保護Apache服務(wù)器免遭多種攻擊。我們來介紹一下主要的安全缺陷:
(1)使用HTTP協(xié)議進行的拒絕服務(wù)攻擊(denial of service)的安全缺陷
這種方法攻擊者會通過某些手段使服務(wù)器拒絕對HTTP應(yīng)答。這樣會使Apache對系統(tǒng)資源(CPU時間和內(nèi)存)需求的劇增,最終造成Apache系統(tǒng)變慢甚至完全癱瘓。
(2)緩沖區(qū)溢出的安全缺陷
該方法攻擊者利用程序編寫的一些缺陷,使程序偏離正常的流程。程序使用靜態(tài)分配的內(nèi)存保存請求數(shù)據(jù),攻擊者就可以發(fā)送一個超長請求使緩沖區(qū)溢出。比如一些Perl編寫的處理用戶請求的網(wǎng)關(guān)腳本。一旦緩沖區(qū)溢出,攻擊者可以執(zhí)行其惡意指令或者使系統(tǒng)宕機。
(3)被攻擊者獲得root權(quán)限的安全缺陷
該安全缺陷主要是因為Apache服務(wù)器一般以root權(quán)限運行(父進程),攻擊者會通過它獲得root權(quán)限,進而控制整個Apache系統(tǒng)。
(4)惡意的攻擊者進行“拒絕服務(wù)”(DoS)攻擊的安全缺陷
這個最新在6月17日發(fā)現(xiàn)的漏洞,它主要是存在于Apache的chunk encoding中,這是一個HTTP協(xié)議定義的用于接受web用戶所提交數(shù)據(jù)的功能。 利用黑客程序可以對于運行在FreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2平臺上的 Apache服務(wù)器均可進行有效的攻擊.
所有說使用最高和最新安全版本對于加強Apache Web服務(wù)器的安全是至關(guān)重要的。請廣大Apache服務(wù)器管理員去http://www.apache.org/dist/httpd/下載補丁程序以確保其WEB服務(wù)器安全!
三, 正確維護和配置Apache服務(wù)器
雖然Apache服務(wù)器的開發(fā)者非常注重安全性,由于Apache服務(wù)器其龐大的項目,難免會存在安全隱患。正確維護和配置Apache WEB服務(wù)器就很重要了。我們應(yīng)注意的一些問題:
(1)Apache服務(wù)器配置文件
Apache Web服務(wù)器主要有三個配置文件,位于/usr/local/apache/conf目錄下。這三個文件是:
httpd.con-----〉主配置文件
srm.conf------〉填加資源文件
access.conf---〉設(shè)置文件的訪問權(quán)限
注:具體配置可以參考:http://httpd.apache.org/docs/mod/core.html
(2)Apache服務(wù)器的日志文件
我們可以使用日志格式指令來控制日志文件的信息。使用Logformat “%a %l“指令,可以把發(fā)出HTTP請求瀏覽器的IP地址和主機名記錄到日志文件。出于安全的考慮,在日志中我們應(yīng)知道至少應(yīng)該那些驗證失敗的WEB用戶,在http.conf文件中加入Logformat “%401u“指令可以實現(xiàn)這個目的。這個指令還有其它的許多參數(shù),用戶可以參考Apache的文檔。另外,Apache的錯誤日志文件對于系統(tǒng)管理員來說也是非常重要的,錯誤日志文件中包括服務(wù)器的啟動、停止以及CGI執(zhí)行失敗等信息。更多請參看Apache日志系列1-5。
(3)Apache服務(wù)器的目錄安全認證
在Apache Server中是允許使用 .htaccess做目錄安全保護的,欲讀取這保護的目錄需要先鍵入正確用戶帳號與密碼。這樣可做為專門管理網(wǎng)頁存放的目錄或做為會員區(qū)等。
在保護的目錄放置一個檔案,檔名為.htaccss
AuthName “會員專區(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
這樣就可以保護目錄內(nèi)的內(nèi)容,進入要用合法的用戶.
注:采用了Apache內(nèi)附的模組。也可以采用在httpd.conf中加入:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
(4)Apache服務(wù)器訪問控制
我們就要看三個配置文件中的第三個文件了,即access.conf文件,它包含一些指令控制允許什么用戶訪問Apache目錄。應(yīng)該把deny from all設(shè)為初始化指令,再使用allow from指令打開訪問權(quán)限。
order deny,allow
deny from all
allow from safechina.net
設(shè)置允許來自某個域、IP地址或者IP段的訪問。
(5)Apache服務(wù)器的密碼保護問題
我們再使用.htaccess文件把某個目錄的訪問權(quán)限賦予某個用戶。系統(tǒng)管理員需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打開目錄的訪問控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix
四,設(shè)置Apache服務(wù)器的WEB和文件服務(wù)器
我們在Apache服務(wù)器上存放WEB服務(wù)器的文件,供用戶訪問,并設(shè)置/home/ftp/pub目錄為文件存放區(qū)域,用http://download.your.com/pub/來訪問。在防火墻上設(shè)置apache反向代理技術(shù),由防火墻代理訪問?!?
(1)Apache服務(wù)器的設(shè)置
apache服務(wù)器采用默認配置。主目錄為/home/httpd/html,主機域名為Phoenix.your.com,且別名到www.your.com中, 并且設(shè)置srm.conf加一行別名定義如下:
Alias /pub /home/ftp/pub/
更改默認應(yīng)用程序類型定義如下:
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,內(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)建不同的允許訪問/pub下文件服務(wù)的外部用戶名和口令?!?
(2)在防火墻上配置反向代理技術(shù).
在/etc/httpd/conf/httpd.conf 中加入 NameVirtualHost xxx.xxx.xxx.xxx
# xxx.xxx.xxx.xxx -----〉是防火墻外部在互聯(lián)網(wǎng)上永久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服務(wù)器的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服務(wù)器的IP地址。
設(shè)置防火墻上的DNS,讓download.your.com和www.your.com都指向防火墻的外部網(wǎng)地址xxx.xxx.xxx.xxx。用 http://www.your.com訪問主頁,用http://download.your.com/pub/訪問公共文件的下載區(qū)。
注:還需要在apache服務(wù)器主機上建立目錄/var/log/httpd/download/,否則會出錯。另外,也可以設(shè)置防火墻主機上的 /home/httpd/html/index.html的屬性為750來阻止訪問,這是防外部用戶能訪問到防火墻上的Apache服務(wù)器的http: //www.your.com中?!?
總結(jié):Apache Server是一個非常優(yōu)秀,非常棒的服務(wù)器,只要你正確配置和維護好Apache服務(wù)器,你就會感受到Apache Server 所帶來的好處,同樣希望你能夠通過閱讀本文達到理論和實踐雙豐收的目的。
Apache服務(wù)器它是Internet網(wǎng)上應(yīng)用最為廣泛的Web服務(wù)器軟件之一。Apache服務(wù)器源自美國國家超級技術(shù)計算應(yīng)用中心(NCSA)的 Web服務(wù)器項目中。目前已在互聯(lián)網(wǎng)中占據(jù)了領(lǐng)導(dǎo)地位。Apache服務(wù)器得經(jīng)過精心配置之后,才能使它適應(yīng)高負荷,大吞吐量的互聯(lián)網(wǎng)工作??焖佟⒖煽俊⑼ㄟ^簡單的API擴展,Perl/Python解釋器可被編譯到服務(wù)器中,且完全免費,完全源代碼開放。如果你需要創(chuàng)建一個每天有數(shù)百萬人訪問的Web服務(wù)器,Apache可能是最佳選擇。
二,Apache服務(wù)器的主要安全缺陷
正如我們前言所說盡管Apache服務(wù)器應(yīng)用最為廣泛,設(shè)計上非常安全的程序。但是同其它應(yīng)用程序一樣,Apache也存在安全缺陷。畢竟它是完全源代碼,Apache服務(wù)器的安全缺陷主要是使用HTTP協(xié)議進行的拒絕服務(wù)攻擊(denial of service)、緩沖區(qū)溢出攻擊以及被攻擊者獲得 root權(quán)限三缺陷和最新的惡意的攻擊者進行“拒絕服務(wù)”(DoS)攻擊。合理的網(wǎng)絡(luò)配置能夠保護Apache服務(wù)器免遭多種攻擊。我們來介紹一下主要的安全缺陷:
(1)使用HTTP協(xié)議進行的拒絕服務(wù)攻擊(denial of service)的安全缺陷
這種方法攻擊者會通過某些手段使服務(wù)器拒絕對HTTP應(yīng)答。這樣會使Apache對系統(tǒng)資源(CPU時間和內(nèi)存)需求的劇增,最終造成Apache系統(tǒng)變慢甚至完全癱瘓。
(2)緩沖區(qū)溢出的安全缺陷
該方法攻擊者利用程序編寫的一些缺陷,使程序偏離正常的流程。程序使用靜態(tài)分配的內(nèi)存保存請求數(shù)據(jù),攻擊者就可以發(fā)送一個超長請求使緩沖區(qū)溢出。比如一些Perl編寫的處理用戶請求的網(wǎng)關(guān)腳本。一旦緩沖區(qū)溢出,攻擊者可以執(zhí)行其惡意指令或者使系統(tǒng)宕機。
(3)被攻擊者獲得root權(quán)限的安全缺陷
該安全缺陷主要是因為Apache服務(wù)器一般以root權(quán)限運行(父進程),攻擊者會通過它獲得root權(quán)限,進而控制整個Apache系統(tǒng)。
(4)惡意的攻擊者進行“拒絕服務(wù)”(DoS)攻擊的安全缺陷
這個最新在6月17日發(fā)現(xiàn)的漏洞,它主要是存在于Apache的chunk encoding中,這是一個HTTP協(xié)議定義的用于接受web用戶所提交數(shù)據(jù)的功能。 利用黑客程序可以對于運行在FreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2平臺上的 Apache服務(wù)器均可進行有效的攻擊.
所有說使用最高和最新安全版本對于加強Apache Web服務(wù)器的安全是至關(guān)重要的。請廣大Apache服務(wù)器管理員去http://www.apache.org/dist/httpd/下載補丁程序以確保其WEB服務(wù)器安全!
三, 正確維護和配置Apache服務(wù)器
雖然Apache服務(wù)器的開發(fā)者非常注重安全性,由于Apache服務(wù)器其龐大的項目,難免會存在安全隱患。正確維護和配置Apache WEB服務(wù)器就很重要了。我們應(yīng)注意的一些問題:
(1)Apache服務(wù)器配置文件
Apache Web服務(wù)器主要有三個配置文件,位于/usr/local/apache/conf目錄下。這三個文件是:
httpd.con-----〉主配置文件
srm.conf------〉填加資源文件
access.conf---〉設(shè)置文件的訪問權(quán)限
注:具體配置可以參考:http://httpd.apache.org/docs/mod/core.html
(2)Apache服務(wù)器的日志文件
我們可以使用日志格式指令來控制日志文件的信息。使用Logformat “%a %l“指令,可以把發(fā)出HTTP請求瀏覽器的IP地址和主機名記錄到日志文件。出于安全的考慮,在日志中我們應(yīng)知道至少應(yīng)該那些驗證失敗的WEB用戶,在http.conf文件中加入Logformat “%401u“指令可以實現(xiàn)這個目的。這個指令還有其它的許多參數(shù),用戶可以參考Apache的文檔。另外,Apache的錯誤日志文件對于系統(tǒng)管理員來說也是非常重要的,錯誤日志文件中包括服務(wù)器的啟動、停止以及CGI執(zhí)行失敗等信息。更多請參看Apache日志系列1-5。
(3)Apache服務(wù)器的目錄安全認證
在Apache Server中是允許使用 .htaccess做目錄安全保護的,欲讀取這保護的目錄需要先鍵入正確用戶帳號與密碼。這樣可做為專門管理網(wǎng)頁存放的目錄或做為會員區(qū)等。
在保護的目錄放置一個檔案,檔名為.htaccss
AuthName “會員專區(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
這樣就可以保護目錄內(nèi)的內(nèi)容,進入要用合法的用戶.
注:采用了Apache內(nèi)附的模組。也可以采用在httpd.conf中加入:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
(4)Apache服務(wù)器訪問控制
我們就要看三個配置文件中的第三個文件了,即access.conf文件,它包含一些指令控制允許什么用戶訪問Apache目錄。應(yīng)該把deny from all設(shè)為初始化指令,再使用allow from指令打開訪問權(quán)限。
order deny,allow
deny from all
allow from safechina.net
設(shè)置允許來自某個域、IP地址或者IP段的訪問。
(5)Apache服務(wù)器的密碼保護問題
我們再使用.htaccess文件把某個目錄的訪問權(quán)限賦予某個用戶。系統(tǒng)管理員需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打開目錄的訪問控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix
四,設(shè)置Apache服務(wù)器的WEB和文件服務(wù)器
我們在Apache服務(wù)器上存放WEB服務(wù)器的文件,供用戶訪問,并設(shè)置/home/ftp/pub目錄為文件存放區(qū)域,用http://download.your.com/pub/來訪問。在防火墻上設(shè)置apache反向代理技術(shù),由防火墻代理訪問?!?
(1)Apache服務(wù)器的設(shè)置
apache服務(wù)器采用默認配置。主目錄為/home/httpd/html,主機域名為Phoenix.your.com,且別名到www.your.com中, 并且設(shè)置srm.conf加一行別名定義如下:
Alias /pub /home/ftp/pub/
更改默認應(yīng)用程序類型定義如下:
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,內(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)建不同的允許訪問/pub下文件服務(wù)的外部用戶名和口令?!?
(2)在防火墻上配置反向代理技術(shù).
在/etc/httpd/conf/httpd.conf 中加入 NameVirtualHost xxx.xxx.xxx.xxx
# xxx.xxx.xxx.xxx -----〉是防火墻外部在互聯(lián)網(wǎng)上永久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服務(wù)器的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服務(wù)器的IP地址。
設(shè)置防火墻上的DNS,讓download.your.com和www.your.com都指向防火墻的外部網(wǎng)地址xxx.xxx.xxx.xxx。用 http://www.your.com訪問主頁,用http://download.your.com/pub/訪問公共文件的下載區(qū)。
注:還需要在apache服務(wù)器主機上建立目錄/var/log/httpd/download/,否則會出錯。另外,也可以設(shè)置防火墻主機上的 /home/httpd/html/index.html的屬性為750來阻止訪問,這是防外部用戶能訪問到防火墻上的Apache服務(wù)器的http: //www.your.com中?!?
總結(jié):Apache Server是一個非常優(yōu)秀,非常棒的服務(wù)器,只要你正確配置和維護好Apache服務(wù)器,你就會感受到Apache Server 所帶來的好處,同樣希望你能夠通過閱讀本文達到理論和實踐雙豐收的目的。
相關(guān)文章
Linux下環(huán)境變量配置方法小結(jié)(.bash_profile和.bashrc的區(qū)別)
這篇文章主要介紹了Linux下環(huán)境變量配置方法小結(jié)(.bash_profile和.bashrc的區(qū)別),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04crontab執(zhí)行結(jié)果未通過發(fā)送mail通知用戶的方法
這篇文章主要給大家介紹了關(guān)于crontab執(zhí)行結(jié)果未通過發(fā)送mail通知用戶的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用linux系統(tǒng)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Lamp環(huán)境下設(shè)置綁定apache域名的方法分析
這篇文章主要介紹了Lamp環(huán)境下設(shè)置綁定apache域名的方法,簡單分析了Lamp環(huán)境下的Apache域名綁定設(shè)置相關(guān)屬性、功能與操作技巧,需要的朋友可以參考下2018-03-03CentOS 5.1下跑Mono和Asp.net的實現(xiàn)方法分享
由于想研究在linux下跑.net程序的可行性,于是嘗試在CentOS5.1下搭建Mono環(huán)境和Asp.Net的服務(wù)器。Asp.Net的服務(wù)器是采用mod_mono和Apache的方式搭建(Nginx的搭建尚未研究)2012-04-04apachetop 實現(xiàn)實時監(jiān)測web服務(wù)器運行情況
這篇文章主要介紹了apachetop 實現(xiàn)實時監(jiān)測web服務(wù)器運行情況的相關(guān)資料,需要的朋友可以參考下2016-10-10IO多路復(fù)用之epoll全面總結(jié)(必看篇)
下面小編就為大家?guī)硪黄狪O多路復(fù)用之epoll全面總結(jié)(必看篇)。小編覺得挺不錯的?,F(xiàn)在就分享給大家。也給大家做個參考。一起跟隨小編過來看看吧2016-12-12