系统是 windows 2008 R2 ,通过 IIS7.5 ,以 fastcgi 模式执行 php ,这两天怀疑遭到攻击, php-cgi 进程可以出现上百个那么多,而且从用户名看出均是 IIS 下某个特定站点启动的。怀疑该站点下是否有某段程序写的有漏洞造成死循环,被外界发现了,然而,该如何进一步定位这个问题?
1
huigeer Oct 26, 2016 via Android
iis 日志导出,分析访问日志路由和 ip
|
2
cxbig Oct 26, 2016
僵尸进程,我司有类似情况, Linux 系统,写了一个脚本从 log 里统计特定参数,达到阈值自动重启 php-fpm ,并清理 pid 小于新的主进程的所有 worker 。
|
3
vibbow Oct 26, 2016
LZ 你 APP POOL 的 max instance 设置的多少
|
4
abcbuzhiming OP @cxbig 你们没有分析为啥会产生僵尸进程?
|
5
vibbow Oct 26, 2016
@abcbuzhiming 他们是 linux......
|
6
cxbig Oct 26, 2016
@abcbuzhiming 很粗暴的解决方案,暂时没有深挖。
|
7
enenaaa Oct 26, 2016 via Android
如果是死循环,那 cpu 占用应该很高。如果 cpu 空闲,,看一下网络连接情况,是不是一直存在空闲连接。
|
8
abcbuzhiming OP @vibbow 最大工作进程,设置的为 2.不知道为啥就能蹦出那么多来
|
9
abcbuzhiming OP @enenaaa 很奇怪的是,这些进程 CPU 占用都不是很高,普遍都是 1-3%晃悠。我们也想不通为啥
|
10
enenaaa Oct 26, 2016 via Android
@abcbuzhiming 可能是某些蜘蛛类客户端长时间扫描你的网站,或者它们恶意保持连接
|
11
abcbuzhiming OP @enenaaa 可是我的最大进程只是 2 啊,就算是保持连接,难道 php-cgi 不会自动退出吗?
|
12
vibbow Oct 26, 2016
@abcbuzhiming php-cgi 在超过 实例最大请求数 之前,一般情况不会自动退出
|
13
vibbow Oct 26, 2016
@abcbuzhiming 不过为什么是 2 ? fastcgi 默认设置都是 4 的啊...
|
14
vibbow Oct 26, 2016
还有 LZ 你的活动超时 和 空闲超时 都是多久?
|
15
abcbuzhiming OP @vibbow 空闲超时 20 分钟,活动超时 60 秒
|
16
abcbuzhiming OP 我操我发现这些 php-cgi.exe 真虎啊,我在 IIS 的程序池手动回收他们都不退出的?
|
17
vibbow Oct 27, 2016
@abcbuzhiming 记得看过 IIS 的推荐配置,这两项均是 300 秒...
|
18
vibbow Oct 27, 2016
@abcbuzhiming 你用 process explorer 看一下进程树,看 php 的进程还在不在 w3wp 下面
|
19
realpg PRO 老老实实用 linux 就完了……
|
20
ijustdo Oct 27, 2016
linux 下 我一般这么干 找到占用 cpu 最高的 phpcgi 然后用 lsof 和 strace 跟踪
HPHP_PID=`ps aux|grep "php-fpm"|grep -v 'grep'|awk '{print $3" " $2}'|sort|tail -n 1|awk '{print $2}'` if [ -n HPHP_PID ]; then lsof -p ${HPHP_PID} > "/home/lsof_${HPHP_PID}" strace -s 256 -p ${HPHP_PID} > "/home/starce_${HPHP_PID}" fi 看跟踪结果 再解决 |