年末了,黑客泛滥,网站被黑了,服务器也被植入了攻击代码,攻击代码待会儿贴出来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,即便删除数据表都不行,你说多坑爹。