feat:添加长亭雷池到列表

This commit is contained in:
okxlin 2023-07-31 23:29:36 +08:00
parent 0fe1599a8a
commit e94829381f
12 changed files with 724 additions and 0 deletions

View File

@ -0,0 +1,12 @@
CONTAINER_NAME="safeline"
MGT_PORT="40080"
POSTGRES_DB="safeline"
POSTGRES_HOST="postgres"
POSTGRES_PASSWORD="password_xxJdZD"
POSTGRES_PORT="5432"
POSTGRES_USER="postgresql"
REDIS_HOST="redis"
REDIS_PASSWORD=""
REDIS_PORT="6379"
SAFELINE_DIR="./data"
SUBNET_PREFIX="169.254.0"

View File

@ -0,0 +1,88 @@
additionalProperties:
formFields:
- default: ""
edit: true
envKey: REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: Redis服务
required: true
type: service
- default: "6379"
edit: true
envKey: REDIS_PORT
labelEn: Redis Service Port
labelZh: Redis服务端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelEn: Redis Service Password
labelZh: Redis服务密码
required: true
rule: paramCommon
type: password
- default: ""
edit: true
envKey: POSTGRES_HOST
key: postgresql
labelEn: Postgres database Service
labelZh: Postgres数据库服务
required: true
type: service
- default: "5432"
edit: true
envKey: POSTGRES_PORT
labelEn: Postgres database Service Port
labelZh: Postgres数据库服务端口
required: true
rule: paramPort
type: number
- default: safeline
edit: true
envKey: POSTGRES_DB
labelEn: Postgres database Name
labelZh: Postgres数据库名
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: POSTGRES_USER
labelEn: Postgres database User Name
labelZh: Postgres数据库用户名
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: POSTGRES_PASSWORD
labelEn: Postgres database User Password
labelZh: Postgres数据库密码
required: true
rule: paramCommon
type: password
- default: 40080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ./data
edit: true
envKey: SAFELINE_DIR
labelEn: Data storage folder
labelZh: 数据存放文件夹
required: true
type: text
- default: 169.254.0
edit: true
envKey: SUBNET_PREFIX
labelEn: Subnet prefix
labelZh: 子网前缀
required: true
type: text

View File

@ -0,0 +1,98 @@
version: '3'
services:
safeline-management:
container_name: ${CONTAINER_NAME}-mgt-api
restart: always
networks:
safeline-ce:
ipv4_address: ${SUBNET_PREFIX}.4
image: chaitin/safeline-mgt-api:2.4.0
volumes:
- ${SAFELINE_DIR}/resources/management:/resources/management
- ${SAFELINE_DIR}/resources/nginx:/resources/nginx
- ${SAFELINE_DIR}/logs:/logs
- /etc/localtime:/etc/localtime:ro
ports:
- ${PANEL_APP_PORT_HTTP:-9443}:1443
environment:
- MANAGEMENT_RESOURCES_DIR=/resources/management
- NGINX_RESOURCES_DIR=/resources/nginx
- DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
- MARIO_URL=http://safeline-mario:3335
- DETECTOR_URL=http://safeline-detector:8001
- MANAGEMENT_LOGS_DIR=/logs/management
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-detector:
container_name: ${CONTAINER_NAME}-detector
restart: always
networks:
safeline-ce:
ipv4_address: ${SUBNET_PREFIX}.5
image: chaitin/safeline-detector:2.4.0
volumes:
- ${SAFELINE_DIR}/resources/detector:/resources/detector
- ${SAFELINE_DIR}/logs/detector:/logs/detector
- /etc/localtime:/etc/localtime:ro
environment:
- LOG_DIR=/logs/detector
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-mario:
container_name: ${CONTAINER_NAME}-mario
restart: always
networks:
safeline-ce:
ipv4_address: ${SUBNET_PREFIX}.6
image: chaitin/safeline-mario:2.4.0
volumes:
- ${SAFELINE_DIR}/resources/mario:/resources/mario
- ${SAFELINE_DIR}/logs/mario:/logs/mario
- /etc/localtime:/etc/localtime:ro
environment:
- LOG_DIR=/logs/mario
- GOGC=100
- DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
- REDIS_URL=redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/0
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-tengine:
container_name: ${CONTAINER_NAME}-tengine
restart: always
image: chaitin/safeline-tengine:2.4.0
volumes:
- ${SAFELINE_DIR}/resources/nginx:/etc/nginx
- ${SAFELINE_DIR}/resources/management:/resources/management
- ${SAFELINE_DIR}/resources/detector:/resources/detector
- ${SAFELINE_DIR}/logs/nginx:/var/log/nginx
- /etc/localtime:/etc/localtime:ro
- ${SAFELINE_DIR}/resources/cache:/usr/local/nginx/cache
- /etc/resolv.conf:/etc/resolv.conf
environment:
- MGT_ADDR=${SUBNET_PREFIX}.4:9002
ulimits:
nofile: 131072
network_mode: host
labels:
createdBy: Apps
networks:
safeline-ce:
name: safeline-ce
driver: bridge
ipam:
driver: default
config:
- gateway: ${SUBNET_PREFIX:?SUBNET_PREFIX required}.1
subnet: ${SUBNET_PREFIX}.0/24
driver_opts:
com.docker.network.bridge.name: safeline-ce

118
apps/safeline/README.md Normal file
View File

@ -0,0 +1,118 @@
<p align="center">
<img src="https://waf-ce.chaitin.cn/images/403.svg" width="120">
</p>
<h1 align="center">雷池 - 广受好评的社区 WAF</h1>
<br>
<p align="center">
<img src="https://img.shields.io/badge/SafeLine-BEST_WAF-blue">
<img src="https://img.shields.io/github/release/chaitin/safeline.svg?color=blue" />
<img src="https://img.shields.io/github/release-date/chaitin/safeline.svg?color=blue&label=update" />
<img src="https://img.shields.io/docker/v/chaitin/safeline-mgt-api?color=blue">
<img src="https://img.shields.io/github/stars/chaitin/safeline?style=social">
</p>
<p align="center">
<a href="https://waf-ce.chaitin.cn/">官方网站</a> |
<a href="https://demo.waf-ce.chaitin.cn:9443/dashboard">在线 Demo</a> |
<a href="https://waf-ce.chaitin.cn/posts/guide_introduction">技术文档</a> |
<a href="https://github.com/chaitin/safeline/blob/main/README_EN.md">For English</a>
</p>
一款足够简单、足够好用、足够强的免费 WAF。基于业界领先的语义引擎检测技术作为反向代理接入保护你的网站不受黑客攻击。
核心检测能力由智能语义分析算法驱动,专为社区而生,不让黑客越雷池半步。
<img src="https://waf-ce.chaitin.cn/images/album/0.png" />
<h4 align="center">相关源码仓库</h4>
<p align="center">
<a href="https://github.com/chaitin/yanshi">语义分析自动机引擎</a> |
<a href="https://github.com/chaitin/safeline-open-platform">流量分析插件</a> |
<a href="https://github.com/chaitin/lua-resty-t1k">T1K 协议</a> |
<a href="https://github.com/chaitin/blazehttp">测试工具</a>
</p>
## 相关特性
#### 便捷性
采用容器化部署一条命令即可完成安装0 成本上手。安全配置开箱即用,无需人工维护,可实现安全躺平式管理。
#### 安全性
首创业内领先的智能语义分析算法,精准检测、低误报、难绕过。语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措。
#### 高性能
无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别。并发能力强,单核轻松检测 2000+ TPS只要硬件足够强可支撑的流量规模无上限。
#### 高可用
流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障。内置完善的健康检查机制,服务可用性高达 99.99%。
## 🚀 安装
### 配置需求
- 操作系统Linux
- 指令架构x86_64
- 软件依赖Docker 20.10.6 版本以上
- 软件依赖Docker Compose 2.0.0 版本以上
- 最小化环境1 核 CPU / 1 GB 内存 / 10 GB 磁盘
### 一键安装
```
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
```
> 更多安装方式请参考 <a href="https://waf-ce.chaitin.cn/posts/guide_install">安装雷池</a>
## 🕹️ 快速使用
### 登录
浏览器打开后台管理页面 `https://<waf-ip>:9443`。根据界面提示,使用 **支持 TOTP 的认证软件** 扫描二维码,然后输入动态口令登录:
![login.gif](https://waf-ce.chaitin.cn/images/gif/login.gif)
### 配置防护站点
雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。
![config.gif](https://waf-ce.chaitin.cn/images/gif/config_site.gif)
<font color=grey>💡 TIPS: 添加后,执行 `curl -H "Host: <域名>" http://<WAF IP>:<端口>` 应能获取到业务网站的响应。</font>
### 测试效果
使用以下方式尝试模拟黑客攻击,看看雷池的防护效果如何
- 浏览器访问 `http://<IP或域名>:<端口>/?id=1%20AND%201=1`
- 浏览器访问 `http://<IP或域名>:<端口>/?a=<script>alert(1)</script>`
![log.gif](https://waf-ce.chaitin.cn/images/gif/detect_log.gif)
> 如果你需要进行深度测试,请参考 <a href="https://waf-ce.chaitin.cn/posts/guide_test">测试防护效果</a>
### FAQ
- [安装问题](https://waf-ce.chaitin.cn/posts/faq_install)
- [登录问题](https://waf-ce.chaitin.cn/posts/faq_login)
- [网站无法访问](https://waf-ce.chaitin.cn/posts/faq_access)
- [配置问题](https://waf-ce.chaitin.cn/posts/faq_config)
- [其他问题](https://waf-ce.chaitin.cn/posts/faq_other)
## 🏘️ 联系我们
1. 可以通过 GitHub Issue 直接进行 Bug 反馈和功能建议
2. 可以扫描下方二维码加入雷池社区版用户讨论群
<img src="https://waf-ce.chaitin.cn/images/wechat-230717.png" width="30%" />
## Star History <a name="star-history"></a>
<a href="https://github.com/chaitin/safeline/stargazers">
<img width="500" alt="Star History Chart" src="https://api.star-history.com/svg?repos=chaitin/safeline&type=Date">
</a>

20
apps/safeline/data.yml Normal file
View File

@ -0,0 +1,20 @@
name: 雷池
tags:
- 工具
title: 一款足够简单、足够好用、足够强的免费 WAF
type: 工具
description: 一款足够简单、足够好用、足够强的免费 WAF
additionalProperties:
key: safeline
name: 雷池
tags:
- Tool
shortDescZh: 一款足够简单、足够好用、足够强的免费 WAF
shortDescEn: A simple and easy to use WAF tool
type: tool
crossVersionUpdate: true
limit: 1
recommend: 0
website: https://waf-ce.chaitin.cn/
github: https://github.com/chaitin/safeline
document: https://waf-ce.chaitin.cn/posts/guide_introduction

View File

@ -0,0 +1,12 @@
CONTAINER_NAME="safeline"
MGT_PORT="40080"
POSTGRES_DB="safeline"
POSTGRES_HOST="postgres"
POSTGRES_PASSWORD="password_xxJdZD"
POSTGRES_PORT="5432"
POSTGRES_USER="postgresql"
REDIS_HOST="redis"
REDIS_PASSWORD=""
REDIS_PORT="6379"
SAFELINE_DIR="./data"
SUBNET_PREFIX="172.18.0"

View File

@ -0,0 +1,88 @@
additionalProperties:
formFields:
- default: ""
edit: true
envKey: REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: Redis服务
required: true
type: service
- default: "6379"
edit: true
envKey: REDIS_PORT
labelEn: Redis Service Port
labelZh: Redis服务端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelEn: Redis Service Password
labelZh: Redis服务密码
required: true
rule: paramCommon
type: password
- default: ""
edit: true
envKey: POSTGRES_HOST
key: postgresql
labelEn: Postgres database Service
labelZh: Postgres数据库服务
required: true
type: service
- default: "5432"
edit: true
envKey: POSTGRES_PORT
labelEn: Postgres database Service Port
labelZh: Postgres数据库服务端口
required: true
rule: paramPort
type: number
- default: safeline
edit: true
envKey: POSTGRES_DB
labelEn: Postgres database Name
labelZh: Postgres数据库名
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: POSTGRES_USER
labelEn: Postgres database User Name
labelZh: Postgres数据库用户名
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: POSTGRES_PASSWORD
labelEn: Postgres database User Password
labelZh: Postgres数据库密码
required: true
rule: paramCommon
type: password
- default: 40080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ./data
edit: true
envKey: SAFELINE_DIR
labelEn: Data storage folder
labelZh: 数据存放文件夹
required: true
type: text
- default: 172.18.0
edit: false
envKey: SUBNET_PREFIX
labelEn: Subnet prefix
labelZh: 子网前缀
required: true
type: text

View File

@ -0,0 +1,90 @@
version: '3'
services:
safeline-management:
container_name: ${CONTAINER_NAME}-mgt-api
restart: always
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.234
image: chaitin/safeline-mgt-api:latest
volumes:
- ${SAFELINE_DIR}/resources/management:/resources/management
- ${SAFELINE_DIR}/resources/nginx:/resources/nginx
- ${SAFELINE_DIR}/logs:/logs
- /etc/localtime:/etc/localtime:ro
ports:
- ${PANEL_APP_PORT_HTTP:-9443}:1443
environment:
- MANAGEMENT_RESOURCES_DIR=/resources/management
- NGINX_RESOURCES_DIR=/resources/nginx
- DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
- MARIO_URL=http://safeline-mario:3335
- DETECTOR_URL=http://safeline-detector:8001
- MANAGEMENT_LOGS_DIR=/logs/management
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-detector:
container_name: ${CONTAINER_NAME}-detector
restart: always
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.235
image: chaitin/safeline-detector:latest
volumes:
- ${SAFELINE_DIR}/resources/detector:/resources/detector
- ${SAFELINE_DIR}/logs/detector:/logs/detector
- /etc/localtime:/etc/localtime:ro
environment:
- LOG_DIR=/logs/detector
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-mario:
container_name: ${CONTAINER_NAME}-mario
restart: always
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.236
image: chaitin/safeline-mario:latest
volumes:
- ${SAFELINE_DIR}/resources/mario:/resources/mario
- ${SAFELINE_DIR}/logs/mario:/logs/mario
- /etc/localtime:/etc/localtime:ro
environment:
- LOG_DIR=/logs/mario
- GOGC=100
- DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
- REDIS_URL=redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/0
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-tengine:
container_name: ${CONTAINER_NAME}-tengine
restart: always
image: chaitin/safeline-tengine:latest
volumes:
- ${SAFELINE_DIR}/resources/nginx:/etc/nginx
- ${SAFELINE_DIR}/resources/management:/resources/management
- ${SAFELINE_DIR}/resources/detector:/resources/detector
- ${SAFELINE_DIR}/logs/nginx:/var/log/nginx
- /etc/localtime:/etc/localtime:ro
- ${SAFELINE_DIR}/resources/cache:/usr/local/nginx/cache
- /etc/resolv.conf:/etc/resolv.conf
environment:
- MGT_ADDR=${SUBNET_PREFIX}.234:9002
ulimits:
nofile: 131072
network_mode: host
labels:
createdBy: Apps
networks:
1panel-network:
external: true

View File

@ -0,0 +1,12 @@
CONTAINER_NAME="safeline"
MGT_PORT="40080"
POSTGRES_DB="safeline"
POSTGRES_HOST="postgres"
POSTGRES_PASSWORD="password_xxJdZD"
POSTGRES_PORT="5432"
POSTGRES_USER="postgresql"
REDIS_HOST="redis"
REDIS_PASSWORD=""
REDIS_PORT="6379"
SAFELINE_DIR="./data"
SUBNET_PREFIX="169.254.0"

View File

@ -0,0 +1,88 @@
additionalProperties:
formFields:
- default: ""
edit: true
envKey: REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: Redis服务
required: true
type: service
- default: "6379"
edit: true
envKey: REDIS_PORT
labelEn: Redis Service Port
labelZh: Redis服务端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelEn: Redis Service Password
labelZh: Redis服务密码
required: true
rule: paramCommon
type: password
- default: ""
edit: true
envKey: POSTGRES_HOST
key: postgresql
labelEn: Postgres database Service
labelZh: Postgres数据库服务
required: true
type: service
- default: "5432"
edit: true
envKey: POSTGRES_PORT
labelEn: Postgres database Service Port
labelZh: Postgres数据库服务端口
required: true
rule: paramPort
type: number
- default: safeline
edit: true
envKey: POSTGRES_DB
labelEn: Postgres database Name
labelZh: Postgres数据库名
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: POSTGRES_USER
labelEn: Postgres database User Name
labelZh: Postgres数据库用户名
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: POSTGRES_PASSWORD
labelEn: Postgres database User Password
labelZh: Postgres数据库密码
required: true
rule: paramCommon
type: password
- default: 40080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ./data
edit: true
envKey: SAFELINE_DIR
labelEn: Data storage folder
labelZh: 数据存放文件夹
required: true
type: text
- default: 169.254.0
edit: true
envKey: SUBNET_PREFIX
labelEn: Subnet prefix
labelZh: 子网前缀
required: true
type: text

View File

@ -0,0 +1,98 @@
version: '3'
services:
safeline-management:
container_name: ${CONTAINER_NAME}-mgt-api
restart: always
networks:
safeline-ce:
ipv4_address: ${SUBNET_PREFIX}.4
image: chaitin/safeline-mgt-api:latest
volumes:
- ${SAFELINE_DIR}/resources/management:/resources/management
- ${SAFELINE_DIR}/resources/nginx:/resources/nginx
- ${SAFELINE_DIR}/logs:/logs
- /etc/localtime:/etc/localtime:ro
ports:
- ${PANEL_APP_PORT_HTTP:-9443}:1443
environment:
- MANAGEMENT_RESOURCES_DIR=/resources/management
- NGINX_RESOURCES_DIR=/resources/nginx
- DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
- MARIO_URL=http://safeline-mario:3335
- DETECTOR_URL=http://safeline-detector:8001
- MANAGEMENT_LOGS_DIR=/logs/management
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-detector:
container_name: ${CONTAINER_NAME}-detector
restart: always
networks:
safeline-ce:
ipv4_address: ${SUBNET_PREFIX}.5
image: chaitin/safeline-detector:latest
volumes:
- ${SAFELINE_DIR}/resources/detector:/resources/detector
- ${SAFELINE_DIR}/logs/detector:/logs/detector
- /etc/localtime:/etc/localtime:ro
environment:
- LOG_DIR=/logs/detector
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-mario:
container_name: ${CONTAINER_NAME}-mario
restart: always
networks:
safeline-ce:
ipv4_address: ${SUBNET_PREFIX}.6
image: chaitin/safeline-mario:latest
volumes:
- ${SAFELINE_DIR}/resources/mario:/resources/mario
- ${SAFELINE_DIR}/logs/mario:/logs/mario
- /etc/localtime:/etc/localtime:ro
environment:
- LOG_DIR=/logs/mario
- GOGC=100
- DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
- REDIS_URL=redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/0
cap_drop:
- net_raw
labels:
createdBy: Apps
safeline-tengine:
container_name: ${CONTAINER_NAME}-tengine
restart: always
image: chaitin/safeline-tengine:latest
volumes:
- ${SAFELINE_DIR}/resources/nginx:/etc/nginx
- ${SAFELINE_DIR}/resources/management:/resources/management
- ${SAFELINE_DIR}/resources/detector:/resources/detector
- ${SAFELINE_DIR}/logs/nginx:/var/log/nginx
- /etc/localtime:/etc/localtime:ro
- ${SAFELINE_DIR}/resources/cache:/usr/local/nginx/cache
- /etc/resolv.conf:/etc/resolv.conf
environment:
- MGT_ADDR=${SUBNET_PREFIX}.4:9002
ulimits:
nofile: 131072
network_mode: host
labels:
createdBy: Apps
networks:
safeline-ce:
name: safeline-ce
driver: bridge
ipam:
driver: default
config:
- gateway: ${SUBNET_PREFIX:?SUBNET_PREFIX required}.1
subnet: ${SUBNET_PREFIX}.0/24
driver_opts:
com.docker.network.bridge.name: safeline-ce

BIN
apps/safeline/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB