昨晚收到Linode的邮件,说VPS超过2小时CPU占用率超过70%,于是登陆上去查看进程,发现都是php-fpm。因为使用的是nginx,所以马上查看nginx日志先,发现了博客系统中不断有POST到xmlrpc.php的记录,Google后发现其实是用来破解密码的(也可以用来发动DDoS),不过鉴于频率并不高,所以可以确定只是破解,有兴趣了解的可以看看这篇文章:最新破解Wordpress后台密码的方法
参考了一下破解成功的XML文件,我用Nginx的rewrite模块重定向到了一个xml文件,
location = /xmlrpc.php {
if ( $request_method = GET ){
rewrite (.*) /methodxmlrcp.html last;
}
if ( $request_method = POST ){
rewrite (.*) /sucssxmlrcp.xml last;
}
}
其中methodxmlrcp.html的内容为:
<html><head></head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">XML-RPC server accepts POST requests only.</pre>
</body></html>
其中sucssxmlrcp.xml的内容为
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>isAdmin</name>
<value>
<boolean>1</boolean>
</value>
</member>
<member>
<name>url</name>
<value>
<string>http://blog.7xiaowu.cn/</string>
</value>
</member>
<member>
<name>blogid</name>
<value>
<string>1</string>
</value>
</member>
<member>
<name>blogName</name>
<value>
<string>游侠海外岛</string>
</value>
</member>
<member>
<name>xmlrpc</name>
<value>
<string>http://blog.7xiaowu.cn/xmlrpc.php</string>
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>
最后重载了nginx后问题解决了