信科网络 · 11 年只做 WordPress | 建站 / 主题 / 插件 / 商城 / 迁移 / 托管 | 累计服务 3000+ 企业 | 源码全交付
服务热线:13280692153 邮箱:web@wordpressx.com
工作日 08:30-18:0013280692153 免费诊断
首页/WordPress 防火墙与 WAF 配置
FIREWALL & WAF

WordPress 防火墙与 WAF 配置
挡住机器,别挡住客户

防火墙配置容易走两个极端:一种完全不设,几万次撞库请求照单全收;另一种规则开得太狠,把 Googlebot、支付回调、自家出口 IP 一并封掉,业务先挂。这一页讲分层思路:哪一层挡什么、日志怎么读、规则怎么写、上线后怎么验证没误伤真实访客。

电话咨询 13280692153 提交需求

11 年WordPress 深耕
3000+服务企业
4 层防护位置
100%规则上线前先灰度

WHAT IT LOOKS LIKE

被扫的五个信号
日志比监控更早发现问题

WordPress 站被自动化工具扫描是常态。区别只在于有没有被挡住、有没有被拖慢。下面这些迹象在访问日志里都能直接看到。

01

wp-login.php 被反复 POST

日志里同一 IP 每分钟几十次 POST /wp-login.php,状态码多为 200 或 302。这是撞库,密码弱的站几小时内就被进。用 grep -c "POST /wp-login.php" access.log 数一天的次数,正常是几十,被盯上的能到几万。

02

xmlrpc.php 被当放大器

POST /xmlrpc.php 加上 system.multicall,一次请求能试上百个密码,还能做 pingback 反射攻击。多数企业站用不到这个接口,关掉损失很小。

03

插件与配置文件被探测

连续请求 /wp-content/plugins/xxx/readme.txt、/wp-config.php.bak、/.env、/backup.zip,是在按已知漏洞清单逐个试。数量大、单个成本低,是 WAF 最适合拦的一层。

04

404 数量突然翻十倍

带宽和 CPU 未必立刻报警,404 比例会先跳起来。超过总请求的 20% 基本可确定在被扫,这类流量会拖慢正常请求,尤其在小机器上。

05

带宽或连接数异常

监控里带宽曲线在凌晨出现尖峰,或 netstat 里同一 IP 上百个连接。这是 CC 类请求,每个都「合法」,只是量太大,靠规则拦不住,要用限速。

FOUR LAYERS

四层防护各管什么
越靠前越省资源

很多站只在 WordPress 里装一个安全插件,等于把门卫放在客厅:请求跑完 PHP 与数据库才被判定为恶意,资源早已消耗。防护应该尽量前置。

01

第一层:CDN 与云 WAF

请求在到达源站前被过滤,是成本最低的一层。能挡 CC、按地域拦、识别常见扫描器指纹。缺点是规则由服务商维护,细粒度有限,且要正确配置回源,否则真实 IP 会暴露。

  • 适合:有稳定流量、怕被打的站
  • 配置要点:回源只允许 CDN 节点 IP
02

第二层:Web 服务器

Nginx 的 deny、limit_req、limit_conn 三件套,加上 fail2ban 读日志封 IP。这一层不消耗 PHP 资源,适合拦固定路径与限制登录频率。

03

第三层:应用层插件

Wordfence 这类插件能识别 WordPress 特有的攻击模式:伪造的 REST 请求、恶意上传、插件漏洞利用特征。代价是每个请求都要过一遍 PHP,规则库大时会拖慢站点。

04

第四层:代码与权限

不是拦截,而是让攻击进来后也拿不到东西:数据库用户降权、上传目录禁执行 PHP、DISALLOW_FILE_EDIT 关掉在线编辑、密钥定期轮换。不产生误封,但要一次配到位。

READ THE LOG

先读日志再写规则
四条命令看清攻击面

不读日志就套用网上的规则集,是误封的主要来源。先花十分钟看清自己站被怎么打,再决定拦什么。

01

找出请求量最大的 IP

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20。正常站的前几名应该是自己的监控、搜索引擎、少量真实访客。如果某个陌生 IP 一天几万次,基本可以确定是扫描器或采集。

02

看谁在打登录页

grep "POST /wp-login.php" access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head。结果里 IP 分布很散、每个只试几十次,说明是分布式撞库,封单个 IP 意义不大,要按频率限速。

03

统计被探测的路径

awk '{print $7}' access.log | sort | uniq -c | sort -rn | head -30。出现大量 .env、wp-config.php.bak、readme.html,就可以把这些路径一次性 deny 掉,成本极低。

04

分 User-Agent 看

扫描器的 UA 往往是空的,或者写着 python-requests、curl、Go-http-client。空 UA 的请求可以直接拒绝,正常浏览器不会这样发。注意别把搜索引擎的 UA 一并拦了,Googlebot 的 UA 是明确声明且可反向验证的。

读日志前先确认日志里有真实 IP。套了 CDN 或反向代理的站,$remote_addr 会是代理地址,要在 Nginx 里配 set_real_ip_from 与 real_ip_header X-Forwarded-For,否则所有请求看起来都来自同一个 IP,一封就是全站。

NGINX & FAIL2BAN

服务器层的三条规则
改完先 test,再 reload

下面三条覆盖了大部分企业站的实际需求,规则短、易维护、误伤面小。写入站点配置文件后执行 nginx -t 确认语法,再 systemctl reload nginx。

01

封掉不该被访问的路径

对 wp-config.php、.env、readme.html、license.txt 这类文件直接返回 403。这些文件要么含敏感信息,要么暴露版本号。规则写成精确匹配,不要用宽泛通配,避免误伤正常的 PHP 文件。

  • 先备份站点配置再改
  • 改完访问一次确认返回 403 而非 500
02

限制登录频率

定义 limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;,再在 location = /wp-login.php 里挂上 limit_req zone=login burst=3 nodelay;。含义是同一 IP 每分钟最多 5 次,允许 3 次突发。人为登录完全够用,脚本会被挡在门外。

03

关掉 xmlrpc

企业站基本不用这个接口,直接 location = /xmlrpc.php { deny all; }。如果用了手机客户端发文,或者 Jetpack 这类依赖 xmlrpc 的服务,就不能一刀切,改成只允许特定 IP 访问。

fail2ban 把「反复失败」的 IP 自动拉黑,适合撞库与暴力破解。典型配置是监控登录失败日志,同一 IP 十分钟失败 5 次封 1 小时。注意两点:封禁别设成永久,动态 IP 用户会被误伤;白名单务必加公司出口 IP、监控节点与搜索引擎。

LAYER MATRIX

四层工具对照表
管什么、不管什么

同一件事往往能在多层做,选哪层取决于流量规模与运维能力。最后一列是实际踩过的误伤场景。

层级 常用工具 擅长拦截 误伤风险
CDN / 云 WAF Cloudflare、云厂商 WAF CC 攻击、地域封锁、扫描器指纹 回源 IP 未锁,攻击者可绕过直连源站
Web 服务器 Nginx deny / limit_req、Apache 规则 固定路径探测、登录暴力破解 通配写太宽会拦掉正常接口
自动封禁 fail2ban、云防火墙 反复失败的同一 IP 封禁过久会误伤动态 IP 用户
应用层插件 Wordfence 等安全插件 插件漏洞利用、恶意上传、REST 滥用 规则库大时拖慢每个请求
代码与权限 DISALLOW_FILE_EDIT、目录禁执行 拿到后台后的进一步破坏 几乎无误伤,但需一次配置到位

表格的顺序也是建议的上线顺序:先做代码层静态加固,再加服务器规则,最后才考虑云 WAF。反过来先上云 WAF,容易在没搞清流量特征时把正常请求拦掉。接入细节见CDN 加速配置。

VERIFY & PREVENT

上线后怎么确认没封错人
三件事必做

规则上线当天必须验证,别等客户打电话说打不开才发现。重点是「该通的通、该拦的拦」。

01

白名单先落地

公司出口 IP、客服与运营的网络、监控探针、支付与物流回调 IP、搜索引擎,全部加进白名单。白名单写在规则最前面,否则会被后面的 deny 覆盖。

02

用真实设备走一遍

手机 4G 与公司 WiFi 各测一次:首页、内页、搜索、表单提交、后台登录。4G 走运营商 NAT,最容易暴露「按 IP 限速过严」。

  • 重点测表单与支付回调
  • 测完看日志里有没有被拦的记录
03

留一条回滚路径

改配置前备份原文件,规则用注释分段,出问题能整段注释掉再 reload。云 WAF 侧保留「关闭当前规则集」的入口,别把开关藏在自己也找不到的地方。

规则要跟着业务变:上新站、换 CDN、加支付通道、做展会推广,都可能要调白名单。建议每季度看一次拦截日志,清掉长期没命中的规则,补进新特征。防护到位后,剩余风险主要在账号与插件漏洞,处置见WordPress 安全加固与木马清理与WordPress 安全插件。

FAQ

防火墙与 WAF 常见五问

装了安全插件,还需要服务器防火墙吗?

需要,两者管的不是同一段。插件在 PHP 里跑,请求已消耗进程与内存;服务器规则在进入 PHP 前就拒绝,成本低得多。被 CC 时插件本身也会被打挂。合理组合是服务器层拦路径与频率,插件层识别 WordPress 特有的攻击特征。

开启 WAF 后百度或谷歌抓取变少了怎么办?

先确认是不是把爬虫拦了:查拦截日志里有没有 Googlebot、Bingbot、Baiduspider 的 UA。有的话把搜索引擎 IP 段加白名单,不要只按 UA 放行,UA 可以伪造。同时确认 robots.txt 没被改动。

为什么封了 IP,攻击还是继续?

多数扫描来自代理池,IP 每天换。这类要按行为特征拦:限制登录频率、拒绝空 UA、拦截特定路径组合,而不是依赖 IP 黑名单。另一种情况是源站 IP 已暴露,攻击者绕过 CDN 直连,那就要把源站设为只允许 CDN 节点访问。

限速设多少合适,会不会影响正常访客?

登录页可以设得很严,每分钟 5 次对人工操作完全够用。全站限速要保守,先只记录不拦截,观察一周的正常峰值,再按两倍设阈值。直接套「每秒 1 次」,遇到页面加载几十个静态资源就会误伤。

小企业站需要配到哪一层?

至少做完服务器层与代码层:封敏感路径、关 xmlrpc、限制登录频率、上传目录禁执行、关掉在线文件编辑。这五项配一次长期有效,几乎不产生误封。流量不大又没被攻击过的站,云 WAF 可以暂缓;出现带宽异常或收到 abuse 通知再补。HTTPS 配置见SSL 证书与 HTTPS 配置。

PROTECTION REVIEW

日志里全是扫描请求
先看流量特征,再决定拦在哪一层

提供一段时间的访问日志与服务器类型,我们先做只读分析:攻击来源分布、被探测的路径、是否有绕过 CDN 的直连,再给分层规则建议,上线后陪跑一遍,确认没误伤询盘与支付。

电话/微信 13280692153 邮箱 web@wordpressx.com 地址 山东省淄博市张店区电子产业创新园 B 座

INDUSTRIAL BELT

扎根中国制造产业带
懂工厂,才懂出海

从胶东半岛到珠三角,从长三角到中原腹地,每一片产业集群都有自己的出口节奏与买家画像。信科网络长期扎根产业一线,把工厂的产品语言翻译成海外采购商听得懂的搜索语言,让每一分投入都对着真实的询盘去。

fucheng

阜城外贸网站建设

阜城县是河北省衡水市下辖的一个县。面积698平方千米,人口32万。邮政编码053700。阜城县人文荟萃.历史上出现过不少的学者名流,北齐的刘昼,北周的熊安生,民国初期的京剧著名表演艺术家荀慧生,…

wushan

巫山外贸网站建设

巫山位于重庆市东北部,三峡库区腹心,素有“渝东门户”之称,地跨长江巫峡两岸。东邻湖北省巴东县,西接奉节县,南与湖北省建始县毗连,北与巫溪县及神农架林区接壤。县城位于大宁河与长江交汇…

jiangbei

江北外贸建站

江北区,隶属于重庆市,是主城核心区之一。位于长江、嘉陵江交汇处北岸,东南西三面分别与巴南、南岸、渝中、沙坪坝四区隔江相望,北与渝北区接壤。至2015年底,江北区幅员面积为220.77平方千…

xianxian

献县外贸建站

献县历史悠久,夏商时期属冀州,春秋时属燕国,战国时属燕、赵、秦。早在春秋战国时期。境内就形成了具有一定影响力的城市——乐成。汉高祖六年(公元前201年)置河间郡,汉文帝二年…

qingtongxia

青铜峡WordPress建站

青铜峡市位于黄河上游宁夏平原中部,地势平坦,牛首、峡口两山对峙,黄河穿峡而过,山光水色相映,宛如开然铜镜,“青铜峡”由此而得名。地处西北内陆,东部季风区与西部干旱区域的交汇地带,属…

fengjie

奉节WordPress建站

奉节县位于重庆市东部,地处四川盆地东端,地理坐标为东经109°1′17″—109°45′58″,北纬30°29′19″—31°22′33″。县境东邻巫山县,南界湖北省恩施土家族苗族自治州,西连云阳县,北接巫溪县。境内有…

qianjiang

黔江Shopify建站

重庆市黔江区位于重庆市的东南边缘,地处武陵山腹地,东临湖北省的咸丰县,西界彭水县,南连酉阳县,北接湖北利川市,是渝、鄂、湘、黔四省市的结合部,素有”渝鄂咽喉”之称。另外…

fengdou

丰都Shopify建站

丰都县位于重庆市版图中心,东经107°28′03″-108°12′37″,北纬29°33′18″-30°16′25″之间,呈西北—东南走向分布,南北长87km,东西宽54km,幅员面积2901km2。长江横穿县境47km,水上距离重庆主…

lulong

卢龙外贸推广

卢龙县地处河北省东北部、隶属于秦皇岛市,总面积961平方公里,全县辖12个乡镇、548个行政村,总人口41.5万人,其中农业人口38万人。卢龙,历史悠久,人杰地灵。1988年,卢龙县被确定为全国对…

yuzhong

渝中外贸推广

渝中区,位于长江上游地区、重庆大都市区,属重庆主城九区之一。地处在长江、嘉陵江交汇地带,由于两江环抱,形似半岛,又名渝中半岛。渝中区作为重庆市政治、经济、文化以及商贸流通中心,别…

jizhou

冀州Google SEO

冀州市隶属河北省衡水市,地处华北平原腹地,北距首都300公里,西距省会石家庄110公里,辖区总面积918平方公里,东与枣强县(衡水)为邻,南与南宫市、新河县(邢台)接壤,西与宁晋县(邢台)…

jinfeng

金凤Google SEO

金凤区于2002年11月1日成立,是宁夏回族自治区首府银川市的市辖区之一,位于市区中部,东到唐徕渠,西到包兰铁路,南接永宁县,北临贺兰县,辖良田、丰登2个镇,上海西路、北京中路、长城中路…

rongcheng

容城GEO优化

河北省容城县,历史悠久,距今已有2000年的历史,全县总面积314平方公里,总人口25万人。地理位置得天独厚。位于河北省中部,京、津、保腹地,距首都北京和天津直辖市均为120公里,两个小时的…

shizhu

石柱GEO优化

石柱土家族自治县简称石柱县,位于重庆市东部、长江南岸、山峡库区腹心,是集少数民族自治县、三峡库区淹没县、国家扶贫工作重点县于一体的特殊县份。幅员面积3012平方公里,辖32个乡镇,总人…

shenzhou

深州谷歌SEM

深州市旧称深州,上古为冀州大陆之域。春秋时为晋地。战国属赵。秦属钜鹿郡。汉为下博县。隋开皇十六年(公元五九六年),于安平置深州,以城西故深池得名。尔后迭经废置,州城屡迁。唐徙州治…

ningxia

宁夏谷歌SEM

nanchuan

南川Facebook广告

南川地处四川盆地东南边缘与云贵高原过渡地带,位于重庆市南部,东南与贵州省道真、正安、桐梓县接壤,东北与武隆县为邻,北接涪陵区,西连巴南区、綦江县、万盛区。总面积2602平方千米。总人…

wuzhong

吴忠Facebook广告

吴忠市位于宁夏回族自治区中部,东邻陕西定边县,西北和东北与内蒙古自治区阿拉善左旗、鄂托克前期接壤,西南和东南与甘肃靖远县、环县毗邻,北连永宁、陶乐两县,南接海原、固原两县,面积339…

hengshui

衡水Yandex推广

衡水市位于河北省东南部,东与沧州市和山东省德州市毗邻,西与石家庄市接壤,南与邢台市相连,北与保定市交界;南北长125.5公里,东西宽98.13公里,全市辖8县2市1区,总面积5815.4平方公里。衡…

yuanzhou

原州Yandex推广

原州区,隶属于宁夏回族自治区固原市,地处宁夏南部,六盘山东北麓,黄土高原中西部,东邻彭阳县,南接泾源县,西连西吉县,北靠海原县、同心县,东北、西南分别与甘肃环县、隆德县毗壤,是固…

helan

贺兰TikTok推广

 贺兰县位于中国黄土高原西北内陆,宁夏回族自治区北部,属大陆性气候,中温带干旱气候区。土地总面积按1987年土地调查为1254.6平方公里。旅游资源丰富,历史积淀深厚。粮食作物以小麦、…

为什么一定要选懂产业带的出海服务商?建材丝网的欧洲建筑商看资质与交期,工业橡塑的中东工程商问耐温与工况,毛皮服饰的俄罗斯分销商算的是季节与毛利。买家不同,决策逻辑就不同;信科网络把这些差异拆进网站结构、关键词地图和投放策略里,用他们习惯的方式出现在他们搜索的地方。