Apache簡(jiǎn)介及安全配置方案
0×00 測(cè)試環(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的解析,就是通過(guò)眾多Module中的php Module來(lái)完成的。
所以,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的一些配置主要是通過(guò)httpd.conf來(lái)實(shí)現(xiàn)的,但是可以在httpd.conf中開(kāi)啟對(duì).htaccess的支持,然后 在.htaccess中進(jìn)行配置。不過(guò)一般情況下,不應(yīng)該使用.htaccess文件,除非你對(duì)主配置文件沒(méi)有訪問(wèn)權(quán)限。.htaccess文件應(yīng)該被用 在內(nèi)容提供者需要針對(duì)特定目錄改變服務(wù)器的配置而又沒(méi)有root權(quán)限的情況下。如果服務(wù)器管理員不愿意頻繁修改配置,則可以允許用戶通 過(guò).htaccess文件自己修改配置。
0×03 Apache安全配置方案
1. 選擇漏洞較少的apache版本,并打上安全補(bǔ)丁
查看apache版本號(hào):httpd -v
然后在sebug上搜索該版本號(hào)有什么漏洞,可根據(jù)提示提升版本或者打上補(bǔ)丁
2. 關(guān)閉一些不使用的模塊及功能
可在LoadModule前加#,來(lái)注釋掉一些不使用的模塊
3. 隱藏banner信息
ServerTokens OS 修改為:ServerTokens Prod (在出現(xiàn)錯(cuò)誤頁(yè)的時(shí)候不顯示服務(wù)器操作系統(tǒng)的名稱)
ServerSignature On 修改為:ServerSignature Off(不回顯apache版本信息)
4. 刪除默認(rèn)網(wǎng)站及頁(yè)面
刪除默認(rèn)的頁(yè)面,防止泄露服務(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ì)磁盤的寫(xiě)入,執(zhí)行權(quán)限
取消apache運(yùn)行賬戶對(duì)網(wǎng)站目錄的寫(xiě)入權(quán)限,上傳目錄除外,其他非網(wǎng)站目錄盡量不給權(quán)限
10. 合理控制apache運(yùn)行賬戶對(duì)sh等的執(zhí)行權(quán)限
取消掉了運(yùn)行賬戶對(duì)sh等的執(zhí)行權(quán)限后能夠防止webshell通過(guò)默認(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限制禁止訪問(wèn)的文件夾,例如后臺(tái)目錄
<Directory "/var/www/html/aaa">
Deny from all
</Directory>
13. 配置httpd.conf限制一些特殊目錄的特定ip訪問(wèn),如內(nèi)部接口等。
<Directory "/var/www/html/aaa">
Order Deny,Allow
Deny from all
Allow from 192.168.1.111
</Directory>
14. 配置httpd.conf限制一些文件類型的訪問(wèn),如txt的日志
<Files ~ ".txt$">
Order allow,deny
Deny from all
</Files>
15.配置httpd.conf修改修改監(jiān)聽(tīng)端口來(lái)防止一些內(nèi)部系統(tǒng)被掃描
這樣可以防止一些直接掃描80端口的黑客
Listen 12345
16. 關(guān)閉對(duì).htaccess的支持
AllowOverride All
改為
AllowOverride None
17. 配置httpd.conf記錄訪問(wèn)日志
0×04 .htaccess常見(jiàn)配置方法參考
首先,不建議使用.htaccess,其次,使用.htaccess需要在httpd.conf中開(kāi)啟,最后,開(kāi)始.htaccess支持后需要在 httpd.conf中配置防止.htaccess文件被下載,下面介紹幾個(gè)基本配置方法不全,更多的可以參考其他網(wǎng)站專門針對(duì).htaccess 的配置方法。
1. 定制目錄的默認(rèn)文檔
DirectoryIndex index.html index.php index.htm
2. 定制錯(cuò)誤頁(yè)面
ErrorDocument 404 errors/404.html
3. 控制訪問(wèn)文件和目錄的級(jí)別
order deny,allow
deny from all
allow from 192.168.0.0/24
4. 防止列目錄
Options -Indexes
0×05 總結(jié)
其實(shí)一個(gè)web服務(wù)器的保護(hù)是分幾個(gè)層次的(暫不考慮程序的漏洞):
1. 隱藏自己
要保護(hù)一個(gè)web服務(wù)器首先得學(xué)會(huì)隱藏自己,對(duì)于一些內(nèi)部系統(tǒng),如后臺(tái),內(nèi)部接口等,我們可以通過(guò)改端口,限制ip等方式來(lái)不讓黑客發(fā)現(xiàn)。
2. 隱藏身份
對(duì)于多數(shù)web系統(tǒng)來(lái)說(shuō),都是提供給外面的訪問(wèn)的,所以想隱藏自己其實(shí)是很難的。但是我們還是要學(xué)會(huì)隱藏身份,可以通過(guò)改banner,該返回信息來(lái)隱藏身份來(lái)加大黑客攻擊的難度。
3. 選用安全的版本及修補(bǔ)一些已知的漏洞
其實(shí)前面兩步都是很容易突破,然后獲知一個(gè)web系統(tǒng)所使用的web服務(wù)器版本的,此時(shí)我們能做的就是選擇一個(gè)少漏洞的版本,及打上安全補(bǔ)丁。
4. 做好安全配置
做好基礎(chǔ)的安全配置,禁止目錄瀏覽,設(shè)定默認(rèn)文檔,上傳目錄限制php執(zhí)行等等,來(lái)阻擋黑客的入侵。
5. 合理配置web服務(wù)進(jìn)程賬戶的權(quán)限
當(dāng)黑客已經(jīng)通過(guò)程序漏洞上傳了一個(gè)webshell并且已經(jīng)成功執(zhí)行了,此時(shí),就只能很好的配置服務(wù)進(jìn)程的賬戶權(quán)限,包括磁盤的讀取寫(xiě)入,特殊程序如sh的執(zhí)行,等等,這樣可以講危害降到最低。
6. 記錄日志
最后,當(dāng)黑客已經(jīng)光顧之后,我們也只能通過(guò)日志來(lái)分析,看問(wèn)題出在哪里了。
相關(guān)文章
centOS7 橋接模式設(shè)置靜態(tài)Ip的方法步驟
這篇文章主要給大家介紹了關(guān)于centOS7 橋接模式設(shè)置靜態(tài)Ip的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用centOS7具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07linux free命令以及系統(tǒng)內(nèi)存占用過(guò)高的處理方式
這篇文章主要介紹了linux free命令以及系統(tǒng)內(nèi)存占用過(guò)高的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Ubuntu 14.04設(shè)置開(kāi)機(jī)啟動(dòng)腳本的方法
這篇文章主要給大家介紹了Ubuntu 14.04設(shè)置開(kāi)機(jī)啟動(dòng)腳本的方法,文中通過(guò)代碼介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2016-12-12Linux強(qiáng)制釋放占用端口以及Linux防火墻端口開(kāi)放方法詳解
在linux系統(tǒng)中安裝一些軟件時(shí)有時(shí)遇到端口被占用的情況,本文為大家介紹了遇到這種情況我們應(yīng)該怎么處理2018-10-10Linux VPS備份教程 手動(dòng)備份網(wǎng)站數(shù)據(jù)
老左其實(shí)也比較贊同不是所有的網(wǎng)站都需要采用自動(dòng)備份,每天都自動(dòng)備份也感覺(jué)沒(méi)有必要,除非我們的網(wǎng)站非常的重要2012-09-09預(yù)防PHPDDOS的發(fā)包攻擊別人的方法(iis+linux)
最近很多美國(guó)VPS客戶被人通過(guò)dedecms漏洞等等入侵.導(dǎo)致phpddos 很猖狂,占用大量帶寬,影響網(wǎng)站,浪費(fèi)流量2012-04-04