打開php.ini,查找disable_functions,按如下設置禁用一些函數
disable_functions =phpinfo,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Nginx為例
1、為防止跨站感染,要做虛擬主機目錄隔離(我是直接利用fpm建立多個程序池達到隔離效果)
2、上傳目錄、include類的庫文件目錄要禁止代碼執行(Nginx正則過濾)
3、path_info漏洞修正:
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 404;
}
4、重新編譯Web Server,隱藏Server信息。
5、打開相關級別的日志,追蹤可疑請求,請求者IP等相關信息。
改變目錄和文件屬性,禁止寫入
find -type f -name \*.php -exec chmod 444 {} \;
find -type d -exec chmod 555 {} \;
注:當然要排除上傳目錄、緩存目錄等;
同時最好禁止chmod函數,攻擊者可通過chmod來修改文件只讀屬性再修改文件!
PHP配置
禁用危險函數:
dl,eval,exec,passthru,system,popen,shell_exec,proc_open,proc_terminate,curl_exec,curl_multi_exec,show_source,touch,escapeshellcmd,escapeshellarg
MySQL賬號安全:
禁止mysql用戶外部鏈接,程序不要使用root賬號,最好單獨建立一個有限權限的賬號專門用於Web程序。
查殺木馬、后門
常見的一句話后門:
grep -r –include=*.php ‘[^a-z]eval($_POST’ . > grep.txt
grep -r –include=*.php ‘file_put_contents(.*$_POST\[.*\]);’ . > grep.txt
把搜索結果寫入文件,下載下來慢慢分析,其他特征木馬、后門類似。有必要的話可對全站所有文件來一次特征查找,上傳圖片肯定有也捆綁的,來次大清洗。
查找近2天被修改過的文件:
find -mtime -2 -type f -name \*.php
注意:攻擊者可能會通過touch函數來修改文件時間屬性來避過這種查找,所以touch必須禁止
最后要及時補上Web程序漏洞
總結
木馬、后門查殺是個漫長的過程,網站一旦被入侵任何旮旯拐角都可能留下后門。中途可能和攻擊者進行神交,摸清攻擊者的性格、習性等,這些都有利於查殺。