飞致云1panel + 雷池WAF

可能有许多人都有这个需求:为自己的个人站点套上WAF,增加安全性,本文将介绍如何将1panel面板深度结合长亭雷池防火墙实现为个人站点套上WAF并且自动续签ssl证书。

前提条件:

  1. 服务器IP已绑定域名

  2. 完整的1panel环境

  3. 1panel未安装OpenResty

  4. 支持 TOTP 的认证软件,如腾讯身份验证器,谷歌身份验证器,微软身份验证器,FreeOTP,Bitwarden等

安装OpenResty

如图找到OpenResty,点击安装。
飞致云1panel + 雷池WAF_第1张图片

在安装配置页注意:修改HTTP/HTTPS的默认端口,后期WAF对外使用会占用80,443端口。这里改为180,1443,点击确认安装OpenResty。

飞致云1panel + 雷池WAF_第2张图片

此处安装取决于服务器连接 dockerhub 的速度,若为国内服务器或速度过慢,可在容器-配置-镜像加速中填入如下配置:

https://dockerproxy.com
https://hub-mirror.c.163.com
https://docker.m.daocloud.io
https://ghcr.io
https://mirror.baidubce.com
https://docker.nju.edu.cn

站点搭建

如图,按照顺序点击创建网站

飞致云1panel + 雷池WAF_第3张图片

静态网站搭建

点击创建静态网站主域名填写站点域名其他域名填写 127.0.0.1:任意未占用端口,如此处127.0.0.1:10000,点击确定创建静态网站。

飞致云1panel + 雷池WAF_第4张图片

反向代理网站搭建

反向代理本机的各种工具类站点,以Alist为例,安装时若未选择 端口外部访问,1panel会将其服务端口映射到127.0.0.1而非0.0.0.0,故适合使用反向代理搭建。

飞致云1panel + 雷池WAF_第5张图片

主域名填写站点域名其他域名填写 127.0.0.1:任意未占用端口,如此处127.0.0.1:10001,点击确定创建反向代理。

飞致云1panel + 雷池WAF_第6张图片

运行环境(PHP)网站搭建

PHP站点的搭建,需要先创建运行环境,如下图:

飞致云1panel + 雷池WAF_第7张图片
飞致云1panel + 雷池WAF_第8张图片

等待安装PHP环境

在这里插入图片描述

当状态转为正常时即安装完毕。

点击创建网站,选择运行环境主域名填写站点域名,其他域名填写 127.0.0.1:任意未占用端口,如此处127.0.0.1:10003,点击确定创建反向代理。

飞致云1panel + 雷池WAF_第9张图片

一键部署网站搭建

一键部署参考此处https://docs.halo.run/getting-started/install/1panel/,注意其他域名填写 127.0.0.1:任意未占用端口

证书申请

创建Acme账户

如图,按此顺序创建ACME账户

飞致云1panel + 雷池WAF_第10张图片

创建DNS账户

参考 1panel官方文档 创建DNS账户

申请证书

参考 1panel官方文档 申请证书

部署证书

在部署好的站点中,点击配置,点击基本HTTPS启用HTTPS,将HTTP选项修改为HTTP可直接访问,下方选择对应证书后保存。

飞致云1panel + 雷池WAF_第11张图片
飞致云1panel + 雷池WAF_第12张图片

获取证书文件

进入网站目录,进入SSL文件夹,下载保存fullchain.pemprivkey.pem两个文件备用。

飞致云1panel + 雷池WAF_第13张图片
飞致云1panel + 雷池WAF_第14张图片

飞致云1panel + 雷池WAF_第15张图片

部署长亭雷池WAF

长亭雷池的安装可参考该文:https://waf-ce.chaitin.cn/docs/guide/install,注意雷池要求CPU支持ssse3指令集

我在此选择一键安装,安装到/opt/safeline

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
```![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bf1d79278d0e4be58a7a6c3c4fd8c3a8.png)


成功安装后显示如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/722b05a685664851b46f567719be8011.png)

使用**https://IP:9443**访问WAF

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/73a1da50cd4a40daa079a68f5b75acf9.png)


使用**支持TOTP的认证软件**进行认证

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/92e1c7b5ff3c42cda771c0e584c94c17.png)


### 添加证书
如图,在`通用配置`-`证书管理`,**添加证书**,上传之前下载的证书文件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5ed2ecda8ad14f30be375cdafdbeb45d.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b9b5935858c44237b78d6eec9182f02c.png)




### 站点通用配置
如图,在`通用配置`-**其他**,**站点通用配置**,根据需求开启,我这里全部开启。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2632bca19b5e44349175b987b2aea4f2.png)


### 添加防护站点
如图,在防护站点中,**添加站点**,**根据需求配置**,上游服务器填写**1panel****的OpenResty配置的其他域名**,提交。

其他网站同理。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d3184741270347498ff89360dcbe62fe.png)


### 测试访问
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/be345a0dc4df41099e9a131b3400473b.png)


## 自动更新雷池WAF的SSL证书
如下图,在1panel中添加计划任务,添加shell脚本,脚本内容及解析见下。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/61f247a4871e4238b57549593897c367.png)

```bash
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/fullchain.pem  /opt/safeline/resources/nginx/certs/cert_1.crt
# 从域名的ssl目录下复制证书到safeline的nginx目录下,替换原有证书,该证书用于雷池的防护站点
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/privkey.pem  /opt/safeline/resources/nginx/certs/cert_1.key
# 从域名的ssl目录下复制密钥到safeline的nginx目录下,替换原有密钥,该密钥用于雷池的防护站点
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/fullchain.pem  /opt/safeline/resources/management/certs/server.crt
# 从域名的ssl目录下复制证书到safeline的nginx目录下,替换原有证书,该证书用于雷池的管理站点,可不设置使用自签证书
sudo cp -f /opt/1panel/apps/openresty/openresty/www/sites/域名/ssl/privkey.pem  /opt/safeline/resources/management/certs/server.key
# 从域名的ssl目录下复制密钥到safeline的nginx目录下,替换原有密钥,该密钥用于雷池的管理站点,可不设置使用自签密钥
sudo docker restart safeline-tengine
# 重启safeline的nginx服务,使证书生效
sudo docker restart safeline-mgt-api
# 重启safeline的管理api服务,使证书生效

防护

为保证网站流量均从WAF进入,在1panel中开启防火墙,具体可参考官方文档,屏蔽掉之前配置的OpenResty的默认端口。

你可能感兴趣的:(bash,服务器)