当前位置: 首页 > news >正文

飞致云1panel + 雷池WAF

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

前提条件:

  1. 服务器IP已绑定域名

  2. 完整的1panel环境

  3. 1panel未安装OpenResty

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

安装OpenResty

如图找到OpenResty,点击安装。
在这里插入图片描述

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

在这里插入图片描述

此处安装取决于服务器连接 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

站点搭建

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

在这里插入图片描述

静态网站搭建

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

在这里插入图片描述

反向代理网站搭建

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

在这里插入图片描述

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

在这里插入图片描述

运行环境(PHP)网站搭建

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

在这里插入图片描述
在这里插入图片描述

等待安装PHP环境

在这里插入图片描述

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

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

在这里插入图片描述

一键部署网站搭建

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

证书申请

创建Acme账户

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

在这里插入图片描述

创建DNS账户

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

申请证书

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

部署证书

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

在这里插入图片描述
在这里插入图片描述

获取证书文件

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

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

部署长亭雷池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的默认端口。

http://www.lryc.cn/news/253344.html

相关文章:

  • 策略梯度简明教程
  • 鸿蒙原生应用/元服务开发-利用picker选择器来多选相册图片
  • java:封装统一的响应体code、data、msg、paging
  • leetcode算法之栈
  • 电脑上mp4视频文件无缩略图怎么办
  • 【Centos8】配置网络镜像源
  • 深入学习Synchronized各种使用方法
  • 【idea】设置鼠标滚轮控制缩放大小
  • 合并两个有序数组(leetcode_刷题1)
  • 麒麟linux将图片批量生成PDF的方法
  • Linux——vim编辑文件时——.swp文件解决方案
  • 【Maven】清理 maven 仓库
  • APOLLO自动驾驶技术沙龙:未来已来,共创智能交通新时代
  • Java面试题12
  • ubuntu上创建服务启动python脚本
  • 51单片机制作数字频率计
  • java中强引用、软引用、弱引用、虚引用的区别是什么?
  • springboot -事务管理
  • 商城系统通过Kafka消息队列,实现订单的处理和状态更新
  • IntelRealSense深度相机D455在ROS1运行中的消息内容
  • 公有云迁移研究——AWS Translate
  • 【laBVIEW学习】4.声音播放,自定义图标,滚动条设置,保存参数以及恢复参数
  • 《论文阅读》使用条件变分自动编码器学习神经对话模型的语篇水平多样性 2017 ACL
  • 【win32_003】不同字符集下的通用字符串语法TCHAR、TEXT、PTSTR、PCTSTR
  • 《漫长的等待》—— 读后感
  • 基于ROPNet项目训练modelnet40数据集进行3d点云的配置
  • 力扣215. 数组中的第K个最大元素
  • 轻量封装WebGPU渲染系统示例<40>- 多层材质的Mask混合(源码)
  • 程序员的实用网站导航与推荐
  • 上午面了个腾讯拿 38K 出来的,让我见识到了基础的天花板