WordPress 全方位防暴力破解完整方案

WordPress 暴力破解防护完全指南|安全加固与恶意登录拦截

暴力破解集中攻击:wp-login.php、xmlrpc.php,分5 层防护,从易到难部署,全部适配 Ubuntu26.04+Nginx 环境。

一、基础账号加固(必做,源头防护)

1. 删除默认管理员 admin

  1. 后台新建全新管理员用户名(禁止 admin、root、test、site)
  2. 登录新账号,删除原admin账号、数据并入新用户

2. 高强度密码

≥16 位:大小写 + 数字 + 特殊符号,杜绝生日、手机号、域名;

插件:Force Strong Passwords强制全站用户强密码。

3. 开启 2FA 两步验证(最有效)

即使密码泄露也无法登录

  • 推荐插件:Wordfence Login Security / WP 2FA,TOTP 谷歌验证器
  • 强制所有编辑 / 管理员开启 2FA,普通用户可选开启。

二、WP 插件层防护(最快落地,新手首选)

方案 1:限制登录失败次数(拦截高频猜密码)

Limit Login Attempts Reloaded(免费)

设置参数:

  • 失败 3 次→临时封禁 IP 30 分钟
  • 累计 5 次封禁→永久拉黑 IP
  • 白名单填入自己办公固定 IP,不受限制。

方案 2:修改默认登录地址,隐藏 /wp-admin

插件:WPS Hide Login

自定义登录:xxx.com/my-admin-2026,原/wp-login.php、/wp-admin直接 404,爬虫找不到登录页。

方案 3:禁用 XML-RPC(爆破重灾区,不用 APP/Jetpack 务必关闭)

xmlrpc 支持单请求批量几百次密码尝试,绕过登录限制

  • 插件关闭:Wordfence 一键禁用 XML-RPC
  • 代码禁用(functions.php)

add_filter('xmlrpc_enabled','__return_false');
  • Nginx 直接拦截(下文配置)

全能安全插件(一站式 WAF)

Wordfence Security(免费够用)

开启:防爆破、恶意 IP 拦截、恶意扫描拦截、漏洞扫描、登录异常邮件提醒。

三、Nginx 服务器层防护(Ubuntu,底层拦截,优先于 WP 运行)

编辑站点配置/etc/nginx/sites-available/域名.conf,写入 server {} 内,nginx -t && systemctl reload nginx生效。

1. IP 白名单锁死后台(固定 IP 建站最优,外人无法访问登录)

# 仅允许自己IP访问登录与后台
location = /wp-login.php {
    allow 你的公网IP;
    deny all;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ^~ /wp-admin/ {
    allow 你的公网IP;
    deny all;
    # 前台AJAX放行
    location = /wp-admin/admin-ajax.php {allow all;}
    try_files $uri $uri/ /index.php?$query_string;
}

2. 直接屏蔽 xmlrpc.php

location = /xmlrpc.php {
    deny all;
    return 444; # 丢弃连接,不返回页面
}

3. 对 wp-login 请求限流,防高频爆破

nginx 全局 http 段添加:

limit_req_zone $binary_remote_addr zone=wplogin:10m rate=2r/m;

站点 server 添加:

location ~ /wp-login.php {
    limit_req zone=wplogin burst=2 nodelay;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

限制单个 IP 每分钟最多 2 次登录请求,卡死批量爬虫。

四、系统 Fail2ban 封禁(Ubuntu 服务器级自动拉黑恶意 IP)

1. 安装

sudo apt update && sudo apt install fail2ban -y

2. WP 日志对接:安装 WP Fail2ban 插件(WP 后台),登录失败写入系统 syslog

3. 添加规则

sudo vim /etc/fail2ban/filter.d/wordpress.conf
[Definition]
failregex = .*Authentication failure for.*from <HOST>
ignoreregex =

sudo vim /etc/fail2ban/jail.local
[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/syslog
maxretry = 4
bantime = 3600
findtime = 300

sudo systemctl restart fail2ban

4 次失败→自动拉黑 IP1 小时,服务器底层拦截,绕不开。

五、CDN 云端防护(Cloudflare,在外网就拦截攻击,不进源站)

  1. CF→安全→WAF 规则:拦截uri contains wp-login.php高频访问
  2. CF→安全→速率限制:单 IP1 分钟 > 10 次登录直接封禁
  3. 开启 CF 机器人防护,自动拦截爬虫爆破 IP

六、可选进阶配置

  • 隐藏 WP 版本:删除源码版本号,防止漏洞针对性扫描
  • 禁止直接访问 wp-config.php:Nginx 拦截
location ~* wp-config.php {deny all;}
  • 定期更新 WP 内核、主题、插件,漏洞是间接入侵入口

最简落地优先级(3 步快速搞定)

  1. 改管理员账号 + 2FA 两步验证
  2. Nginx 屏蔽 xmlrpc + 登录限流
  3. Limit Login Attempts 限制 3 次失败锁 IP
本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。
       本系列的一部分

WordPress建站

Post 10 of 10

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress