亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

企業(yè)級Apache服務(wù)器安全防護(hù)要點(diǎn)剖析

添加時間:2012-6-4  添加: admin 

  Apache一直是世界上使用率排名前三的Web服務(wù)器軟件。企業(yè)使用其構(gòu)建Web應(yīng)用,從很大程度上都需要對其安全性進(jìn)行綜合考慮,以保證能夠應(yīng)對拒絕服務(wù)攻擊、流量竊聽、數(shù)據(jù)泄漏等網(wǎng)絡(luò)威脅,從而保證企業(yè)門戶網(wǎng)站的安全。

  除了使用業(yè)界流行的防火墻、IDS/IPS(入侵檢測系統(tǒng)/入侵防御系統(tǒng))、WAF(Web應(yīng)用防火墻)、UTM(統(tǒng)一威脅管理)等外部安全設(shè)備對Apache服務(wù)進(jìn)行安全防護(hù)外,作為一種優(yōu)秀的開源服務(wù)器軟件,Apache本身就具有很多優(yōu)秀的特性可以為服務(wù)器管理員提供安全配置,以防范各種網(wǎng)絡(luò)攻擊。因此,充分、高效地挖掘Apache服務(wù)器的自身安全能力也是企業(yè)安全工作者一個必備的技能。基于此,本文將從4個方面詳細(xì)剖析Apache服務(wù)器的安全防護(hù)要點(diǎn)。

  策略一:服務(wù)器端安全設(shè)置

  1.限制root用戶運(yùn)行Apache服務(wù)器

  一般情況下,在Linux下啟動Apache服務(wù)器的進(jìn)程httpd需要root權(quán)限。由于root權(quán)限太大,存在許多潛在的安全威脅。一些管理員為了安全起見,認(rèn)為httpd服務(wù)器不可能沒有安全漏洞,因而更愿意使用普通用戶的權(quán)限來啟動服務(wù)器。http.conf主配置文件里面有如下兩個配置是Apache的安全保證,Apache在啟動后,就將其本身設(shè)置為這兩個選項設(shè)置的用戶和組權(quán)限進(jìn)行運(yùn)行,降低了服務(wù)器的危險性。

  User apache

  Group apache

  需要特別指出的是:以上兩個配置在主配置文件里面是默認(rèn)選項,當(dāng)采用root用戶身份運(yùn)行httpd進(jìn)程后,系統(tǒng)將自動將該進(jìn)程的用戶組和權(quán)限改為apache,這樣,httpd進(jìn)程的權(quán)限就被限制在apache用戶和組范圍內(nèi),因而保證了安全。

  2.向客戶端隱藏Apache服務(wù)器的相關(guān)信息

  Apache服務(wù)器的版本號可作為黑客入侵的重要信息被利用,通常他們在獲得版本號后,通過網(wǎng)上搜索針對該版本服務(wù)器的漏洞,從而使用相應(yīng)的技術(shù)和工具有針對性的入侵,這也是滲透測試的一個關(guān)鍵步驟。因此,為了避免一些不必要的麻煩和安全隱患,可以通過主配置文件httpd.conf下的如下兩個選項進(jìn)行:

  (1)ServerTokens:該選項用于控制服務(wù)器是否響應(yīng)來自客戶端的請求,向客戶端輸出服務(wù)器系統(tǒng)類型或者相應(yīng)的內(nèi)置模塊等重要信息。Red Hat Enterprise Linux 5操作系統(tǒng)在主配置文件中提供全局默認(rèn)控制閾值為OS,即ServerTokens OS。它們將向客戶端公開操作系統(tǒng)信息和相關(guān)敏感信息,所以保證安全情況下需要在該選項后使用“ProductOnly”,即ServerTokens ProductOnly。

  (2)ServerSignature:該選項控制由系統(tǒng)生成的頁面(錯誤信息等)。默認(rèn)情況下為off,即ServerSignature off,該情況下不輸出任何頁面信息。另一情況為on,即ServerSignature on,該情況下輸出一行關(guān)于版本號等相關(guān)信息。安全情況下應(yīng)該將其狀態(tài)設(shè)為off。

  圖1和圖2為安全設(shè)定這兩個選項前后正常情況下和錯誤情況下的輸出頁面(通過Rhel5中的Mozilla Firefox瀏覽器訪問Rhel5中的Apache服務(wù)器)的詳細(xì)對比。可以清楚看到,安全設(shè)定選項后,可以充分地向客戶端用戶隱藏Linux操作系統(tǒng)信息和Apache服務(wù)器版本信息。

  

  3.設(shè)置虛擬目錄和目錄權(quán)限

  要從主目錄以外的其他目錄中進(jìn)行發(fā)布,就必須創(chuàng)建虛擬目錄。虛擬目錄是一個位于Apache的主目錄外的目錄,它不包含在Apache的主目錄中,但在訪問Web站點(diǎn)的用戶看來,它與主目錄中的子目錄是一樣的。每個虛擬目錄都有一個別名,用戶Web瀏覽器中可以通過此別名來訪問虛擬目錄,如http://服務(wù)器IP地址/別名/文件名,就可以訪問虛擬目錄下面的任何文件了。

  使用Alias選項可以創(chuàng)建虛擬目錄。在主配置文件中,Apache默認(rèn)已經(jīng)創(chuàng)建了兩個虛擬目錄。這兩條語句分別建立了“/icons/”和“/manual”兩個虛擬目錄,它們對應(yīng)的物理路徑分別是“/var/www/icons/”和“/var/www/manual”。在主配置文件中,用戶可以看到如下配置語句:

  Alias /icons/ "/var/www/icons/"

  Alias /manual "/var/www/manual"

  在實(shí)際使用過程中,用戶可以自己創(chuàng)建虛擬目錄。比如,創(chuàng)建名為/user的虛擬目錄,它所對應(yīng)的路徑為上面幾個例子中常用的/var/www/html/rhel5:

  Alias /test "/var/www/html/rhel5"

  如果需要對其進(jìn)行權(quán)限設(shè)置,可以加入如下語句:

  

  AllowOverride None

  Options Indexes

  Order allow,deny

  Allow from all

  

  設(shè)置該虛擬目錄和目錄權(quán)限后,可以使用客戶端瀏覽器進(jìn)行測試驗證,采用別名對該目錄中的文件進(jìn)行訪問,瀏覽結(jié)果如圖3所示。

  

使用虛擬目錄的測試結(jié)果

  圖3 使用虛擬目錄的測試結(jié)果

  策略二:限制Apache服務(wù)的運(yùn)行環(huán)境

  Apache服務(wù)器需要綁定到80端口上來監(jiān)聽請求,而root是唯一有這種權(quán)限的用戶,隨著攻擊手段和強(qiáng)度的增加,服務(wù)器受到相當(dāng)大的威脅,一旦緩沖區(qū)溢出漏洞被利用,就可以控制整個系統(tǒng)。為了進(jìn)一步提高系統(tǒng)安全性,Linux內(nèi)核引入chroot機(jī)制,chroot是內(nèi)核中的一個系統(tǒng)調(diào)用,軟件可以通過調(diào)用函數(shù)庫的chroot 函數(shù),來更改某個進(jìn)程所能見到的根目錄。

  chroot機(jī)制是將某軟件運(yùn)行限制在指定目錄中,保證該軟件只能對該目錄及其子目錄的文件有所動作,從而保證整個服務(wù)器的安全。在這種情況下,即使出現(xiàn)黑客或者不法用戶通過該軟件破壞或侵入系統(tǒng),Linux系統(tǒng)所受的損壞也僅限于該設(shè)定的根目錄,而不會影響到系統(tǒng)的其他部分。

  將軟件chroot化的一個問題是該軟件運(yùn)行時需要的所有程序、配置文件和庫文件都必須事先安裝到chroot目錄中,通常稱這個目錄為chroot“監(jiān)牢”。如果在“監(jiān)牢”中運(yùn)行httpd,那么用戶根本看不到Linux文件系統(tǒng)中那個真正的目錄,從而保證了Linux系統(tǒng)的安全。

  在使用該技術(shù)的時候,一般情況下需要事先創(chuàng)建目錄,并將守護(hù)進(jìn)程的可執(zhí)行文件httpd復(fù)制到其中。同時,由于httpd需要幾個庫文件,所以需要把httpd程序依賴的幾個lib文件同時也拷貝到同一個目錄下,因此手工完成這一工作是非常麻煩的。幸運(yùn)的是,用戶可以通過使用開源的jail軟件包來幫助簡化chroot“監(jiān)牢”建立的過程,具體步驟如下所示:

  Jail官方網(wǎng)站是:http://www.jmcresearch.com/projects/。首先將其下載,然后執(zhí)行如下命令進(jìn)行源代碼包的編譯和安裝:

  #tar xzvf jail_1.9a.tar.gz

  #cd jail/src

  #make

  jail軟件包提供了幾個Perl腳本作為其核心命令,包括mkjailenv、addjailuser和addjailsw,他們位于解壓后的目錄jail/bin中。這幾個命令的基本用途如下所示:

  mkjailenv:用于創(chuàng)建chroot“監(jiān)牢”目錄,并且從真實(shí)文件系統(tǒng)中拷貝基本的軟件環(huán)境。

  addjailsw:用于從真實(shí)文件系統(tǒng)中拷貝二進(jìn)制可執(zhí)行文件及其相關(guān)的其它文件(包括庫文件、輔助性文件和設(shè)備文件)到該“監(jiān)牢”中。

  addjailuser:創(chuàng)建新的chroot“監(jiān)牢”用戶。

  采用jail創(chuàng)建監(jiān)牢的步驟如下所示;

  (1)首先需要停止目前運(yùn)行的httpd服務(wù),然后建立chroot目錄,命令如下所示。該命令將chroot目錄建立在路徑/root/chroot/httpd下:

  # service httpd stop

  # mkjailenv /root/chroot/httpd

  kjailenv

  A component of Jail (version 1.9 for linux)

  http://www.gsyc.inf.uc3m.es/~assman/jail/

  Juan M. Casillas

  Making chrooted environment into /root/chroot/httpd

  Doing preinstall()

  Doing special_devices()

  Doing gen_template_password()

  Doing postinstall()

  Done.

  (2)為“監(jiān)牢”添加httpd程序,命令如下:

  # ./addjailsw /root/chroot/httpd/ -P /usr/sbin/httpd

  addjailsw

  A component of Jail (version 1.9 for linux)

  http://www.gsyc.inf.uc3m.es/~assman/jail/

  Juan M. Casillas

  Guessing /usr/sbin/httpd args(0)

  Warning: cant create /proc/mounts from the /proc filesystem

  Done.

  在上述過程中,用戶不需要在意那些警告信息,因為jail會調(diào)用ldd檢查httpd用到的庫文件。而幾乎所有基于共享庫的二進(jìn)制可執(zhí)行文件都需要上述的幾個庫文件。

  (3)然后,將httpd的相關(guān)文件拷貝到“監(jiān)牢”的相關(guān)目錄中,命令如下所示:

  # mkdir -p /root/chroot/httpd/etc

  # cp ?a /etc/httpd /root/chroot/httpd/etc/

  。。。。。。

  添加后的目錄結(jié)構(gòu)如下所示:

  # ll

  總計 56

  drwxr-xr-x 2 root root 4096 03-23 13:44 dev

  drwxr-xr-x 3 root root 4096 03-23 13:46 etc

  drwxr-xr-x 2 root root 4096 03-23 13:46 lib

  drwxr-xr-x 2 root root 4096 03-23 13:46 selinux

  drwsrwxrwx 2 root root 4096 03-23 13:46 tmp

  drwxr-xr-x 4 root root 4096 03-23 13:46 usr

  drwxr-xr-x 3 root root 4096 03-23 13:46 var

  (4)重新啟動httpd,并使用ps命令檢查httpd進(jìn)程,發(fā)現(xiàn)該進(jìn)程已經(jīng)運(yùn)行在監(jiān)牢中,如下所示:

  # ps -aux | grep httpd

  Warning: bad syntax, perhaps a bogus -? See   /usr/share/doc/procps-3.2.7/FAQ

  root 3546 0.6 0.3 3828 1712 pts/2 S 13:57 0:00 /usr/sbin/nss_pcache off /etc/httpd/alias

  root 3550 14.2 3.6 49388 17788 ? Rsl 13:57 0:00 /root/chroot/httpd/httpd

  apache 3559 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  apache 3560 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  apache 3561 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  apache 3562 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  apache 3563 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  apache 3564 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  apache 3565 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  apache 3566 0.2 1.4 49388 6888 ? S 13:57 0:00 /root/chroot/httpd/httpd

  r  oot 3568 0.0 0.1 4124 668 pts/2 R+ 13:57 0:00 grep httpd

  在《企業(yè)級Apache服務(wù)器安全防護(hù)要點(diǎn)剖析(上)》中,我們介紹了兩個Apache服務(wù)器的安全防護(hù)策略,本文將介紹剩下兩個策略。

  策略三:啟用Apache自帶安全模塊保護(hù)

  Apache的一個優(yōu)勢便是其靈活的模塊結(jié)構(gòu),其設(shè)計思想也是圍繞模塊(module)概念而展開的。安全模塊是Apache Server中的極其重要的組成部分。這些安全模塊負(fù)責(zé)提供Apache server的訪問控制和認(rèn)證,授權(quán)等一系列至關(guān)重要的安全服務(wù)。

  Apache下有如下幾類與安全相關(guān)的模塊:

  mod_access模塊能夠根據(jù)訪問者的IP地址(或域名,主機(jī)名等)來控制對Apache服務(wù)器的訪問,稱之為基于主機(jī)的訪問控制。

  mod_auth模塊用來控制用戶和組的認(rèn)證授權(quán)(Authentication)。用戶名和口令存于純文本文件中。

  mod_auth_db和mod_auth_dbm模塊則分別將用戶信息(如名稱、組屬和口令等)存于Berkeley-DB及DBM型的小型數(shù)據(jù)庫中,便于管理及提高應(yīng)用效率。

  mod_auth_digest模塊則采用MD5數(shù)字簽名的方式來進(jìn)行用戶的認(rèn)證,但它相應(yīng)的需要客戶端的支持。

  mod_auth_anon模塊的功能和mod_auth的功能類似,只是它允許匿名登錄,將用戶輸入的E-mail地址作為口令。

  mod_ssl被Apache用于支持安全套接字層協(xié)議,提供Internet上安全交易服務(wù),如電子商務(wù)中的一項安全措施。通過對通信字節(jié)流加密來防止敏感信息的泄漏。但是,Apache這種支持是建立在對Apache的API擴(kuò)展來實(shí)現(xiàn)的,相當(dāng)于一個外部模塊,通過與第三方程序(如openssl)的結(jié)合提供安全的網(wǎng)上交易支持。

  為了能夠使用模塊功能,模塊通常以DSO(Dynamic Shared Object)的方式構(gòu)建,用戶應(yīng)該在httpd.conf文件中使用LoadModule指令,使得能夠在使用前獲得模塊的功能。下面是主配置文件中各個模塊的情況,開啟安全模塊非常簡單,即去掉在各安全模塊所在行前的“#”符號即可,如下所示:

  LoadModule auth_basic_module modules/mod_auth_basic.so

  LoadModule auth_digest_module modules/mod_auth_digest.so

  LoadModule authn_file_module modules/mod_authn_file.so

  LoadModule authn_alias_module modules/mod_authn_alias.so

  。。。。。。

  只有將上述安全模塊進(jìn)行開啟后,Apache才能實(shí)現(xiàn)相應(yīng)的訪問控制和通信加密功能。

  策略四:訪問控制策略設(shè)置

  在開啟了相應(yīng)的安全模塊后,還需要對Apache的訪問控制策略進(jìn)行設(shè)定。

  1.認(rèn)證和授權(quán)指令

  目前,有兩種常見的認(rèn)證類型,基本認(rèn)證和摘要認(rèn)證:

  (1)基本認(rèn)證(Basic):使用最基本的用戶名和密碼方式進(jìn)行用戶認(rèn)證。

  (2)摘要認(rèn)證(Digest):該認(rèn)證方式比基本認(rèn)證要安全得多,在認(rèn)證過程中額外使用了一個針對客戶端的挑戰(zhàn)(challenge)信息,可以有效地避免基本認(rèn)證方式可能遇到的“重放攻擊”。值得注意的是:目前并非所有的瀏覽器都支持摘要認(rèn)證方式。

  所有的認(rèn)證配置指令既可以出現(xiàn)在主配置文件httpd.conf中的Directory容器中,也可以出現(xiàn)在單獨(dú)的.htaccess文件中,這個可以由用戶靈活地選擇使用。在認(rèn)證配置過程中,需要用到如下指令選項:

  AuthName:用于定義受保護(hù)區(qū)域的名稱。

  AuthType:用于指定使用的認(rèn)證方式,包括上面所述的Basic和Digest兩種方式。

  AuthGroupFile:用于指定認(rèn)證組文件的位置。

  AuthUserFile:用戶指定認(rèn)證口令文件的位置。

  使用上述的認(rèn)證指令配置認(rèn)證后,需要為Apache服務(wù)器的訪問對象,也就是指定的用戶和組進(jìn)行相應(yīng)的授權(quán),以便于他們對Apache服務(wù)器提供的目錄和文件進(jìn)行訪問。為用戶和組進(jìn)行授權(quán)需要使用Require指令,主要可以使用以下三種方式進(jìn)行授權(quán):

  授權(quán)給指定的一個或者多個用戶:使用Require user 用戶名1 用戶名2 …。

  授權(quán)給指定的一個或者多個組:使用Require group 用戶名1 用戶名2 …。

  授權(quán)給指定口令文件中的所有用戶:使用Require valid-user。

  2.管理認(rèn)證口令文件和認(rèn)證組文件

  要實(shí)現(xiàn)用戶認(rèn)證功能,首先要建立保存用戶名和口令的文件。Apache自帶的htpasswd命令提供了建立和更新存儲用戶名、密碼的文本文件的功能。需要注意的是,這個文件必須放在不能被網(wǎng)絡(luò)訪問的位置,以避免被下載和信息泄漏。建議將口令文件放在/etc/httpd/目錄或者其子目錄下。

  下面的例子在/etc/httpd目錄下創(chuàng)建一個文件名為passwd_auth的口令文件,并將用戶rhel5添加入認(rèn)證口令文件。使用以下命令建立口令文件(過程中還會提示輸入該用戶的口令):

  # touch passwd_auth

  # htpasswd -c /etc/httpd/passwd_auth rhel5

  New password:

  Re-type new password:

  Adding password for user rhel5

  命令執(zhí)行的過程中系統(tǒng)會要求用戶為rhel5用戶輸入密碼。上述命令中的-c選項表示無論口令文件是否已經(jīng)存在,都會重新寫入文件并刪去原有內(nèi)容。所以在添加第2個用戶到口令文件時,就不需要使用-c選項了,如下命令所示

  # htpasswd /etc/httpd/passwd_auth testuser

  3.認(rèn)證和授權(quán)使用實(shí)例

  (1)使用主配置文件配置用戶認(rèn)證及授權(quán)

  在本例子中,用戶可以在Apache的主配置文件httpd.conf中加入以下語句建立對目錄/var/www/html/rhel5訪問的用戶認(rèn)證和授權(quán)機(jī)制:

  

  AllowOverride None

  AuthType Basic

  AuthName "rhel5"

  AuthUserFile /etc/httpd/passwd_auth

  Require user rhel5 testuser

  

  在上述例子中,使用了如下指令:

  AllowOverride:該選項定義了不使用.htaccess文件。

  AuthType Basic:AuthType選項定義了對用戶實(shí)施認(rèn)證的類型,最常用的是由mod_auth提供的Basic。

  AuthName:定義了Web瀏覽器顯示輸入用戶/密碼對話框時的領(lǐng)域內(nèi)容。

  AuthUserFile:定義了口令文件的路徑,即使用htpasswd建立的口令文件。

  Require user:定義了允許哪些用戶訪問,各用戶之間用空格分開。

  需要注意的是:在AuthUserFile選項定義中,還需要使用如下語句事先建立認(rèn)證用戶patterson和testuser,該選項中的定義才能生效:

  #htpasswd -c /etc/httpd/passwd_auth rhel5

  #htpasswd /etc/httpd/passwd_auth testuser

  (2)使用.htaccess文件配置用戶認(rèn)證和授權(quán)

  在本例子中,為了完成如上述例子同樣的功能,需要先在主配置文件中加入如下語句:

  

  AllowOverride AuthConfig

  

  上述語句中的AllowOverride選項允許在.htaccess文件中使用認(rèn)證和授權(quán)指令。

  然后,在.htaccess文件中添加如下語句即可:

  AuthType Basic

  AuthName "Please Login:"

  AuthUserFile /etc/httpd/passwd_auth

  Require user rhel5 testuser

  同理,在AuthUserFile選項定義中,還需要使用如下語句事先建立認(rèn)證用戶patterson和testuser,該選項中的定義才能生效:

  #htpasswd -c /etc/httpd/passwd_auth rhel5

  #htpasswd /etc/httpd/passwd_auth testuser

關(guān)鍵字:服務(wù)器、企業(yè)級、Apache、數(shù)據(jù)

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機(jī)打開網(wǎng)站