主頁 > 知識庫 > Linux下PHP網(wǎng)站服務器安全配置加固防護方法【推薦】

Linux下PHP網(wǎng)站服務器安全配置加固防護方法【推薦】

熱門標簽:新余高德地圖標注怎么修改 高德地圖標注好做嗎 大連400電話如何申請 電銷機器人價值 外呼系統(tǒng)坐席費計入會計哪個科目 如何分析地圖標注 電銷機器人怎么接線路 撫順地圖標注 達亞電銷機器人官網(wǎng)

PHP被廣泛用于各種Web開發(fā)。而當服務器端腳本配置錯誤時會出現(xiàn)各種問題?,F(xiàn)今,大部分Web服務器是基于Linux環(huán)境下運行(比如:Ubuntu,Debian等)。

本文詳細總結了PHP網(wǎng)站在Linux服務器上面的安全配置,包含PHP安全、mysql數(shù)據(jù)庫安全、web服務器安全、木馬查殺和防范等,很好很強大很安全。(如果需要深入的安全部署建議找專業(yè)做安全的國內(nèi)公司如:Sinesafe,綠盟,啟明星辰等等都是比較不錯的專業(yè)做網(wǎng)站安全的公司)

PHP安全配置

1. 確保運行php的用戶為一般用戶,如www

2. php.ini參數(shù)設置

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,phpinfo #禁用的函數(shù)

expose_php = off #避免暴露PHP信息

display_errors = off #關閉錯誤信息提示

register_globals = off #關閉全局變量

enable_dl = off #不允許調(diào)用dl

allow_url_include = off #避免遠程調(diào)用文件

session.cookie_httponly = 1 #http only開啟

upload_tmp_dir = /tmp#明確定義upload目錄

open_basedir = ./:/tmp:/home/wwwroot/#限制用戶訪問的目錄

open_basedir參數(shù)詳解

open_basedir可將用戶訪問文件的活動范圍限制在指定的區(qū)域,通常是其家目錄的路徑,也可用符號"."來代表當前目錄。注意用open_basedir指定的限制實際上是前綴,而不是目錄名。

舉例來說: 若"open_basedir = /home/wwwroot", 那么目錄"/home/wwwroot"和"/home/wwwroot1"都是可以訪問的。所以如果要將訪問限制在僅為指定的目錄,請用斜線結束路徑名。

注意:

從網(wǎng)上獲取的資料來看,open_basedir會對php操作io的性能產(chǎn)生很大的影響。研究資料表明,配置了php_basedir的腳本io執(zhí)行速度會比沒有配置的慢10倍甚至更多,請大家自己衡量

open_basedir也可以同時設置多個目錄, 在Windows中用分號分隔目錄,在任何其它系統(tǒng)中用冒號分隔目錄。當其作用于Apache模塊時,父目錄中的open_basedir路徑自動被繼承。

MySQL安全設置

1. MySQL版本的選擇

在正式生產(chǎn)環(huán)境中,禁止使用4.1系列的MySQL數(shù)據(jù)庫。至少需要使用5.1.39或以上版本。

2. 網(wǎng)絡和端口的配置

在數(shù)據(jù)庫只需供本機使用的情況下,使用–skip-networking參數(shù)禁止監(jiān)聽網(wǎng)絡 。

3. 確保運行MySQL的用戶為一般用戶,如mysql,注意存放數(shù)據(jù)目錄權限為mysql

vi/etc/my.cnf 
user = mysql 

4. 開啟mysql二進制日志,在誤刪除數(shù)據(jù)的情況下,可以通過二進制日志恢復到某個時間點

vi/etc/my.cnf 
log_bin = mysql-bin 
expire_logs_days = 7 

5. 認證和授權

(1) 禁止root賬號從網(wǎng)絡訪問數(shù)據(jù)庫,root賬號只允許來自本地主機的登陸。

mysql>grantallprivilegeson*.* toroot @localhost identified by'password'withgrantoption; 
mysql>flush priveleges; 

(2) 刪除匿名賬號和空口令賬號

mysql>USE mysql; 
mysql>deletefromuserwhereUser=; 
mysql>deletefromuserwherePassword=; 
mysql>deletefromdb whereUser=; 

web服務器安全

確保運行Nginx或者Apache的用戶為一般用戶,如www,注意存放數(shù)據(jù)目錄權限為www

防止sql注入

if( $query_string ~* ".*[\;'\&;\&;].*"){ 
return404; 
} 

關閉存放數(shù)據(jù)上傳等目錄的PHP解析

location ~* ^/(attachments|data)/.*\.(php|php5)${ 
deny all; 
} 

針對Apache:關閉圖片目錄/上傳等目錄的PHP解析

order allow,deny 
Deny from all 

木馬查殺和防范

php木馬快速查找命令

grep-r --include=*.php '[^a-z]eval($_POST'/home/wwwroot/ 
grep-r --include=*.php 'file_put_contents(.*$_POST\[.*\]);'/home/wwwroot/ 

利用find mtime查找最近兩天或者發(fā)現(xiàn)木馬的這幾天,有哪些PHP文件被修改

find-mtime -2 -typef -name \*.php 

防范:

1. 做好之前的安全措施,比如禁用相關PHP函數(shù)等

2. 改變目錄和文件屬性

find-typef -name \*.php -execchomd 644 {} \; 
find-typed -execchmod755 {} \; 
chown-R www.www /home/wwwroot/www.waitalone.cn 

3. 為防止跨站感染,需要做虛擬主機目錄隔離

(1) nginx的簡單實現(xiàn)方法

利用nginx跑多個虛擬主機,習慣的php.ini的open_basedir配置:

open_basedir = ./:tmp:/home/wwwroot/ 

注:/home/wwwroot/是放置所有虛擬主機的web路徑

黑客可以利用任何一個站點的webshell進入到/home/wwwroot/目錄下的任何地方,這樣對各個虛擬主機的危害就很大

例如: /data/www/wwwroot目錄下有2個虛擬主機

修改php.ini

open_basedir = ./:/tmp:/home/wwwroot/www.sinesafe.com:/home/wwwroot/back.sinesafe.com 

這樣用戶上傳webshell就無法跨目錄訪問了。

(2) Apache的實現(xiàn)方法,控制跨目錄訪問

在虛擬機主機配置文件中加入

php_admin_value open_basedir "/tmp:/home/wwwroot/www.sinesafe.com"

總結

以上所述是小編給大家介紹的Linux下PHP網(wǎng)站服務器安全配置加固防護方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

標簽:新鄉(xiāng) 湖南 遼源 楊凌 南通 衡水 海東 黃石

巨人網(wǎng)絡通訊聲明:本文標題《Linux下PHP網(wǎng)站服務器安全配置加固防護方法【推薦】》,本文關鍵詞  Linux,下,PHP,網(wǎng)站,服務器,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux下PHP網(wǎng)站服務器安全配置加固防護方法【推薦】》相關的同類信息!
  • 本頁收集關于Linux下PHP網(wǎng)站服務器安全配置加固防護方法【推薦】的相關信息資訊供網(wǎng)民參考!
  • 推薦文章