centos6.5+apache2.2.15+php5.3.3
php的運行模式分四種:
1. CGI通用網關接口
2. fast-cgi常駐型的CGI
3. cli命令行運行
4. web模塊模式
一般情況下,apache使用web模塊模式運行php
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文件自己修改配置。
查看apache版本號:httpd -v
然后在sebug上搜索該版本號有什么漏洞,可根據提示提升版本或者打上補丁
可在LoadModule前加#,來注釋掉一些不使用的模塊
ServerTokens OS 修改為:ServerTokens Prod (在出現錯誤頁的時候不顯示服務器操作系統的名稱)
ServerSignature On 修改為:ServerSignature Off(不回顯apache版本信息)
刪除默認的頁面,防止泄露服務器信息
將Options Indexes FollowSymLinks改為Options -Indexes FollowSymLinks
DirectoryIndex index.html
為apache單獨建立一個運行賬戶及賬戶組,并在httpd.conf配置
User apache
Group apache
取消apache運行賬戶對網站目錄的寫入權限,上傳目錄除外,其他非網站目錄盡量不給權限
取消掉了運行賬戶對sh等的執行權限后能夠防止webshell通過默認的sh執行命令
<Directory "/var/www/html/aaa">????
<FilesMatch ".(php|php5)$">????
Deny from all????
</FilesMatch>
</Directory>
<Directory "/var/www/html/aaa">????
?? ?????Deny from all????
</Directory>
<Directory "/var/www/html/aaa">????
Order Deny,Allow
Deny from all
Allow from 192.168.1.111???
</Directory>
<Files ~ ".txt$">
Order allow,deny
Deny from all
</Files>
這樣可以防止一些直接掃描80端口的黑客
Listen 12345
AllowOverride All
改為
AllowOverride None
首先,不建議使用.htaccess,其次,使用.htaccess需要在httpd.conf中開啟,最后,開始.htaccess支持后需要在httpd.conf中配置防止.htaccess文件被下載,下面介紹幾個基本配置方法不全,更多的可以參考其他網站專門針對.htaccess 的配置方法。
DirectoryIndex index.html index.php index.htm
ErrorDocument 404 errors/404.html
order deny,allow
deny from all
allow from 192.168.0.0/24
Options -Indexes
其實一個web服務器的保護是分幾個層次的(暫不考慮程序的漏洞):
要保護一個web服務器首先得學會隱藏自己,對于一些內部系統,如后臺,內部接口等,我們可以通過改端口,限制ip等方式來不讓黑客發現。
對于多數web系統來說,都是提供給外面的訪問的,所以想隱藏自己其實是很難的。但是我們還是要學會隱藏身份,可以通過改banner,該返回信息來隱藏身份來加大黑客攻擊的難度。
其實前面兩步都是很容易突破,然后獲知一個web系統所使用的web服務器版本的,此時我們能做的就是選擇一個少漏洞的版本,及打上安全補丁。
做好基礎的安全配置,禁止目錄瀏覽,設定默認文檔,上傳目錄限制php執行等等,來阻擋黑客的入侵。
當黑客已經通過程序漏洞上傳了一個webshell并且已經成功執行了,此時,就只能很好的配置服務進程的賬戶權限,包括磁盤的讀取寫入,特殊程序如sh的執行,等等,這樣可以講危害降到最低。
最后,當黑客已經光顧之后,我們也只能通過日志來分析,看問題出在哪里了。