Linux安全之PHP木马查杀与防范
服务器安全防范篇
1.服务器自身系统安全:
使用最新的操作系统,或者最新的稳定版(比如Ubuntu的LTS),定期打好更新,系统权限合理划分,重要文件做权限安全保护。
比如:
# chattr +i /etc/passwd
# chattr +i /etc/group
# chattr +i /etc/shadow
# chattr +i /etc/gshadow
# chattr +i /etc/ssh/sshd_config
使用DenyHost程序防止SSH被暴力攻击,具体方法见站外文章:http://http://www.zjjv.com///Article/48/66/2011/28833.htm
2.Web服务器和PHP的安全规则:
首先根据需求更新Web服务器和PHP,在网站程序目录中严格定义权限,比如不会修改的地方 做好禁止写入权限, upload目录和cache等临时目录需要做好限制PHP或相关脚本运行。
nginx规则相关脚本:
location ~ .*\.(php|php5)?$ {
…….
#——————————————
rewrite ^/(uc\_client|templates|include|plugins|admin|attachments|images|
forumdata)/.*\.(php|php5)?$ /50x.php last;
#——————————————-
}
apache规则相关脚本
//注意:这里改成你需要屏蔽的目录 比如upload目录
php_flag engine off
Order allow,deny
Deny from all
PHP.INI需要修改的地方(很重要)
查找:disable_functions
找到后在=后面添加
exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,symlink,link,leak,fsockopen,proc_open,
popepassthru,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen
这里都是禁止在php里面执行的函数
服务器木马查杀篇(PHP)
1.安装杀毒软件,我的服务器使用的是avast效果还算比较好。
2.根据木马特征扫描人工排查(人工排查这个就需要个人经验判断了)
PHP木马的最明显特征是使用了eval与base64_decode这个函数还有一些比较危险的函数。
可以输入下面的命令 进行查询
find /home/www/ -type f -name "*.php" | xargs grep "eval(" |more
增强版(在网站目录执行):
find ./ -name "*.php" |xargs egrep "phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc"> /tmp/php.txt
grep -r –include=*.php '[^a-z]eval($_POST' . >/tmp/eval.txt
grep -r –include=*.php 'file_put_contents(.*$_POST\[.*\]);' . >/tmp/file_put_contents.txt
find ./ -name "*.php" -type f -print0 | xargs -0 egrep "(phpspy|c99sh|milw0rm|eval\(gzuncompress\(base64_decoolcode|eval\(base64_decoolcode|spider_bc|gzinflate)" | awk -F: '{print $1}' | sort | uniq
上面代码最终会讲名单输出到 /tmp 目录中 请直接查看列表 根据情况进行处理。
查找最近一天被修改的PHP文件
#find -mtime -1 -type f -name \*.php
修改网站的权限
find -type f -name \*.php -exec chmod 444 {} \;
find ./ -type d -exec chmod 555{} \;
以上就是我最近在互联网上查询到的一些安全与查杀木马的一些方法,也许还不是很全面,欢迎各位大大在留言中补充。
补充1:学会利用日志功能,查看黑客访问了哪些文件逐条查询,也许你会发现意想不到的东西-w-
补充2:如果觉得日志太多了,可以考虑删除掉,然后过一会再来看。当然大型网站就麻烦了。