❶ linux伺服器中木馬怎麼處理
以下從幾個方面在說明Linux系統環境安排配置防範和木馬後門查殺的方法:
一、Web Server(以Nginx為例)
1、為防止跨站感染,將虛擬主機目錄隔離(可以直接利用fpm建立多個程序池達到隔離效果)
2、上傳目錄、include類的庫文件目錄要禁止代碼執行(Nginx正則過濾)
3、path_info漏洞修正:
在nginx配置文件中增加:
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配置
修改php.ini配置文件,禁用危險函數:
disable_funcions = 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必須禁止
六.及時給Linux系統和Web程序打補丁,堵上漏洞
❷ 伺服器500錯誤,伺服器是Nginx的。
Nginx 500錯誤(Internal Server Error 內部伺服器錯誤):500錯誤指的是伺服器內部錯誤,也就是伺服器遇到意外情況,而無法履行請求。
500錯誤一般有幾種情況:
1. web腳本錯誤,如php語法錯誤,lua語法錯誤等。
2. 訪問量大的時候,由於系統資源限制,而不能打開過多的文件
一般分析思路:
(1)查看nginx error log ,查看php error log
(2)如果是too many open files,修改nginx的worker_rlimit_nofile參數,使用ulimit查看系統打開文件限制,修改/etc/security/limits.conf
(3)如果是腳本的問題,則需要修復腳本錯誤,並優化代碼
(4)各種優化都做好,還是出現too many open files,那就要考慮做負載均衡,把流量分散到不同伺服器上去了。
錯誤原因總結:
1、硬碟空間滿了
使用 df -k 查看硬碟空間是否滿了。清理硬碟空間就可以解決500錯誤。nginx如果開啟了access log,在不需要的情況下,最好關閉access log。access log會佔用大量硬碟空間。
2、nginx配置文件錯誤
這里不是指語法錯誤,nginx如果配置文件有語法錯誤,啟動的時候就會提示。當配置rewrite的時候,有些規則處理不當會出現500錯誤,請仔細檢查自己的rewrite規則。如果配置文件里有些變數設置不當,也會出現500錯誤,比如引用了一個沒有值的變數。
3、如果上面的問題都不存在可能是模擬的並發數太多了,需要調整一下nginx.conf的並發設置數
解決方法是:
1 打開/etc/security/limits.conf文件,加上兩句
復制代碼代碼如下:* soft nofile 65535 * hard nofile 65535
2 打開/etc/nginx/nginx.conf
在worker_processes的下面增加一行
復制代碼代碼如下:worker_rlimit_nofile 65535;
3 重新啟動nginx,重新載入設置
復制代碼代碼如下:
kill -9 `ps -ef | grep php | grep -v grep | awk '{print $2}'`
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 100 -u www-data -f /usr/bin/php-cgi
killall -HUP nginx
重啟後再看nginx的錯誤日誌,也沒有發現500報錯的情況了。
4、有可能是資料庫問題我的在nginx日誌php日誌都沒有發現什麼問題, 最後發現資料庫訪問不了,修正後問題解決。
像這種問題,一般你可以直接找伺服器商家解決或提出疑問,一般都會幫你解決的,像我之前用的「小鳥雲」 的伺服器,就遇到一些問題,不過他們客服都幫我解決了!其實現在的廠商都還不錯!