在宝塔面板的服务器部署雷池社区版WAF教程

319 阅读5分钟

宝塔面板部署雷池社区版教程

简单介绍一下宝塔面板,安全高效的服务器运维面板,使用宝塔面板的人非常多

在网站管理上,许多用户都是通过宝塔面板进行管理,宝塔面板的Nginx默认监听端口为80和443,这就导致共存部署时雷池WAF默认无法监听80和443端口,那怎么办呢?

  1. 调整宝塔网站原来的监听80和443,改成任意其他端口(自定义的)
  2. 在雷池配置站点的时候使用80和443,配置完成后,测试访问的站点,确认是否配置生效(注意CDN缓存刷新)

本文将一一给出参考方案

宝塔调端口时需要修改地方较多,参考看文档上下文进行排查,且作者并不推荐宝塔和雷池共用服务器

准备宝塔面板的测试站点

  1. 默认宝塔的面板机器自带了LNMP的架构

     

  2. 创建一个站点用于测试

     

  3. 测试网站已有宝塔面板搭建完成

      

    面板搭建的网站已经占用了机器的80端口,并且开启了80的监听

  4. 可以使用 ss -antp|grep LISTEN|grep 80 确认宝塔是否有对80监听
    看到有一个监听的

     

  5. 如果宝塔的站点开启了强制https
    面板这时会监听80和443,但是会把80端口的访问重定向为443端口走https的协议

     

安装雷池

  1. 直接使用雷池的安装命令

     

  2. 宝塔面板安装出现报错处理

     

    看报错内容是启动容器失败了

    猜测可能是安装脚本不兼容,宝塔默认安装的是docker-compose ,脚本执行出错

  3. 手动启动雷池

     

    在雷池的安装目录下(/date/safeline)使用docker-compose up -d启动一下

    如果安装的是docker compose 使用docker compose up -d

     

    启动雷池成功了,因为之前安装脚本执行报错了,没有初始化账户密码,需要手动执行重置一下命令

      

    把雷池的重置密码命令输入,可以看到新的账号密码

     

  4. 使用账号密码登录雷池

配置站点

  1. 已面板搭建源站监听的是80和443,其他都是默认配置
    如果需要在用户无感知的情况下套上雷池,需要修改源站点端口,再配置雷池的站点监听80、443

  2. 查看当前端口占用情况, 可以看到宝塔面板还是默认占用80端口

  3. 修改 Nginx配置
    在“网站”中单击“Nginx1.X.X”打开Nginx管理窗口

     

    切换到“配置修改”,下滑配置文件内容到底部,找到include指令,找到Nginx引入的配置文件路径,例 如/www/server/panel/vhost/nginx/

     

    在文件进入/www/server/panel/vhost/nginx/,分别编辑0.default.conf和phpfpm_status.conf文件,将默认监听端口修改为其他非占用端口,比如10080,最后保存退出

       

  4. 修改完成后重载一下

  1. 再次使用命令查看80端口的监听情况
    发现宝塔的nginx就没有再占用80端口了

     

  2. 配置站点
    把80端口腾出来以后就可以给雷池设置站点了
    配置成上面修改的10443作为上游服务器(10443也是需要改配置文件的,一般默认都是443,和改80的文件在一个地方,可以自己查找修改)

      

    配置完成后测试一下使用https访问,浏览器会默认走443端口

     

  3. 配置完成,使用一个攻击的请求测试一下

      

    出现如下图,雷池的站点就配置完成了

     

FAQ

宝塔面板服务器安装雷池失败

检查失败报错原因

  1. 如果docker安装失败或者下载雷池容器失败,检查服务器网络,可能需要重新配置镜像源
  2. 如果是启动docker失败,参考上文,在安装目录下
    使用docker compose up -d 或者docker-compose up -d 拉起
    手动拉起,如果还是不行,尝试离线安装
  3. 如果报错ssse3指令集的问题,尝试百度解决,或者跟换机器

配置雷池站点时报错了,删除站点也报错(宝塔对端口一直有占用)

报错信息类似于下图
删除站点报错.jpg

事实上是配置错误导致tengine挂了,一直重启

触发的原因是宝塔会监听某一个端口,比如443 ,但是雷池也配置了监听443的站点,这时候雷池重启,导致端口被宝塔抢占,雷池无法正常监听,这时候tengine会一直挂,无法编辑和删除站点

解决方案1:
查看tengine的日志,找到与tengine冲突的站点端口,把外部的占用处理,这个时候,外部没有占用雷池站点的端口,雷池的tengine会自动恢复正常,可以编辑和删除

解决方案2 :
使用雷池帮助文档的紧急恢复 tengine命令

执行时间根据网站数量和配置情况而定, 请耐心等待

cd /data/safeline && bash reset_tengine.sh

Copy

执行后tengine会先恢复,可以直接删除站点,删除后重新配置站点

宝塔面板配置站点10080端口后无法访问

浏览器报错信息:ERR_UNSAFE_PORT

是因为这个端口是高危端口,这里手动修改站点配置换一个端口。比如20080即可

修改后访问20080就正常了

这时候 需要配置雷池站点的时候上游服务器就是

http://127.0.0.1:20080

可以这样配置