本地Docker部署开源WAF雷池并实现异地远程登录管理界面

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 前言
    • 1.关于 SafeLine
    • 2.安装 Docker
    • 3.本地部署 SafeLine
    • 4.使用 SafeLine
    • 5.cpolar 内网穿透工具安装
    • 6.创建远程连接公网地址
    • 7.固定 Uptime Kuma 公网地址

前言

说起网站大家肯定非常熟悉,并且很多人手里都会有属于自己的网站,那么当我们的网站上线以后首先会遇到什么?可能不一定是访问自己站点的客户,而是来自黑客的网络攻击!

今天给大家分享的开源项目,他是登顶 Github 的开源 WAF,让黑客不敢越雷池一步,并且还是国产的开源项目!他就是:雷池(SafeLine)

image-20241024110014279

1.关于 SafeLine

雷池(SafeLine)是一款超简单、超好用、超强的免费 WAF!它采用了行业领先的语义引擎检测技术,通过反向代理轻松接入,能为你网站的安全保驾护航,让黑客无处下手。核心功能由智能语义分析算法强力驱动,简直是开源世界的守护神!

image-20241024135356524

雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。通过以上行为,最终确保外部攻击流量无法触达网站服务器。

Github 地址:https://github.com/chaitin/SafeLine

以下是 SafeLine 雷池的功能特性:

  • **便捷性:**采用容器化部署,一条命令即可完成安装,0 成本上手。安全配置开箱即用,无需人工维护,可实现安全躺平式管理

  • **安全性:**首创业内领先的智能语义分析算法,精准检测、低误报、难绕过。语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措

  • **高性能:**无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别。并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限

  • **高可用:**流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障。内置完善的健康检查机制,服务可用性高达 99.99%

image-20241024135533243

2.安装 Docker

软件依赖:Docker 20.10.6 版本以上

我这里演示的环境是 Ubuntu22.04,Docker 版本是 24.0.5

在终端中执行下方命令安装 docker:

curl -fsSL https://get.docker.com -o get-docker.sh

然后再启动 docker

sudo sh get-docker.sh

最后我们在 docker 容器中运行下 hello world 看一下是否安装成功。

sudo docker container run hello-world

可以看到出现了 hello world,说明我们已经安装 docker 成功,就可以进行下一步了

image-20241008151101668

3.本地部署 SafeLine

本项目提供了最简单的方式,使用项目提供的一键安装脚本,用 root 用户执行以下命令即可

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

输入后会提示建议关闭防火墙,按‘’Y‘’即可

image-20241024111730440

看到提示后按照自己喜好填写安装目录,留空就会安装到默认里。

image-20241024111907962

出现下方二维码后显示安装成功

image-20241024112033452

现在就已经安装成功了,您可以通过打开 Web 浏览器输入 localhost:9443。但你会发现跳出一个错误的页面。

image-20241024115011422

别担心,因为本地请求的是https协议,浏览器会有安全提示,我们点高级跳过(Advanced),再点击接受并继续(Accept the Risk and Continue)就可以了。

image-20241024115931458

4.使用 SafeLine

第一次登录雷池需要初始化你的管理员账户(默认会执行),如果没有找到账户密码,手动执行以下命令即可

sudo docker exec safeline-mgt resetadmin

命令执行完成后会随机重置 admin 账户的密码,输出结果如下

image-20241024134634936

我们直接复制粘贴就可以进入到雷池的管理界面了。

首先我们要配置一下要保护的站点,这里也说明一下,正常使用的时候,不建议把雷池和实际的业务应用部署到一台服务器上,这样对于服务器的负载会很大,存在隐患,最好是单独的一台服务器来部署雷池,之后将流量转给真实应用。

一些关键字段的说明如下:

  • 域名: 通过雷池访问该站点时使用的域名 (支持使用 * 做为通配符)
  • 端口: 雷池监听的端口 (如需配置 HTTPS 服务, 请勾选 SSL 选项并配置对应的 SSL 证书)
  • 上游服务器: 被保护的 Web 服务的实际地址

image-20241024134953913

配置完成后,用浏览器访问域名,能获取到业务网站的响应,并且数据统计页的 “今日请求数” 增加,那恭喜你, 说明你配置的完全正确。

image-20241024135037216

我们可以简单的模拟下对网站进行攻击,比如 SQL 注入伙 XSS 攻击

  • 模拟 SQL 注入攻击: https://chaitin.com/?id=1+and+1=2+union+select+1
  • 模拟 XSS 攻击: https://chaitin.com/?id=<img+src=x+onerror=alert()>
  • 模拟路径穿越攻击: https://chaitin.com/?id=../../../../etc/passwd
  • 模拟代码注入攻击: https://chaitin.com/?id=phpinfo();system('id')
  • 模拟 XXE 攻击: https://chaitin.com/?id=<?xml+version="1.0"?><!DOCTYPE+foo+SYSTEM+"">

不出意外的话,这些攻击都将被雷池拦截,如下图所示。

image-20241024135258438

对于你的网站而言, 雷池可以实现如下效果:

  • 阻断 Web 攻击
  • 可以防御所有的 Web 攻击,例如 SQL 注入、XSS、代码注入、操作系统命令注入、CRLF 注入、XXE、SSRF、路径遍历 等等。
  • 限制访问频率
  • 限制用户的访问速率,让 Web 服务免遭 CC 攻击、暴力破解、流量激增 和其他类型的滥用。
  • 人机验证
  • 互联网上有来自真人用户的流量,但更多的是由爬虫, 漏洞扫描器, 蠕虫病毒, 漏洞利用程序等自动化程序发起的流量,开启雷池的人机验证功能后真人用户会被放行,恶意爬虫将会被阻断。
  • 身份认证
  • 雷池的 “身份认证” 功能可以很好的解决 “未授权访问” 漏洞,当用户访问您的网站时,需要输入您配置的用户名和密码信息,不持有认证信息的用户将被拒之门外。
  • 动态防护
  • 在用户浏览到的网页内容不变的情况下,将网页赋予动态特性,对 HTML 和 JavaScript 代码进行动态加密,确保每次访问时这些代码都以随机且独特的形态呈现。

小结

上面在本地 Linux 中使用 Docker 成功部署了 SafeLine,并局域网访问成功。SafeLine 还有很多玩法可以自己尝试下去开发。总的来说是一款非常不错的 WAF 产品,作为开源产品它的功能和完成度非常的高,而且还是国产的开源项目,必须要加分!

如果想在公网远程管理 SafeLine,就可以创建一个公网地址,这里我使用的是 cpolar 内网穿透,通过 cpolar 转发本地端口映射的 http 公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器,可节省大量的资金。

5.cpolar 内网穿透工具安装

下面是安装 cpolar 步骤:

Cpolar 官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看 cpolar 服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar 安装和成功启动服务后,在浏览器上输入 ubuntu 主机 IP 加 9200 端口即:【http://localhost:9200】访问 Cpolar 管理界面,使用 Cpolar 官网注册的账号登录,登录后即可看到 cpolar web 配置界面,接下来在 web 界面配置即可:

image-20240801133735424

6.创建远程连接公网地址

登录 cpolar web UI 管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: SafeLine 注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:https://localhost:9443
  • 域名类型:随机域名
  • 地区:选择 China Top

image-20241024143632877

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241024143708134

如下图所示,成功实现使用公网地址异地远程访问本地部署的 SafeLine。

image-20241024143726893

使用上面的 cpolar https 公网地址,在任意设备的浏览器进行访问,即可成功看到我们 SafeLine 管理界面,这样一个利用公网地址可以进行远程访问的隧道就创建好了,隧道使用了 cpolar 的公网域名,无需自己购买云服务器,可节省大量资金。使用 cpolar 创建隧道即可发布到公网进行远程访问,新域名登录,可能需要重新登陆!

7.固定 Uptime Kuma 公网地址

由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将 cpolar 套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn 已备案】

点击左侧的预留,选择保留二级子域名,地区选择 china top,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241024144126453

保留成功后复制保留的二级子域名地址:image-20241024144150389

登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20241024144330055

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20241024144423629

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20241024144516967

最后,我们使用固定的公网地址访问 SafeLine 管理界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

image-20241024144655397

接下来就可以随时随地进行公网访问管理 SafeLine 了,把公网地址分享给身边的人,还可以方便团队协作。自己用的话,无需云服务器,还可以实现异地远程访问!以上就是如何在 Linux Ubuntu 系统 Docker 本地安装 SafeLine 并实现异地远程访问进行管理的全部过程,感谢观看!

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920629.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何快速将Excel数据导入到SQL Server数据库

工作中&#xff0c;我们经常需要将Excel数据导入到数据库&#xff0c;但是对于数据库小白来说&#xff0c;这可能并非易事&#xff1b;对于数据库专家来说&#xff0c;这又可能非常繁琐。 这篇文章将介绍如何帮助您快速的将Excel数据导入到sql server数据库。 准备工作 这里&…

[产品管理-91]:产品经理的企业运营的全局思维-1

目录 前言&#xff1a;企业架构图 产品经理的企业运营全局思维 1、用户 - 用户价值与体验&#xff1a;真正的需求&#xff0c;真正的问题&#xff0c;一切的原点 2、大势 - 顺应宏观大势&#xff1a;政策趋势、行业趋势、技术趋势 3、市场 - 知己知彼&#xff1a;市场调研…

简单实现vue2响应式原理

vue2 在实现响应式时&#xff0c;是根据 object.defineProperty() 这个实现的&#xff0c;vue3 是通过 Proxy 对象实现&#xff0c;但是实现思路是差不多的&#xff0c;响应式其实就是让 函数和数据产生关联&#xff0c;在我们对数据进行修改的时候&#xff0c;可以执行相关的副…

论文解析:EdgeToll:基于区块链的异构公共共享收费系统(2019,IEEE INFOCOM 会议);layer2 应对:频繁小额交易,无交易费

目录 论文解析:EdgeToll:基于区块链的异构公共共享收费系统(2019,IEEE INFOCOM 会议) 核心内容概述 核心创新点原理与理论 layer2 应对:频繁小额交易,无交易费 论文解析:EdgeToll:基于区块链的异构公共共享收费系统(2019,IEEE INFOCOM 会议) 核心内容是介绍了一个…

基于python Django的boss直聘数据采集与分析预测系统,爬虫可以在线采集,实时动态显示爬取数据,预测基于技能匹配的预测模型

本系统是基于Python Django框架构建的“Boss直聘”数据采集与分析预测系统&#xff0c;旨在通过技能匹配的方式对招聘信息进行分析与预测&#xff0c;帮助求职者根据自身技能找到最合适的职位&#xff0c;同时为招聘方提供更精准的候选人推荐。系统的核心预测模型基于职位需求技…

SemiDrive E3 硬件设计系列---唤醒电路设计

一、前言 E3 系列芯片是芯驰半导体高功能安全的车规级 MCU&#xff0c;对于 MCU 的硬件设计部分&#xff0c;本系列将会分模块进行讲解&#xff0c;旨在介绍 E3 系列芯片在硬件设计方面的注意事项与经验&#xff0c;本文主要讲解 E3 硬件设计中唤醒电路部分的设计。 二、RTC 模…

Leetcode198. 打家劫舍(HOT100)

代码&#xff1a; class Solution { public:int rob(vector<int>& nums) {int n nums.size();vector<int> f(n 1), g(n 1);for (int i 1; i < n; i) {f[i] g[i - 1] nums[i - 1];g[i] max(f[i - 1], g[i - 1]);}return max(f[n], g[n]);} }; 这种求…

一文探究48V新型电气架构下的汽车连接器

【哔哥哔特导读】汽车电源架构不断升级趋势下&#xff0c;48V系统是否还有升级的必要&#xff1f;48V新型电气架构将给连接器带来什么改变&#xff1f; 在插混和纯电车型逐渐普及、800V高压平台持续升级的当下&#xff0c;48V技术还有市场吗? 这个问题很多企业的回答是不一定…

React学习05 - redux

文章目录 redux工作流程redux理解redux理解及三个核心概念redux核心apiredux异步编程react-redux组件间数据共享 纯函数redux调试工具项目打包 redux工作流程 redux理解 redux是一个专门用于状态管理的JS库&#xff0c;可以用在react, angular, vue 等项目中。在与react配合使…

2024年11月最新 Alfred 5 Powerpack (MACOS)下载

在现代数字化办公中&#xff0c;我们常常被繁杂的任务所包围&#xff0c;而时间的高效利用成为一项核心需求。Alfred 5 Powerpack 是一款专为 macOS 用户打造的高效工作流工具&#xff0c;以其强大的定制化功能和流畅的用户体验&#xff0c;成为众多效率爱好者的首选。 点击链…

batchnorm与layernorn的区别

1 原理 简单总结&#xff1a; batchnorn 和layernorm是在不同维度上对特征进行归一化处理。 batchnorm在batch这一维度上&#xff0c; 对一个batch内部所有样本&#xff0c; 在同一个特征通道上进行归一化。 举个例子&#xff0c; 假设输入的特征图尺寸为16x224x224x256&…

【c++丨STL】stack和queue的使用及模拟实现

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C、STL 目录 前言 一、什么是容器适配器 二、stack的使用及模拟实现 1. stack的使用 empty size top push和pop swap 2. stack的模拟实现 三、queue的…

ApiChain 从迭代到项目 接口调试到文档生成单元测试一体化工具

项目地址&#xff1a;ApiChain 项目主页 ApiChain 简介 ApiChain 是一款类似 PostMan 的接口网络请求与文档生成软件&#xff0c;与 PostMan 不同的是&#xff0c;它基于 项目和迭代两个视角管理我们的接口文档&#xff0c;前端和测试更关注版本迭代中发生变更的接口编写代码…

力扣面试题 - 24 插入

题目&#xff1a; 给定两个整型数字 N 与 M&#xff0c;以及表示比特位置的 i 与 j&#xff08;i < j&#xff0c;且从 0 位开始计算&#xff09;。 编写一种方法&#xff0c;使 M 对应的二进制数字插入 N 对应的二进制数字的第 i ~ j 位区域&#xff0c;不足之处用 0 补齐…

网络安全,文明上网(4)掌握网络安全技术

前言 在数字化时代&#xff0c;个人信息和企业数据的安全变得尤为重要。为了有效保护这些宝贵资产&#xff0c;掌握一系列网络安全技术是关键。 核心技术及实施方式 1. 网络监控与过滤系统&#xff1a; 这些系统构成了网络防御体系的基石&#xff0c;它们负责监控网络通信&…

[开源] SafeLine 好用的Web 应用防火墙(WAF)

SafeLine&#xff0c;中文名 “雷池”&#xff0c;是一款简单好用, 效果突出的 Web 应用防火墙(WAF)&#xff0c;可以保护 Web 服务不受黑客攻击 一、简介 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、XSS、 代码注…

ELK8.15.4搭建开启安全认证

安装 Elastic &#xff1a;Elasticsearch&#xff0c;Kibana&#xff0c;Logstash 另外安装一个收集器filebeat 通过二进制安装包进行安装 创建一个专门放elk目录 mkdir /elk/ mkdir /elk/soft下载 es 、kibana、Logstash、filebeat二进制包 cd /elk/softwget https://art…

excel版数独游戏(已完成)

前段时间一个朋友帮那小孩解数独游戏&#xff0c;让我帮解&#xff0c;我看他用电子表格做&#xff0c;只能显示&#xff0c;不能显示重复&#xff0c;也没有协助解题功能&#xff0c;于是我说帮你做个电子表格版的“解题助手”吧&#xff0c;不能直接解题&#xff0c;但该有的…

Linux上安装单机版Kafka

1、上传Kafka安装包至Linux并进行解压 kafka_2.12-1.1.1.tgz 链接&#xff1a;https://pan.baidu.com/s/1i41RKHlCbp0q2xQ1PEgT5g 提取码&#xff1a;vofa 将安装包解压 tar -zxvf kafka_2.12-1.1.1.tgz 2、修改kafka配置 vi config/server.properties 只修改绑定 IP &#…

Kafka 消费者全面解析:原理、消费者 API 与Offset 位移

Kafka&#xff1a;分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析&#xff1a;从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…