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