限制 IP 访问 WordPress 登录画面

技术 秋水逸冰 37662浏览 13评论

wordpress security
WordPress 是目前最流行的 CMS,正因为如此,针对它的登录爆破就时刻从未停止过。
如果你安装了一款名叫「Simple Login Log」的插件,你就会知道,每天的暴力破解次数是多么丧心病狂。该插件会记录每一次登录后台的操作,不管是成功或失败都会留下记录。
正因如此,还是未雨绸缪做一些防范比较好。本次介绍在使用 Apache 的 VPS 上,如何限制 IP 访问 WordPress 后台登录画面。

Apache httpd 的设定方法

使用 Apache 可以限制 IP 访问某个特定的文件或文件夹。具体教程可以参考:Files Directive
下面简单介绍如何限制 WordPress 后台登录画面的文件「wp-login.php」。
举例来说,只允许 IP 地址「192.168.2.1」访问,按照如下设定,写入 Apache 的配置文件「httpd.conf」或者网站根目录下的「.htaccess」都可以。

<Files "wp-login.php">
    Order Deny,Allow
    Deny from all
    Allow from 192.168.2.1
</Files>

只允许某 IP 地址段「192.168.2.*」访问,则为:

<Files "wp-login.php">
    Order Deny,Allow
    Deny from all
    Allow from 192.168.2
</Files>

允许多个 IP 地址「192.168.2.1」「192.168.2.2」访问,则为:

<Files "wp-login.php">
    Order Deny,Allow
    Deny from all
    Allow from 192.168.2.1 192.168.2.2
</Files>

没有固定 IP 的对应方法

如果你已经有了 VPS,当然这个问题就不是问题了。
VPS 都是使用固定 IP 的,你只需使用本站的几个一键脚本,就能分分钟搭建好,然后挂上 socks5 代理,不就是固定 IP 了么。

Shadowsocks Python 版一键安装脚本(CentOS,Debian,Ubuntu)
Shadowsocks Go 版一键安装脚本(CentOS,Debian,Ubuntu)
ShadowsocksR 版一键安装脚本(CentOS,Debian,Ubuntu)
CentOS 下 Shadowsocks-libev 一键安装脚本
Debian 下 Shadowsocks-libev 一键安装脚本

当然,如果不想使用以上方法,那么还有一个选择,就是安装「SiteGuard WP Plugin」插件。

转载请注明:秋水逸冰 » 限制 IP 访问 WordPress 登录画面

发表我的评论
取消评论

请输入正确答案后提交评论 *超出时限。 请再次填写验证码。

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (13)

  1. 我只允许QQ登录,哈哈 只有本地登录了我的QQ才能登录,而我的QQ要在本地登录是需要我手机验证的
    小伍的游乐场5年前(2018-12-24)回复
  2. 都忘了还有这一招,不过自己现在用的WP Hide Login,效果也差不多,输错后缀时返回404,总之就是尽量隐藏登陆页
    wbuntu5年前(2018-11-18)回复
  3. Wordfence是个不错的wordpress插件。
    Harry6年前(2018-04-08)回复
  4. 我用谷歌二次验证插件miniOrange 2 Factor Authentication,很好用。在新设备上登录会验证
    蛤蛤7年前(2017-03-18)回复
  5. 其实一般应该把后台的路由整个写到只允许本地链接,然后从服务器里开一个代理入口...只有连接代理才能进去这样比较科学,有通信加密在中间,比只是用apache来阻拦更安全可靠
    mountainguan7年前(2017-03-16)回复
  6. 那nginx怎么限制
    梧桐夜雨7年前(2017-01-01)回复
  7. 我都懒的藏,直接在登录页面弄微信通知,就是一访问admin,微信就收到一条消息。还有种方法是在index.php,设置个参数接收变量 例如 admin/index.php?dasdasda=asdasdasd t条件不成立即return
    ectest7年前(2016-12-10)回复
  8. 惊讶的发现博主博客可以用ipv6访问。我之前一直没成功,才发现是nginx没有监听指定ipv6地址。
    John7年前(2016-11-29)回复
  9. Authenticator怎么样!
    sky1707年前(2016-11-28)回复
  10. 嗨,我之前用了一个方法,那就是改掉我的博客的登录地址,改成一个又臭又长的地址,然后把地址藏在收藏夹里面。然而,这样可以抵御绝大部分的爆破,每月还是会有个别个ip能找到我的登录页面。 不确定是不是真的找到了。因为他们的登录密码和用户名都是空的,应该是没有确切找到,却使用脚本开启了相当于点击“登录”的行为,所以会出现双空的邮件。
    Javen7年前(2016-11-25)回复
  11. 用httpd来限制特定IP登录,是不怎么靠谱的。 正确的做法是在防火墙里设置规则。
    seder7年前(2016-11-24)回复
    • 你确定?防火墙又管不了应用层的流量,你只能一刀把传输层所有流量都屏蔽了。
      redes4年前(2020-04-01)回复