年末了,黑客氾濫,網站被黑了,服務器也被植入了攻擊代碼,攻擊代碼待會兒貼出來php
一、找出木馬
html
find /www/web -name "*.php" |xargs grep "eval" |more
//查看最近一天內被改動的php
find -mtime -1 -type f -name \*.php
find /www/web -name "*.php" |xargs grep "shell_exec" |moremysql
find /www/web -name "*.php" |xargs grep "base64_decode" |morelinux
find /www/web -name "*.php" |xargs grep "fsockopen" |morenginx
這樣基本上就能找到攻擊代碼或者掛馬的代碼所在的文件了。web
二、重裝LINUXsql
木馬是找出了,可是天天仍是有ddos攻擊,因而我重裝了系統,安裝了wdlinux,這個系統安裝上以後就包含了lamp環境,只是php跟mysql版本太舊了點,不推薦使用,但通常的應用應該差很少了,但有個問題,就是shtml沒法解析。這裏給出解決方案:網上的其餘解決方案解決不了shell
見http://www.wdlinux.cn/bbs/viewthread.php?tid=4268&highlight=shtml,爲避免帖子被刪,這裏直接貼出來吧apache
必須修改2個地方: 一個是apache和nginx裏的conf文件
第一步:修改apache裏的httpd.conf文件
查找:AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
去掉前面的#符號
修改爲:AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html(添加.HTML是爲了讓HTML也支持include調用)
查找:Options Indexes FollowSymLinks 在後面加上INCLUDES
進入:VHOST文件夾,找到你的站點配置CONF文件,
查找:Options FollowSymLinks,
修改爲:Options FollowSymLinks INCLUDES IncludesNOEXEC
修改到這裏的時候,前往你的網站,你會發現,訪問www.abc.com 和www.abc.com/index.shtml這樣的相同頁面,倒是不一樣的
在www.abc.com/index.shtml中,用include調用的文件,系統並不能解讀出來,而在www.abc.com中卻能解讀出來,中間緣由未知!
而後接着第二步:
進入nginx,打開nginx.conf文件
在http, server, 和 location 段中加入:
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
而後,重啓服務器,OK了!所有搞定!服務器
三、dedecms問題
dedecms出了問題,要麼就是修改文章時archives is read only,要麼就是添加文章找不到主鍵,折騰了半天,其實無非是個權限問題
a、檢查mysql文件夾是否有寫入權限
cd /www/wdlinux/mysql-5.1.63/var/ctaxman
ls -l
發現不是777,乾脆把全部文件權限都設置777吧
chmod -R 777 *.*
作到這一步後報錯依然,繼續下一步
b、檢查文件的用戶權限
在上一步ls -l中發現,有幾個數據表的文件的用戶是mysql mysql,因而修改下
chown -R root:root *.*
修復數據表,仍是報錯,哈哈,其實要修改爲這個
chown -R mysql:mysql *.*
c、修復數據表
用phpmyadmin或者乾脆在crt中執行
REPAIR TABLE dede_archives
執行完後就發現可使用了。
後記:表面上來看我這就寫了三點,但在研究過程當中,到處報錯,在修復數據表的時候由於沒有把文件的權限以及宿主賦予到mysql(ps:文件是經過crt上傳的,都是root,root),因此再修復數據表的時候會報錯的,一直是沒法修復的。我還看了root用戶是否用寫入權限,由於無論是修改表仍是刪除表都報錯,都報表is read only,即便刪除數據表都不行,你說多坑爹。