博客建立了一些时间,某天打开突然发现访问很慢,刷新直接显示“Service Unavailable”什么情况?
查看网站访问日志,发现大量IP在对wp-login.php和mlrpc.php这二个文件进行访问。
估计有人在对wordpress进行后台登录密码进行暴力破解。或者是对wordpress网站下的xmlrpc.php文件通过大量恶意提交POST,不断的重复访问xmlrpc.php文件,形成DDOS攻击,导致网站服务器CPU过高停机,网站无法打开。
解决方案
我们需要修改Wordpress博客的后台默认登录入口wp-login.php,防止被爬虫扫到后有人过来暴力破解后台密码。另外直接禁止恶意IP访问xmlrpc.php文件,避免博客被DDOS攻击。
修改Wordpress后台默认登录入口
首先我们找到网站根目录下的wp-login.php文件,备份一份到本地,然后将文件名更改为一个不容易猜测到的文件名,比如mhoutai.php
1, 使用编辑器打开mhoutai.php文件,将文件里面的所有wp-login.php
替换成mhoutai.php
.
2, 找到wp-includes目录下的general-template.php文件,使用编辑器打开,将文件里面的所有的wp-login.php
替换成mhoutai.php
。
然后再从general-template.php文件里搜索:
$login_url = site_url( 'mhoutai.php', 'login' );
大概是在385行左右,修改成:
$login_url = site_url('index.php', 'login');
上面这条的含义:每当有人访问默认后台入口时,自动跳转到博客首页index.php文件。也就是说我们只能成你的网址/mhoutai.php这个文件登录呢。
到此,我们已经在Wordpress博客的后台登录入口修改成了 你的网址/mhoutai.php。以后记得通过这个地址访问后台。
再次加强
在主题 functions.php 添加下方的代码:
//后台访问地址修改
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
if($_GET['site'] != 'pigji.com')header('Location: https://www.pigji.com/');
}
修改完成后,后台的登录地址就会变成
https://www.pigji.com/wp-login.php?site=pigji.com
如果后面没有添加参数,自动跳转到首页。
另外也可以通过安装安全插件 Limit Login Attempts
, 启用了该插件后不需要修改什么,当有人连续登陆失败,插件会临时屏蔽登陆 IP 地址。但是WP博客插件装多了影响网站速度,所以还是推荐按前面方法手动修改比较好。
禁止恶意用户访问xmlrpc.php文件
恶意用户通过大量IP重复的对xmlrpc.php文件进行post提交导致网站CPU占用过高,达到DDOS目的。我们可以通过屏蔽甚至删除xmlrpc.php来防止这类行为。但是会有一定影响:
1、博客如果有使用pingback功能的话,屏蔽xmlrpc.php将导致功能无法使用。
2、博客如果有使用JetPack之类的插件,删除xmlrpc.php后将导致网站异常。
但是一般我们都没用以上这些功能。所以可以直接屏蔽XML-RPC(pingback)的功能,在wordpress模板文件中找到模板函数文件functions.php文件,添加以下内容
add_filter('xmlrpc_enabled', '__return_false');
如果是nginx环境,直接通过修改网站配置文件,添加以下内容,达到禁止所有人访问xmlrpc.php文件的目的。
location ~* /xmlrpc.php {
deny all;
}
如果是Apache环境,可以通过.htaccess文件添加以下内容来屏蔽对xmlrpc.php文件的访问
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
如果以上方法你都不懂,干脆直接删除xmlrpc.php文件吧。
好了,如果有站长想购买国外VPS建立自己的博客网站的话,可以看看本站的VPS优惠资讯: