0×00 測試環(huán)境
centos6.5+apache2.2.15+php5.3.3
0×01 php的運(yùn)行模式介紹
php的運(yùn)行模式分四種:
1. CGI通用網(wǎng)關(guān)接口
2. fast-cgi常駐型的CGI
3. cli命令行運(yùn)行
4. web模塊模式
一般情況下,apache使用web模塊模式運(yùn)行php
0×02 Apache運(yùn)行原理介紹
Apache是基于模塊化設(shè)計(jì)的,各個(gè)模塊在系統(tǒng)啟動(dòng)的時(shí)候按需載入。Apache對(duì)于php的解析,就是通過眾多Module中的php Module來完成的。
所以,php加載成為了apache的一個(gè)模塊,可以把a(bǔ)pache和php當(dāng)成一個(gè)整體看待。
當(dāng)瀏覽器請(qǐng)求一個(gè)php文件時(shí),我們可以理解為apache直接處理返回給瀏覽器結(jié)果,服務(wù)器上也只會(huì)有httpd進(jìn)程,而不會(huì)有php進(jìn)程。
apache的一些配置主要是通過httpd.conf來實(shí)現(xiàn)的,但是可以在httpd.conf中開啟對(duì).htaccess的支持,然后 在.htaccess中進(jìn)行配置。不過一般情況下,不應(yīng)該使用.htaccess文件,除非你對(duì)主配置文件沒有訪問權(quán)限。.htaccess文件應(yīng)該被用 在內(nèi)容提供者需要針對(duì)特定目錄改變服務(wù)器的配置而又沒有root權(quán)限的情況下。如果服務(wù)器管理員不愿意頻繁修改配置,則可以允許用戶通 過.htaccess文件自己修改配置。
0×03 Apache安全配置方案
1. 選擇漏洞較少的apache版本,并打上安全補(bǔ)丁
查看apache版本號(hào):httpd -v
然后在sebug上搜索該版本號(hào)有什么漏洞,可根據(jù)提示提升版本或者打上補(bǔ)丁
2. 關(guān)閉一些不使用的模塊及功能
可在LoadModule前加#,來注釋掉一些不使用的模塊
3. 隱藏banner信息
ServerTokens OS 修改為:ServerTokens Prod (在出現(xiàn)錯(cuò)誤頁的時(shí)候不顯示服務(wù)器操作系統(tǒng)的名稱)
ServerSignature On 修改為:ServerSignature Off(不回顯apache版本信息)
4. 刪除默認(rèn)網(wǎng)站及頁面
刪除默認(rèn)的頁面,防止泄露服務(wù)器信息
5. 可修改banner信息
6. 配置httpd.conf禁止目錄瀏覽
將Options Indexes FollowSymLinks改為Options -Indexes FollowSymLinks
7. 配置httpd.conf設(shè)置默認(rèn)文檔
DirectoryIndex index.html
8. 合理配置apache的運(yùn)行賬戶
為apache單獨(dú)建立一個(gè)運(yùn)行賬戶及賬戶組,并在httpd.conf配置
User apache
Group apache
9. 合理控制apache運(yùn)行賬戶對(duì)磁盤的寫入,執(zhí)行權(quán)限
取消apache運(yùn)行賬戶對(duì)網(wǎng)站目錄的寫入權(quán)限,上傳目錄除外,其他非網(wǎng)站目錄盡量不給權(quán)限
10. 合理控制apache運(yùn)行賬戶對(duì)sh等的執(zhí)行權(quán)限
取消掉了運(yùn)行賬戶對(duì)sh等的執(zhí)行權(quán)限后能夠防止webshell通過默認(rèn)的sh執(zhí)行命令
11. 配置httpd.conf取消對(duì)上傳目錄的php執(zhí)行權(quán)限
<Directory "/var/www/html/aaa">
<FilesMatch ".(php|php5)$">
Deny from all
</FilesMatch>
</Directory>
12. 配置httpd.conf限制禁止訪問的文件夾,例如后臺(tái)目錄
<Directory "/var/www/html/aaa">
新聞熱點(diǎn)
疑難解答
圖片精選