欧美激情网,国产欧美亚洲高清,欧美屁股xxxxx,欧美群妇大交群,欧美人与物ⅴideos另类,区二区三区在线 | 欧洲

知識(shí)學(xué)堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時(shí)手機(jī):13896886023
  • ·QQ 咨 詢:361652718 513960520
當(dāng)前位置 > 首頁(yè) > 知識(shí)學(xué)堂 > 常見(jiàn)技術(shù)問(wèn)題
保證Apache web服務(wù)器安全的十大策略
更新時(shí)間:2012-01-06 | 發(fā)布人:本站 | 點(diǎn)擊率:464
 
  • mod_log_config.c
  • mod_ssl.c
  • prefork.c
  • http_core.c
  • mod_mime.c
  • mod_dir.c
  • mod_so.c

    在這個(gè)例子里,我們安裝了如下apache模塊:

    • core.c –Apache核心模塊
    • mod_auth* –各種身份驗(yàn)證模塊
    • mod_log_config.c –允許記錄日志和定制日志文件格式
    • mod_ssl.c – SSL
    • prefork.c – 一個(gè)非線程型的、預(yù)派生的MPM
    • httpd_core.c – Apache核心模塊
    • mod_mime.c – 根據(jù)文件擴(kuò)展名決定應(yīng)答的行為(處理器/過(guò)濾器)和內(nèi)容(MIME類型/語(yǔ)言/字符集/編碼)
    • mod_dir.c – 指定目錄索引文件以及為目錄提供”尾斜杠”重定向
    • mod_so.c – 允許運(yùn)行時(shí)加載DSO模塊

    2、以單獨(dú)的用戶和用戶組運(yùn)行Apache

    Apache可能默認(rèn)地以nobody或daemon運(yùn)行。讓Apache運(yùn)行在自己沒(méi)有特權(quán)的帳戶比較好。例如:用戶apache。
    創(chuàng)建apache用戶組和用戶。

    1. groupadd apache
    2. useradd -d /usr/local/apache2/htdocs -g apache -s /bin/false apache

    更改httpd.conf,正確地設(shè)置User和Group。

    1. # vi httpd.conf
    2. User apache
    3. Group apache

    之后重啟apache,執(zhí)行ps -ef命令你會(huì)看到apache以“apache”用戶運(yùn)行(除了第一個(gè)都是以root運(yùn)行之外)。

    1. # ps -ef | grep -i http | awk '{print $1}'
    2. root
    3. apache
    4. apache
    5. apache
    6. apache
    7. apache

    3、限制訪問(wèn)根目錄(使用Allow和Deny)

    在httpd.conf文件按如下設(shè)置來(lái)增強(qiáng)根目錄的安全。

    1. <Directory />
    2. Options None
    3. Order deny,allow
    4. Deny from all
    5. </Directory>

    在上面的:

    • Options None –設(shè)置這個(gè)為None,是指不激活其它可有可無(wú)的功能。
    • Order deny,allow – 這個(gè)是指定處理Deny和Allow的順序。
    • Deny from all –阻止所有請(qǐng)求。Deny的后面沒(méi)有Allow指令,所以沒(méi)人能允許訪問(wèn)。

    4、為conf和bin目錄設(shè)置適當(dāng)?shù)臋?quán)限

    bin和conf目錄應(yīng)該只允許授權(quán)用戶查看。創(chuàng)建一個(gè)組和把所有允許查看/修改apache配置文件的用戶增加到這個(gè)組是一個(gè)不錯(cuò)的授權(quán)方法。
    下面我們?cè)O(shè)置這個(gè)組為:apacheadmin
    創(chuàng)建組:

    1. groupadd apacheadmin

    允許這個(gè)組訪問(wèn)bin目錄。

    1. chown -R root:apacheadmin /usr/local/apache2/bin
    2. chmod -R 770 /usr/local/apache2/bin

    允許這個(gè)組訪問(wèn)conf目錄。

    1. chown -R root:apacheadmin /usr/local/apache2/conf
    2. chmod -R 770 /usr/local/apache2/conf

    增加合適的用戶到這個(gè)組。

    1. # vi /etc/group
    2. apacheadmin:x:1121:user1,user2

    5、禁止目錄瀏覽

    如果你不關(guān)閉目錄瀏覽,用戶就能看到你的根目錄(或任何子目錄)所有的文件(目錄)。
    比如,當(dāng)他們?yōu)g覽http://{your-ip}/images/而images下沒(méi)有默認(rèn)首頁(yè),那么他們就會(huì)在瀏覽器中看到所有的images文件(就像ls -l輸出)。從這里他們通過(guò)點(diǎn)擊就能看到私人的圖片文件,或點(diǎn)點(diǎn)擊子目錄看到里面的內(nèi)容。
    為了禁止目錄瀏覽,你可以設(shè)置Opitons指令為“None“或者是“-Indexes”。在選項(xiàng)名前加“-”會(huì)強(qiáng)制性地在該目錄刪除這個(gè)特性。
    Indexes選項(xiàng)會(huì)在瀏覽器顯示可用文件的列表和子目錄(當(dāng)沒(méi)有默認(rèn)首頁(yè)在這個(gè)目錄)。所以Indexes應(yīng)該禁用。

    1. <Directory />
    2. Options None
    3. Order allow,deny
    4. Allow from all
    5. </Directory>
    6. (or)
    7. <Directory />
    8. Options -Indexes
    9. Order allow,deny
    10. Allow from all
    11. </Directory>

    6、禁用.htaccess

    在htdocs目錄下的特定子目錄下使用.htaccess文件,用戶能覆蓋默認(rèn)apache指令。在一些情況下,這樣不好,應(yīng)該禁用這個(gè)功能。
    我們可以在配置文件中按如下設(shè)置禁用.htaccess文件來(lái)不允許覆蓋apache默認(rèn)配置。

    1. <Directory />
    2. Options None
    3. AllowOverride None
    4. Order allow,deny
    5. Allow from all
    6. </Directory>

    7、禁用其它選項(xiàng)

    下面是一些Options指令的可用值。

    • Options All –所有的選項(xiàng)被激活(除了MultiViews)。如果你不指定Options指令,這個(gè)是默認(rèn)值。
    • Options ExecCGI –執(zhí)行CGI腳本(使用mod_cgi)。
    • Options FollowSymLinks –如果在當(dāng)前目錄有符號(hào)鏈接,它將會(huì)被跟隨。
    • Options Includes –允許服務(wù)器端包含文件(使用mod_include)。
    • Options IncludesNOEXEC –允許服務(wù)器端包含文件但不執(zhí)行命令或cgi。
    • Options Indexes –允許目錄列表。
    • Options MultiViews -允許內(nèi)容協(xié)商多重視圖(使用mod_negotiation)
    • Options SymLinksIfOwnerMatch – 跟FollowSymLinks類似。但是要當(dāng)符號(hào)連接和被連接的原始目錄是同一所有者是才被允許。

    絕不要指定“Options All”,通常指定上面的一個(gè)或多個(gè)的選項(xiàng)。你可以按下面代碼把多個(gè)選項(xiàng)連接。
    Options Includes FollowSymLinks
    當(dāng)你要嵌入多個(gè)Directory指令時(shí),“+”和“-”是有用處的。也有可能會(huì)覆蓋上面的Directory指令。
    如下面,/site目錄,允許Includes和Indexes。

    1. <Directory /site>
    2. Options Includes Indexes
    3. AllowOverride None
    4. Order allow,deny
    5. Allow from all
    6. </Directory>

    對(duì)于/site/en目錄,如果你需要繼承/site目錄的Indexes(不允許Includes),而且只在這個(gè)目錄允許FollowSymLinks,如下:

    1. <Directory /site/en>
    2. Options -Includes +FollowSymLink
    3. AllowOverride None
    4. Order allow,deny
    5. Allow from all
    6. </Directory>
    • /site目錄允許IncludesIndexes
    • /site/en目錄允許Indexes和FollowSymLink

    8、刪除不需要的DSO模塊

    如果你加載了動(dòng)態(tài)共享對(duì)象模塊到apache,他們應(yīng)該在httpd.conf文件在“LoadModule”指令下。
    請(qǐng)注意靜態(tài)編譯的Apache模塊是不在“LoadModule”指令里的。
    在httpd.conf注釋任何不需要的“LoadModules”指令。

    1. grep LoadModule /usr/local/apache2/conf/httpd.conf

    9、限制訪問(wèn)特定網(wǎng)絡(luò)(或IP地址)

    如果你需要只允許特定IP地址或網(wǎng)絡(luò)訪問(wèn)你的網(wǎng)站,按如下操作:
    只允許特定網(wǎng)絡(luò)訪問(wèn)你的網(wǎng)站,在Allow指令下給出網(wǎng)絡(luò)地址。

    1. <Directory /site>
    2. Options None
    3. AllowOverride None
    4. Order deny,allow
    5. Deny from all
    6. Allow from 10.10.0.0/24
    7. </Directory>

    只允許特定IP地址訪問(wèn)你的網(wǎng)站,在Allow指令下給出IP地址。

    1. <Directory /site>
    2. Options None
    3. AllowOverride None
    4. Order deny,allow
    5. Deny from all
    6. Allow from 10.10.1.21
    7. </Directory>

    10、禁止顯示或發(fā)送Apache版本號(hào)(設(shè)置ServerTokens)

    默認(rèn)地,服務(wù)器HTTP響應(yīng)頭會(huì)包含apache和php版本號(hào)。像下面的,這是有危害的,因?yàn)檫@會(huì)讓黑客通過(guò)知道詳細(xì)的版本號(hào)而發(fā)起已知該版本的漏洞攻擊。

    1. Server: Apache/2.2.17 (Unix) PHP/5.3.5

    為了阻止這個(gè),需要在httpd.conf設(shè)置ServerTokens為Prod,這會(huì)在響應(yīng)頭中顯示“Server:Apache”而不包含任何的版本信息。

    1. # vi httpd.conf
    2. ServerTokens Prod

    下面是ServerTokens的一些可能的賦值:

    • ServerTokens Prod 顯示“Server: Apache”
    • ServerTokens Major 顯示 “Server: Apache/2″
    • ServerTokens Minor 顯示“Server: Apache/2.2″
    • ServerTokens Min 顯示“Server: Apache/2.2.17″
    • ServerTokens OS 顯示 “Server: Apache/2.2.17 (Unix)”
    • ServerTokens Full 顯示 “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (如果你這指定任何的值,這個(gè)是默認(rèn)的返回信息)

    除了上面10個(gè)apache的安全建議,你還必要確保你的UNIX/Linux操作系統(tǒng)的安全。如果你的操作系統(tǒng)不安全,那么只是確保apache的安全就沒(méi)有任何意義了。通常的我們要保持apache版本的更新,最新的apahce版本會(huì)修復(fù)所有已知的安全問(wèn)題。還有就是要確保時(shí)常查看apache日志文件。