Apache安全配置
你知道Apache是如何配置的嗎?本文為您講述Apache的安全配置,希望對(duì)您有所幫助。
1 安全策略
1.1 安全目錄
.htaccess做目錄安全保護(hù)的,欲讀取這保護(hù)的目錄需要先鍵入正確用戶帳號(hào)與密碼。這樣可做為專門管理網(wǎng)頁(yè)存放的目錄或做為會(huì)員區(qū)等。
AllowOverride All
LoadModule rewrite_module modules/mod_rewrite.so
在自動(dòng)要認(rèn)證的目錄下建立. htaccess文本(windows中用記事本另存為建立)
1.1.1 .htaccess配置:
(.htaccess文件可以相當(dāng)于當(dāng)前目錄的httpd.conf配置,設(shè)置時(shí)尤其注意.htaccess文件的訪問(wèn)權(quán)限,避免被有心人惡意修改,后果不堪設(shè)想)
AuthName HIHIHI指的是要求你輸入用戶名和密碼時(shí)的提示信息
AuthType Basic表示需要的認(rèn)證類型
AuthUserFile c:\ss指的是保存用戶名和密碼的文件位置(.htpasswd),在這個(gè)例子中指的是.htpasswd文件,位置和我們的.htaccess文件相同
Require valid-user指定只有.htpasswd文件包含的合法用戶才能訪問(wèn)。
1.1.2 .htpasswd配置
用戶名:密碼
aaa:aaa
不一定在.htaccess文件下配置,也可以在httpd.conf(主配置)下進(jìn)行配置,這樣可以提高apache工作效率,否則客戶端訪問(wèn)Web是Apache都會(huì)在每一個(gè)目錄下尋找.htaccess文件,會(huì)降低Apache效率,而且.htaccess被有心人修改了就危險(xiǎn)了
1.2 錯(cuò)誤頁(yè)面
ErrorDocument 500 "The server made a boo boo."
ErrorDocument 404 /missing.html
ErrorDocument 404 "/cgi-bin/missing_handler.pl"
ErrorDocument 402 http://www.js.com/subscription_info.html
2 安全隱患
2.1 目錄泄露
<Directory "/usr/local/apache/htdocs">
Options -Indexes FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all
</Directory>
在Indexes前加-或去掉
2.2 符號(hào)連接追蹤
<Directory "/usr/local/apache/htdocs">
Options Indexes -FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all
</Directory>
在FollowSymLinks前加-或去掉
2.3 Listen指令具體化
httpd.conf包含一個(gè)"Listen 80”指令。應(yīng)將其改變?yōu)橹付ò疃ǖ腎P,如果在多IP的環(huán)境下尤其注意
2.4 版本泄露
在httpd.conf中添加:
ServerTokens ProductOnly
ServerSignature Off
2.5 運(yùn)行權(quán)限
Apache在windows中的默認(rèn)運(yùn)行權(quán)限是系統(tǒng)權(quán)限,若黑客找到漏洞,就可以將整個(gè)服務(wù)控制,所以必須將Apache運(yùn)行權(quán)限降到最低,這樣可以避免發(fā)生安全事故
2.6 清除httpd.conf中默認(rèn)的注釋
在這400行中,只有一小部分是實(shí)際的Apache指令,其余的僅是幫助用戶如何恰當(dāng)?shù)卦趆ttpd.conf中放置指令的注釋。根據(jù)筆者的經(jīng)驗(yàn),這些注釋有時(shí)起負(fù)面作用,甚至將危險(xiǎn)的指令留存于文件中。筆者在所管理的許多 Apache服務(wù)器上將httpd.conf文件復(fù)制為其它的文件,如httpd.conf.orig等,然后完全清除多余的注釋。文件變得更加容易閱讀,從而更好地解決了潛在的安全問(wèn)題或者錯(cuò)誤地配置文件。
2.7 欺騙攻擊者
修改版本名:
修改系統(tǒng)名:
2.8 apache解析漏洞:
<FilesMatch ".(php.|php3.)">
Order Allow,Deny
Deny from all
</FilesMatch>
2.9 apache設(shè)置上傳目錄無(wú)執(zhí)行權(quán)限
關(guān)閉路徑/www/home/upload的php解析:
<Directory “/www/home/upload”>
<Files ~ “.php”>
Order allow,deny
Deny from all
</Files>
</Directory>
#p#
2.10 apache限制目錄
php_admin_value open_basedir /var/www
2.11 http 請(qǐng)求方法安全
OPTIONS 方法可以檢測(cè)出當(dāng)前資源可以請(qǐng)求的方法,關(guān)閉該方法的配置:
<Location />
<Limit OPTIONS>
Deny from all
</Limit>
</Location>
2.12 不允許訪問(wèn)指定擴(kuò)展名
<Files ~”\..inc$”>
Order allow,deny
Deny from all
</Files>
2.13 禁止訪問(wèn)某些指定目錄
<Directory ~“^/var/www/(.+/)*[0-9]{3}”>
Order allow,deny
Deny from all
</Directory>
2.14 通過(guò)文件匹配進(jìn)行禁止
<FilesMatch \.(? i: gif| jpe? g| png)$>
Order allow,deny
Deny from all
</FilesMatch>
2.15 禁止針對(duì)URL相對(duì)路徑的訪問(wèn)
<Location /dir/ >
Order allow,deny
Deny from all
</Location>
3 其他安全配置
3.1 Options
Options參數(shù)代表的意思
ALL用戶可在此目錄中做任何事
ExecCGI允許在此目錄中執(zhí)行CGI script
FollowSymLinksSever可利用symbolic link鏈接到不在此目錄中的檔案或目錄
IndexesSever可以產(chǎn)生此目錄中的檔案列表
Includes提供SSI的功能
IncludesNOEXEC可使用SSI功能,但取消#exec與#include 的CGI 功能
MultiViews允許經(jīng)由交談而取得不同的文件,例如可由瀏覽器要求傳送法文版的網(wǎng)頁(yè)`
None安全不允許存取此目錄
SymLinkslfOwnerMatch允許存取symbolic links鏈接的目錄,但僅限于該目錄的擁有人
3.2 AllowOverride
AllowOverride None表示不要讀取.htaccess文檔
AllowOverride AuthConfig允許做基本的用戶名和口令驗(yàn)證
AllowOverride Allall表示以.htaccess的內(nèi)容為準(zhǔn),改變?cè)瓉?lái)的訪問(wèn)權(quán)限
3.3 Location
#<Location /server-status> ←<Location>與<Directory>類似,但是是用來(lái)限制URL
#SetHandler server-status
#order deny,allow
#deny from all
#allow from .your_domain.com
#</Location>
#<Location /server-info> ←此區(qū)塊可顯示出服務(wù)程序的設(shè)定,必須有加入mod_info.c模塊才有作用
#SetHandler server-info
#order deny.allow
#deny from all
#allow from .your_domain.com
#</Location>
#<Location /cgi-bin/phf*> ←此區(qū)塊是因?yàn)锳pache以前版本的bug,有些人會(huì)用來(lái)攻擊
#deny from all 系統(tǒng),啟用此區(qū)塊可將其導(dǎo)向到ErrorDocument指定的網(wǎng)頁(yè)。
#ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>
3.4 from
allow from all ←允許所有使用者存取
# allow from flag.com.tw ←只允許來(lái)自於flag.com.tw domain存取,但要先"deny from all"才能拒絕其它地方連進(jìn)來(lái)
# deny from 203.74.205 ←拒絕來(lái)自于203.74.205
3.5 減少CGI和SSI風(fēng)險(xiǎn)
減少SSI腳本風(fēng)險(xiǎn),如果用exec等SSI命令運(yùn)行外部程序,也會(huì)存在類似CGI腳本風(fēng)險(xiǎn),除了內(nèi)部調(diào)試程序時(shí),應(yīng)使用
option命令禁止其使用:
Option IncludesNOEXEC
若要使用CGI或SSI可以使用suEXEC進(jìn)行配置
3.6 使用ssl加固Apache
link