从0搭建一个超级安全的内网文件存储服务(雷池WAF+cloudreve)

从0搭建一个超级安全的内网文件存储服务(雷池WAF+cloudreve)

雷池WAF是什么?

SafeLine,中文名 "雷池",是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。

雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、XSS、 代码注入、命令注入、CRLF 注入、ldap 注入、xpath 注入、RCE、XXE、SSRF、路径遍历、后门、暴力破解、CC、爬虫 等攻击。

WAF是什么?

Web应用防火墙,又称网站应用级入侵防御系统,是通过监控和分析HTTP/HTTPS流量实现Web应用安全防护的技术。其核心功能包括拦截SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等网络攻击,工作于网络应用层并与传统防火墙形成技术互补。WAF采用反向代理模式实现访问控制及安全策略的动态更新,可通过配置文件调整拦截规则 。

什么是cloudreve?

Cloudreve 可以让您快速搭建起公私兼备的网盘系统。Cloudreve 在底层支持不同的云存储平台,用户在实际使用时无须关心物理存储方式。你可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。

以下服务均使用docker安装,对新手友好,方便管理

合在一起能干嘛?

image-20260618092352519

image-20260618092534880

把雷池WAF和cloudreve结合在一起能搭建出一个非常非常安全的个人存储网盘,用雷池WAF个人版来弥补cloudreve免费版的安全性不足问题。

话不多说上操作:

安装docker:
[root@localhost ~]# sudo yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@localhost ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

[root@localhost ~]# sudo systemctl enable --now docker.service

配置镜像加速:

sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://mirror.ccs.tencentyun.com"
]
}
EOF
安装cloudreve:
[root@localhost ~]# docker run -d --name cloudreve \
>     -p 5212:5212 \
>     -p 6888:6888 \
>     -p 6888:6888/udp \
>     -v ~/cloudreve/data:/cloudreve/data \
>     cloudreve/cloudreve:latest

其中:
>     -v ~/cloudreve/data:自己想存哪里存哪里 \

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                        COMMAND                CREATED              STATUS              PORTS                                                                                                                                      NAMES
6c6bc99a0ef6   cloudreve/cloudreve:latest   "sh ./entrypoint.sh"   About a minute ago   Up About a minute   0.0.0.0:5212->5212/tcp, :::5212->5212/tcp, 443/tcp, 0.0.0.0:6888->6888/tcp, :::6888->6888/tcp, 0.0.0.0:6888->6888/udp, :::6888->6888/udp   cloudreve

接下来访问5212端口,注册的第一个用户默认就是管理员

image-20260618110614381

image-20260618111204587

安装雷池WAF:

[root@localhost ~]# bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"
Python3 is not installed. Would you like to install it automatically? (y/n) y
Python3 is not installed. Attempting to install...

CentOS-8.5.2111 - Base - mirrors.aliyun.com                     1.9 MB/s | 4.6 MB     00:02
CentOS-8.5.2111 - Extras - mirrors.aliyun.com                    49 kB/s |  10 kB     00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com                1.3 MB/s | 8.4 MB     00:06
Docker CE Stable - x86_64                                       145 kB/s |  66 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                  840 kB/s |  14 MB     00:17
依赖关系解决。
================================================================================================
 软件包                 架构      版本                                       仓库          大小
================================================================================================
安装:
 python36               x86_64    3.6.8-38.module_el8.5.0+895+a459eca8       AppStream     19 k
升级:
 chkconfig              x86_64    1.19.1-1.el8                               base         198 k
 platform-python-pip    noarch    9.0.3-20.el8                               base         1.7 M
安装依赖关系:
 python3-pip            noarch    9.0.3-20.el8                               AppStream     20 k
 python3-setuptools     noarch    39.2.0-6.el8                               base         163 k
启用模块流:
 python36                         3.6

事务概要
================================================================================================
安装  3 软件包
升级  2 软件包

总下载:2.1 M
下载软件包:
(1/5): python36-3.6.8-38.module_el8.5.0+895+a459eca8.x86_64.rpm 185 kB/s |  19 kB     00:00
(2/5): python3-pip-9.0.3-20.el8.noarch.rpm                      186 kB/s |  20 kB     00:00
(3/5): python3-setuptools-39.2.0-6.el8.noarch.rpm               977 kB/s | 163 kB     00:00
(4/5): chkconfig-1.19.1-1.el8.x86_64.rpm                        1.8 MB/s | 198 kB     00:00
(5/5): platform-python-pip-9.0.3-20.el8.noarch.rpm              1.0 MB/s | 1.7 MB     00:01
------------------------------------------------------------------------------------------------
总计                                                            1.1 MB/s | 2.1 MB     00:01
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                 1/1
  升级    : platform-python-pip-9.0.3-20.el8.noarch                                         1/7
  升级    : chkconfig-1.19.1-1.el8.x86_64                                                   2/7
  安装    : python3-setuptools-39.2.0-6.el8.noarch                                          3/7
  安装    : python3-pip-9.0.3-20.el8.noarch                                                 4/7
  安装    : python36-3.6.8-38.module_el8.5.0+895+a459eca8.x86_64                            5/7
  运行脚本: python36-3.6.8-38.module_el8.5.0+895+a459eca8.x86_64                            5/7
  清理    : platform-python-pip-9.0.3-18.el8.noarch                                         6/7
  清理    : chkconfig-1.13-2.el8.x86_64                                                     7/7
  运行脚本: chkconfig-1.13-2.el8.x86_64                                                     7/7
  验证    : python3-setuptools-39.2.0-6.el8.noarch                                          1/7
  验证    : python3-pip-9.0.3-20.el8.noarch                                                 2/7
  验证    : python36-3.6.8-38.module_el8.5.0+895+a459eca8.x86_64                            3/7
  验证    : chkconfig-1.19.1-1.el8.x86_64                                                   4/7
  验证    : chkconfig-1.13-2.el8.x86_64                                                     5/7
  验证    : platform-python-pip-9.0.3-20.el8.noarch                                         6/7
  验证    : platform-python-pip-9.0.3-18.el8.noarch                                         7/7
Installed products updated.

已升级:
  chkconfig-1.19.1-1.el8.x86_64             platform-python-pip-9.0.3-20.el8.noarch

已安装:
  python3-pip-9.0.3-20.el8.noarch                       python3-setuptools-39.2.0-6.el8.noarch
  python36-3.6.8-38.module_el8.5.0+895+a459eca8.x86_64

完毕!
  ______               ___           _____       _                        ____      ____       _        ________
.' ____ \            .' ..]         |_   _|     (_)                      |_  _|    |_  _|     / \      |_   __  |
| (___ \_|  ,--.    _| |_    .---.    | |       __    _ .--.    .---.      \ \  /\  / /      / _ \       | |_ \_|
 _.____`.  `'_\ :  '-| |-'  / /__\\   | |   _  [  |  [ `.-. |  / /__\\      \ \/  \/ /      / ___ \      |  _|
| \____) | // | |,   | |    | \__.,  _| |__/ |  | |   | | | |  | \__.,       \  /\  /     _/ /   \ \_   _| |_
 \______.' \'-;__/  [___]    '.__.' |________| [___] [___||__]  '.__.'        \/  \/     |____| |____| |_____|

[INFO  11:14:15]: SafeLine,中文名 "雷池",是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。
[INFO  11:14:15]: 雷池通过过滤和监控 Web 应用与互 联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、XSS 、 代码注入、命令注入、CRLF 注入、ldap 注入、xpath 注入、RCE、XXE、SSRF、路径遍历、后门、暴力破解、CC、爬虫 等攻击。

选择你要执行的动作  [ 1.安装  2.升级  3.卸载  4.修复  5.重启 ]  (1/2/3/4/5): 选择你要执行的动作  [ 1.安装  2.升级  3.卸载  4.修复  5.重启 ]  (1/2/3/4/5): 1
[INFO  11:14:22]: 即将为您安装雷池 WAF
[INFO  11:14:22]: 检查 docker 版本
[INFO  11:14:22]: 检查 docker compose 版本
/etc/resolv.conf 文件中存在 ipv6 地址包含区域 ID,是否删除包含区域 ID 的 ipv6 nameserver  [ y.是  n.否 ]  (y/n): y
[INFO  11:14:32]: 检查安装环境已完成
请输入雷池 WAF 的安装目录  (留空则为默认值 /data/safeline):
[INFO  11:14:33]: 正在初始化挂载目录
[INFO  11:14:33]: 挂载目录初始化完成
[INFO  11:14:33]: "/data/safeline" 路径有 46.76 GB 的空间可用
[INFO  11:14:33]: 正在下载 docker-compose.yaml 文件
[INFO  11:14:33]: 正在更新 .env 配置文件
[INFO  11:14:35]: 正在获取雷池 WAF 最新版本
[INFO  11:14:35]: 目标版本:9.3.9
[INFO  11:14:35]: 正在拉取 Docker 镜像
[+] Pulling 71/7
 ✔ luigi Pulled                                                                           17.5s
 ✔ mgt Pulled                                                                              7.0s
 ✔ detect Pulled                                                                          11.8s
 ✔ fvm Pulled                                                                             15.9s
 ✔ chaos Pulled                                                                            5.0s
 ✔ postgres Pulled                                                                        18.6s
 ✔ tengine Pulled                                                                         12.0s
[INFO  11:14:54]: 正在启动 Docker 容器
[INFO  11:14:57]: 雷池 WAF 安装完成
[INFO  11:14:57]: 等待 mgt 启动
[INFO  11:15:02]: 等待 mgt 启动
[INFO  11:15:07]: 等待 mgt 启动
[INFO  11:15:12]: 等待 mgt 启动
[INFO  11:15:17]: 等待 mgt 启动
[INFO  11:15:22]: 等待 mgt 启动
[INFO  11:15:27]: 设置 admin
[INFO  11:15:30]:
[INFO] Initial username:admin
[INFO] Initial password:JLRF7oD9
[INFO] Done
[INFO  11:15:30]: 雷池 WAF 管理面板: https://192.168.2.52:9443/
[INFO  11:15:30]: 雷池 WAF 管理面板: https://0.0.0.0:9443/

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █▀ █▀▀██▀▄▀▀▄▀▄▀▄██ ▄▄▄▄▄ █
█ █   █ █▀ ▄ █▀▄▄▀▀ ▄█▄  ▀█ █   █ █
█ █▄▄▄█ █▀█ █▄█▄▀▀▄▀▄ ▀▀▄▄█ █▄▄▄█ █
█▄▄▄▄▄▄▄█▄█▄█ █▄▀ █ ▀▄▀ █▄█▄▄▄▄▄▄▄█
█▄ ▄▄ █▄▄  ▄█▄▄▄▄▀▄▀▀▄██ ▄▄▀▄█▄▀ ▀█
█▄ ▄▀▄ ▄▀▄ ▀ ▄█▀ ▀▄ █▀▀ ▀█▀▄██▄▀▄██
██ ▀▄█ ▄ ▄▄▀▄▀▀█▄▀▄▄▀▄▀▄ ▄ ▀▄▄▄█▀▀█
█ █▀▄▀ ▄▀▄▄▀█▀ ▄▄ █▄█▀▀▄▀▀█▄█▄█▀▄██
█ █ ▀  ▄▀▀ ██▄█▄▄▄▄▄▀▄▀▀▀▄▄▀█▄▀█ ▀█
█ █ ▀▄ ▄██▀▀ ▄█▀ ▀███▄  ▀▄▀▄▄ ▄▀▄██
█▀▄▄█  ▄▀▄▀ ▄▀▀▀▄▀▄▀ ▄▀▄  ▄▀ ▄▀█ ▀█
█ █ █ █▄▀ █▄█▀ ▄▄███▀▀▀▄█▀▄ ▀  ▀▄██
█▄███▄█▄▄▀▄ █▄█▄▄▄▄▀▀▄█▀▀ ▄▄▄  ▀█ █
█ ▄▄▄▄▄ █▄▀█ ▄█▀▄ █▀█▄ ▀  █▄█  ▀▄▀█
█ █   █ █  █▄▀▀▀▄▄▄▀▀▀▀▀▀ ▄▄  ▀█  █
█ █▄▄▄█ █  ▀█▀ ▄▄▄▄ ▀█ ▀▀▄▀ ▀▀ ▀███
█▄▄▄▄▄▄▄█▄▄██▄█▄▄█▄██▄██▄▄█▄▄█▄█▄██

微信扫描上方二维码加入雷池项目讨论组

像上面这样雷池就安装成功了,但是我建议保存一下安装信息,其中

[INFO] Initial username:admin
[INFO] Initial password:JLRF7oD9
[INFO] Done
[INFO  11:15:30]: 雷池 WAF 管理面板: https://192.168.2.52:9443/
[INFO  11:15:30]: 雷池 WAF 管理面板: https://0.0.0.0:9443/

这一段是需要保存的信息,里面提供了账号:admin 密码:JLRF7oD9 以及访问的地址和端口https://192.168.2.52:9443/

让雷池起作用:

image-20260622110449911

咱们得想办法把雷池放在最外层,让它挡在前面,再想办法把咱们里面的东西藏起来,让外面只能看到雷池,除了雷池公布的80和443端口外,其它的都看不到,最好是禁ping,接下来开始操作

登录,下图是主页面:

image-20260618111732654

咱们先添加一个证书,我这里的证书是自己自签名的证书,会弹出不安全的标识,但是够咱们内网用了

image-20260618112342230

添加我们上面搭建的cloudreve到雷池里

image-20260618111823691

域名可填可不填,不填就是*

端口默认80和443,这样咱们访问的时候直接敲IP地址或者域名就能直接访问,不用在后面带端口号,方便很多

证书选择刚刚咱们添加进去的

选择代理到已有应用

上游服务器咱写http://127.0.0.1:5212 其中需要注意的是后面要带cloudreve的端口号,如果雷池和cloudreve不在一个服务器上那么这里就需要填写cloudreve服务器的地址

image-20260618112248537

添加完成(如果弹出无法添加,大概率就是端口号被占用了,就需要手动排查是那个服务把80和443占了,给他kill掉或者让占用的使用别的端口去):

image-20260618112857444

接下来就是完善配置,跟着操作来就行

image-20260622102651134

image-20260622102719401

image-20260622102732370

接下来让防火墙允许外面的设备访问80和443端口
[root@localhost ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=0.0.0.0/0 port port=80 protocol=tcp ac
cept' --permanent
success
[root@localhost ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=0.0.0.0/0 port port=443 protocol=tcp a
ccept' --permanent
success
[root@localhost ~]# firewall
firewall-cmd          firewalld             firewall-offline-cmd
[root@localhost ~]# firewall-cmd --reload
success

开始隐藏咱们的真实端口,让别人找不到,要么丢弃包要么拒绝包,我这里是拒绝,最好是丢弃,这样看起来更正常
[root@localhost ~]# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='0.0.0.0/0' port protoco
l='tcp' port='5212' reject"
[root@localhost ~]# firewall-cmd --reload

到这里就差不多了,咱们浏览器的搜索栏里直接输入IP地址,什么都不加192.168.2.52,就会跳转到这个页面

image-20260622102842596

简简单单咱们来测试一下最简单的sql注入:

image-20260622102940950

成功拦截,并在控制台看到拦截记录

image-20260622103022795

这边雷池有三个模式,还是挺好用的

image-20260622103041975

第一格防护模式就是正常的那种带拦截的可以保护WEB应用安全

第二个是观察模式,如果是自己要上传某个文件,自己确定是安全的,但是雷池一直在拦截,肯定这文件有问题,但是咱们想忽略风险继续上传的话,可以切换到这个模式,就只会记录操作,不会拦截

第三个是维护模式,比如我WEB服务要升级了,小站咱们是小站,咱们就返回这个页面,不给对面看到的机会

image-20260622103053182

image-20260622103104246

继续配置让雷池更好用:

image-20260622103139811

image-20260622103235870

image-20260622103256090

image-20260622103328490

image-20260622103350642

image-20260622103410969

image-20260622103427554

image-20260622103537587

image-20260622103557893

image-20260622103625002

image-20260622103637241

image-20260622103658952

image-20260622103711735

image-20260622103719445

image-20260622103734905

image-20260622103754918

image-20260622103806361

image-20260622103829700

image-20260622103840961

image-20260622103916292

image-20260622103944672

image-20260622104053096

image-20260622104204749

以上是个人的简单心得,文内还有很多不足,总之一句话,放开该有的权限,尽最大可能的去缩小权限,本人在省委党校搭建的这个服务已通过渗透测试和基线核查,下次讲怎么把服务器做到尽可能的安全,不足之处还请批评指正!谢谢!

posted @ 2026-06-22 11:39  姜翎  阅读(15)  评论(0)    收藏  举报