点下“关闭”按钮那一刻,宝塔闭服务器负载从3.2掉到0.8。网站这事儿我干过不止一次。防火宝塔面板的墙关网站防火墙,名字听着挺唬人,宝塔闭实际用起来——怎么说呢,网站有时候它更像是防火个添乱的。
上周三凌晨两点,墙关一个客户打电话过来,宝塔闭说网站打不开了。网站我登上去一看,防火防火墙拦截日志刷了整整七页,墙关全是宝塔闭正常用户的访问请求。那是网站个做外贸的站,访客来自世界各地,防火IP段五花八门。宝塔的规则库大概是把某些地区的正常流量当成CC攻击了。客户急得不行,我直接进面板把防火墙一关,网站秒开。前后不到十秒。
这不是个例。我维护的十几台服务器里,有差不多一半最终都关掉了这个功能。原因很简单:误杀率太高。宝塔的防火墙默认规则偏激进,尤其是那个“CC防护”模块,阈值设得比较低。一个普通的WordPress站点,后台ajax请求稍微频繁一点,自己就把自己给拦了。你看着日志里一堆“IP已封禁”的记录,还得手动去解封,烦不烦?
有人会说,那你调规则啊。调过。把CC阈值从60调到300,把敏感词过滤关掉,把地区拦截取消。折腾一圈下来,发现这防火墙能起的作用已经微乎其微了。它本来就是个轻量级的WAF,跟Cloudflare那种没法比。你花半小时调规则,不如直接上CDN来得实在。
关闭方法倒是不复杂。登录宝塔面板,左侧菜单点“安全”,找到“防火墙”或者“网站防火墙”那一栏。不同版本位置略有差异,有的在“软件商店”里装的是独立插件。进去之后看右上角,通常有个总开关。点一下,状态从“运行中”变成“已关闭”。完事。如果你想彻底一点,直接把插件卸载了也行。卸载前记得把自定义规则备份一下,虽然大概率你用不上。
关掉之后有什么影响?说实话,对绝大多数中小站点来说,没什么明显影响。该来的攻击还是会来,但宝塔防火墙本身也挡不住什么像样的攻击。真正扛DDoS靠的是机房流量清洗,防注入靠的是程序本身写得规范。一个面板插件能做的事很有限。
我自己的做法是:新装服务器先开着防火墙跑一周,观察日志。如果误报超过三次,直接关。如果日志干净,那就留着。但这种情况很少见。大部分时候,一周内必定出现误拦。尤其是那些用了CDN的站,防火墙看到的全是CDN节点IP,封来封去封的都是自己人。
还有个坑:宝塔防火墙跟某些PHP扩展会冲突。我遇到过开启防火墙后,网站后台登录一直提示“参数错误”的情况。查了半天,最后发现是防火墙的POST过滤规则把登录表单里的某个字段给吃了。关掉防火墙,问题消失。这种隐性的兼容性问题,官方文档里不会写,只能靠自己踩坑。
所以现在有人问我宝塔防火墙要不要开,我一般反问:你网站流量大吗?不大就别开。你服务器配置高吗?不高就别开。你愿意天天看日志解封IP吗?不愿意就别开。三个问题下来,对方基本就明白了。
当然,我不是说这功能一无是处。对于完全不懂技术、又懒得折腾CDN的小白用户,开着总比裸奔强。但如果你稍微有点运维经验,或者网站已经接了Cloudflare,那宝塔这个防火墙就是鸡肋。食之无味,弃之也不可惜。
关掉它,服务器清净了,自己也清净了。省下来的时间,不如去检查一下SSH端口改了没,数据库密码是不是还叫root。那些才是真正要命的地方。