长亭百川云

长亭百川云

技术讨论长亭漏洞情报库IP 威胁情报SLA在线工具
热门产品
雷池 WAF 社区版
IP 威胁情报
网站安全监测
百川漏扫服务
云堡垒机
百川云
技术文档
开发工具
长亭漏洞情报库
网安百科
安全社区
CT STACK 安全社区
雷池社区版
XRAY 扫描工具
长亭科技
长亭科技官网
万众合作伙伴商城
长亭 BBS 论坛
友情链接
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备2024055124号-2

长亭百川云

热门应用
查看更多
雷池 WAF 社区版
IP 威胁情报
网站安全监测
SSL 证书服务
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/952d39f311aa1c4c23f32968b7cd45a1.png
雷池 WAF 社区版
智能语义算法 · 开箱即用 · 高性能高可用性
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/ee8f2918e4d99d17f219cb46ec806fde.png
IP 威胁情报
IP 画像查询 · IP 库订阅 · 4 大应用场景
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/5f3debe40bd86b430564010c75b2cb41.png
网站安全监测
敏感词监控 · 篡改监控 · 恶意链接 · 挂马监控
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/4c6052bcaddaa7698c0257719b76cef2.png
SSL 证书服务
快速颁发 · 证书监控 · 极高性价比 · DV-OV-EV
应用介绍

热门讨论

查看更多

使用AllinSSL自动续签雷池WAF的SSL证书

头像

风熙.

更新于 9 小时前

前言

什么是AllinSSL?

AllinSSL是开源免费的 SSL 证书自动化管理平台,可实现一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,支持跨云环境,告别繁琐配置和高昂费用。

安装AllinSSL

使用二进制安装命令 (推荐)

1curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl

备用安装命令

1curl -sSO https://cnb.cool/allinssl/install.sh/-/git/raw/main/install_allinssl.sh && 

使用Docker部署

使用Docker部署时,证书保存路径为AllinSSL所在Docker文件夹内。

直接复制以下命令安装,用户名:allinssl 密码:allinssldocker 安全入口:allinssl。可自行更改

docker run -itd \
  --name allinssl \
  -p 7979:8888 \
  -v /www/allinssl/data:/www/allinssl/data \
  -e ALLINSSL_USER=allinssl \
  -e ALLINSSL_PWD=allinssldocker \
  -e ALLINSSL_URL=allinssl \
  allinssl/allinssl:latest

或使用宝塔面板进行安装,在宝塔面板Docker页搜索AllinSSL,自行修改端口、用户名、密码、安全入口后安装即可。由于操作简单,为节约大家的流量和节省服务器资源,这里不再放图和过多赘述。

配置雷池

上传一张证书

在雷池WAF主界面——通用设置——防护配置——证书管理中的添加证书里上传一张证书

获取证书ID

2.png

在通用设置——控制台管理——雷池控制台证书中找到你刚才上传的证书ID

获取证书路径

进入雷池证书目录/data/safeline/resources/nginx/certs,找到你的证书

3.png

证书为cert_ + 你刚刚上传的证书ID .crt和.key

设置AllinSSL

配置DNS

在AllinSSL面板中,选择授权API管理,添加你的DNS提供商给你的公私钥,并点击确认

4.png

配置通知

如果你有通知需求的话,可以配置通知

在AllinSSL面板中,选择设置,选择告警通知,并点击确认

5.png

新建自动化部署工作流

在AllinSSL面板中,选择自动化部署,选择添加自动化部署,模板自由选择,并点击确认

6.png

设置申请证书流程

点击申请证书设置流程并配置

7.png

  • 域名:以逗号分隔,没有空格,如*.example.com,example.com
  • 证书CA:Let's Encrypt除外的CA机构需要添加CA授权
  • 邮件:可随意填写

我实测境外服务器如中国香港使用阿里云Key时,在本地预检查时无法连接上阿里云服务器,会导致预检查失败和证书申请失败,好几个证书申请软件都是这样。需要在高级设置中勾选跳过本地预检查

设置部署流程

点击部署流程,点击本地部署并点击下一步

8.png

由于我们在前面看到,需要在雷池中自动续期的证书的证书ID是2。因此:

  • 证书路径为:/data/safeline/resources/nginx/certs/cert_2.crt

  • 证书私钥为:/data/safeline/resources/nginx/certs/cert_2.key

雷池WAF会每一小时拉取一次,你也可以添加后置命令重启雷池容器,使雷池立即拉取

9.png

其他需要更改的地方

其他需要更改的地方有通知,其他无特别需要的地方。设置非常简单,这里不再过多赘述。

执行工作流

保存工作流后,点击执行开始申请一张证书

10.png

此时状态会变成正在执行

11.png

点击详情可以看到执行进度。我忘记配邮件通知了,所以最后的状态变成了失败,懒得重新弄了

12.png

此时雷池目录对应的证书也被更新

13.png

就这样,我们在雷池WAF实现了证书的自动续签

# 雷池 WAF
# SSL 证书
# 网站监测

1

1

雷池规则广场:Edgeone源站防护

头像

K

更新于 14 小时前

规则地址

规则库说明

Edgeone源站防护

# 雷池 WAF

0

1

雷池规则广场:EdgeOne源站防护回源IP网段

头像

K

更新于 14 小时前

规则地址

规则库说明

腾讯云EdgeOne源站防护回源IP网段

# 雷池 WAF

0

1

雷池规则广场:拦截TCPTest测速网站的节点IP库

头像

娜美呀

更新于 16 小时前

规则地址

规则库说明

180.163.116.19
119.45.28.95
121.43.99.19
121.5.206.127
120.199.84.111
45.249.209.105
222.186.61.9
223.244.27.153
124.248.67.208
118.190.75.149
27.38.200.5
101.126.35.220
121.229.164.59
211.95.35.139
220.160.33.233
117.143.167.109
36.32.220.113
43.136.169.50
42.51.0.166
112.23.184.199
39.146.177.174
223.167.230.91
43.139.22.128
123.129.230.143
180.119.30.180
36.110.168.105
36.137.178.101
220.231.146.36
49.85.11.7
116.30.102.109
220.167.103.229
115.126.50.174
36.133.123.59
112.17.51.178
112.20.12.136
36.137.78.238
111.170.7.223
36.137.22.223
36.139.102.211
36.133.100.157
58.20.74.199
113.200.41.121
171.213.138.51
110.190.171.238
183.221.81.154
36.134.223.132
36.138.238.155
222.211.73.42
119.36.65.214
175.152.117.12
183.232.3.137
101.19.15.52
36.134.66.210
222.213.143.201
110.152.202.29
220.248.169.247
58.253.167.253
112.18.129.86
112.43.37.148
180.130.97.111
124.235.65.249
36.137.145.214
36.139.215.106
43.240.220.150
43.153.63.106
38.181.52.66
61.111.251.177
45.251.240.236
54.252.227.15
34.254.89.71
165.154.13.180
117.153.224.85
211.154.22.169
152.32.159.158
114.98.72.195
156.224.18.24
124.88.81.15
14.215.41.148
36.213.70.71
154.201.92.60
165.154.129.214
113.233.123.106
195.133.52.188
128.14.236.90
109.248.24.56
152.32.200.97
43.165.184.234
43.131.13.32
15.223.121.120
154.205.154.99
165.154.221.142
13.246.227.170
165.154.51.14
110.42.102.155

# 雷池 WAF

0

1

雷池WAF穿透三层代理:Cloudflare+NPM+Docker网络防护配置

头像

Walter White

更新于 2 天前

前言

未知攻焉知防,不谙守何谈破
身为研习渗透的初学者,我意识到:防护思维实为攻击者的必修课,当转换视角为站长,核心问题浮现:如何用尽可能小的成本实现最大的网站防护效果

我进行了以下实验:通过 CDN、Nginx、雷池 WAF 和 Docker ,构建网站防护

实验目标

全部采用docker容器,搭建一个网站,流量流程: 用户-> www.xxxx.com -> cloudflare(cdn,避免ddos等攻击,同时隐藏源ip)-> npm(反向代理) -> 雷池(检测攻击行为,及时防御)-> 本地服务(docker内部应用,本地网站)
123

准备

服务器安装了以下软件:

  • 核心组件:Docker + Docker Compose
  • 安装指南:Docker & DockerCompose 极速安装指南

雷池waf:由长亭科技耗时十余年自研的一款 Web 应用防火墙,目前**Github排名第一 17.1k star **,什么实力无需多言,本次采用的是雷池waf的社区版

  • 官网链接: 雷池 WAF | 下一代 Web 应用防火墙 | 免费使用
  • 安装指南: 雷池 WAF 帮助文档 - 免费安装(推荐)
  • 管理面板:https://ip:9443

nginx-proxy-manage(NPM):是一款开源的 Web 可视化工具,通过简单界面集中管理 Nginx 反向代理规则与 SSL 证书,实现「零配置部署 HTTPS + 多服务路由」的一站式解决方案。

  • 官网链接:Nginx Proxy Manager
  • 安装指南:【玩转docker】反向代理神器:Nginx Proxy Manager - 知乎
  • 管理面板:http://ip:81

配置以下内容:

  • cloudflare DNS域名解析(www):Cloudflare域名解析
  • cloudflare API Token获取(用于ssl证书):轻松获取 Cloudflare API Token

开始实验

1. 搭建测试网站

  1. 我选择了使用docker环境的nginx容器搭建
1安装nginx docker 容器:docker pull nginx
  1. 在部署 Nginx Docker 容器之前,需要先在宿主机创建配置文件和相关目录(如配置、静态资源、日志目录),以便在容器启动时通过挂载方式将其引入容器内部,实现灵活控制与持久化。
1mkdir -p ~/nginx/{conf,html,logs}
2cd ~/nginx
  1. 编辑nginx.conf配置文件
1vim ~/nginx/conf/nginx.conf
1user  nginx;
2worker_processes  auto;
3
4error_log  /var/log/nginx/error.log warn;
5pid        /var/run/nginx.pid;
6
7events {
8    worker_connections  1024;
9}
10
11http {
12    include       /etc/nginx/mime.types; 
13    default_type  application/octet-stream;
14    
15    # 关闭服务器版本信息
16    server_tokens off;
17    
18    # 简化日志格式
19    log_format main '$remote_addr - $request';
20    access_log  /var/log/nginx/access.log  main;
21    
22    sendfile        on;
23    keepalive_timeout  65;
24    
25    # 核心:单虚拟主机配置
26    server {
27        listen 12080;        #!注意,这里的端口将作为雷池上游监听端口,不要填写80!! 
28        server_name _;
29        
30        # 网站根目录
31        root   /usr/share/nginx/html;
32        index  index.html;
33        
34        location / {
35            try_files $uri $uri/ =404;
36        }
37    }
38}
  • 将上面的内容根据需要编辑后保存
  1. 将网页或者源码上传到~/nginx/html/
  2. 启动docker容器
1cd ~/nginx
2docker run -d --name my-nginx #容器名称,可以自定义 \
3  -p 12080:12080 \  # 填写上文中你编辑的端口,如果你是13797。就是 -p 13797:13797
4  -v $(pwd)/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
5  -v $(pwd)/html:/usr/share/nginx/html \
6  -v $(pwd)/logs:/var/log/nginx \
7  nginx:alpine

至此,网页配置完成,可以访问http://ip:端口 (你编辑的),如果能访问成功,则代表配置完成

2.npm配置

ssl证书申请

  1. 申请免费ssl证书
    1.2.jpg
  • Domain Names:填写 *.example.com
  • 勾选Use a DNS Chellenge
  • DNS Provider选择Cloudflare
  • Credentials File Content 填写你的cloudflare api token
  • 最后勾选 I Agree to the Let's Encrypt Terms of Service
    1.3.jpg
  • 点击:save,过一会儿新的泛解析ssl证书就申请成功了

配置反向代理

  1. 点击:Dashboard -> Proxy Hosts ->Add Proxy Host
    2.1.jpg
  • Domain Names : 填写解析的域名(Cloudflare配置)
  • Scheme : 选择http

注意!此处的http,https不代表通过域名访问时的配置,因此选择http即可

  • Forward Hostname / IP : 172.17.0.1

注意!Docker服务默认会创建一个 docker0 网桥进行通信,需要获取该网桥的ip段,否则不能通信,使用命令:ip addr show docker0 查看ip并获取ip填写,大部分情况下为:172.17.0.1

  • Forward Port:填写为随机占用端口,类似:10080

注意!原本的配置应该是nginx反向代理 ->服务 ,现在是 nginx反向代理->雷池->服务 ,因此可以将nginx转发设置为一个不占用的随机端口,雷池选择这个服务的子域名,同时监听这个不占用的端口,上游端口填写上文配置的应用端口 就可以实现nginx反向代理后的雷池检测了

2.2.jpg

  • 我的配置如图
    2.3.jpg
  1. 点击:SSL -> SSL Certificate ->选择刚刚申请的证书 -> 勾选Force SSL -> save
    2.4.jpg

3.雷池配置

  1. 点击:防护应用->添加应用
    • 域名:填写DNS解析域名(例如:www.example.com)
    • 端口:填写npm配置时的Forward Port端口(SSL不要勾选)
    • 证书:不用管
    • 选择代理到已有应用
    • 上游服务器:http://127.0.0.1:端口 (docker配置时的端口,我配置为12080,若更改端口则填写所更改端口)
    • 应用名称:随意
      3.1.jpg
  2. 下图为我的配置,点击提交
    3.2.jpg
  3. 获取攻击者的ip地址
    • 点击:防护应用 -> 高级配置 -> 源ip获取方式 -> 选择取X-Forward-For中上上一级代理地址

由于前面有cloudflare的cdn,nginx的反向代理,因此上上一级代理地址为攻击者ip

5.5.jpg

4.iptables配置

至此已完成四分之三防护,但暴露的端口仍是致命漏洞:当黑客无法从域名突破时,会扫描开放端口直尝试攻击。如何封杀这条攻击路径?——iptables登场

此时,我的域名和端口都是可以直接访问的
域名:
4.1.jpg
ip+端口:
4.2.jpg

网站源代码出处 :https://github.com/imbyter/homepage

iptables端口限制主要分为两类:

  1. 针对docker的端口限制
    • 通过FORWARD链
    • 通过DOCKER-USER链
  2. 针对本地搭建的端口限制
    • 通过INPUT链

iptables 的规则匹配逻辑:

  • 匹配顺序:iptables 规则是自上而下逐条匹配的。

    • 优先写入允许规则:确保合法流量先被匹配。
    • 最后添加阻止规则:默认拒绝未匹配的流量。
  • 使用数字控制链条顺序,确保规则按预期顺序应用

  • FORWARD链限制(docker)

1允许内部访问12080端口:
2iptables -I FORWARD 1 -s 127.0.0.1 -p tcp --dport 12080 -j ACCEPT
3
4允许docker网络访问12080端口:
5iptables -I FORWARD 2 -s 172.17.0.0/16 -p tcp --dport 12080 -j ACCEPT
6
7禁止其他任何网络连接12080端口:
8iptables -A FORWARD 3 -p tcp --dport 12080 -j DROP
  • DOCKER-USER链限制(docker)
1允许内部访问12080端口:
2iptables -I DOCKER-USER 1 -s 127.0.0.1 -p tcp --dport 12080 -j ACCEPT
3
4允许docker网络访问12080端口:
5iptables -I DOCKER-USER 2 -s 172.17.0.0/16 -p tcp --dport 12080 -j ACCEPT
6
7禁止其他任何网络连接12080端口:
8iptables -A DOCKER-USER 3 -p tcp --dport 12080 -j DROP
  • INPUT链条限制
1允许内部访问12080端口:
2iptables -I INPUT 1 -s 127.0.0.1 -p tcp --dport 12080 -j ACCEPT
3
4允许docker网络访问12080端口:
5iptables -I INPUT 2 -s 172.17.0.0/16 -p tcp --dport 12080 -j ACCEPT
6
7禁止其他任何网络连接12080端口:
8iptables -A INPUT 3 -p tcp --dport 12080 -j DROP

测试配置

Cloudflare CDN 效果如下(受节点影响):

  • 站长之家ping 测试 https://ping.chinaz.com/
    5.1.jpg
  • ping.pe 测试 https://ping.pe/
    5.2.jpg

npm测试(iptables+反向代理)

  • 正常访问域名没有问题
    4.3.jpg
  • ip+端口访问(被ban)
    4.4.jpg

雷池测试(防护生效检测):

  • 正常访问
    5.3.jpg
  • 攻击测试(禁止访问)
    5.4.jpg

防护配置生效! 大功告成!

# 雷池技术博客投稿
# 雷池 WAF
技术资料

1

3

百川威胁情报数据库使用指南

头像

没用的阿吉

更新于 2 天前

百川威胁情报数据库使用指南

安装和使用百川威胁情报数据库的简单指南

安装


从 TestPyPI 安装库(官方 PyPI 版本即将发布):

1pip3 install --index-url https://test.pypi.org/simple/ intelligence-db

快速开始


以下是基于演示代码的简单示例:

1from intelligence_db import IntelligenceDB
2
3def main():
4    # Database file path
5    db_file = '/path/to/your/intelligence.db'
6    
7    # Load database
8    db = IntelligenceDB(db_file)
9    
10    # Display statistics
11    stats = db.get_stats()
12    print(f"Statistics: {stats}")
13    
14    # Query test
15    result = db.query_item("13.196.249.206")
16    if result:
17        print(result)
18
19if __name__ == '__main__':
20    main()

要求


  • Python >= 3.7
  • cryptography >= 3.0.0
    加密库将作为依赖项自动安装。

基本用法


  1. 导入库:
1from intelligence_db import IntelligenceDB
  1. 创建数据库实例:
1db = IntelligenceDB('/path/to/intelligence.db')
  1. 查询数据:
1result = db.query_item("192.168.1.1")
  1. 获取统计数据:
1stats = db.get_stats()

就这样!您已经可以使用 Intelligence Database 库了。

# 威胁情报

0

1

IP 威胁情报

查看更多

当前 IP

查看 IP 风险画像
地理信息
ISP
运营商
最后更新时间
-

长亭漏洞情报库

查看更多
VMware ESXi、Workstation、Fusion VMXNET3 整数溢出漏洞
VMware ESXi、Workstation、Fusion PVSCSI 堆溢出漏洞
VMware ESXi、Workstation、Fusion VMCI 整数下溢漏洞
VMware ESXi、Workstation、Fusion vSockets 信息泄露漏洞
契约锁-电子签章系统 pdfverifier 远程代码执行漏洞
泛微e-cology 前台SQL注入漏洞
Redis hyperloglog 远程代码执行漏洞
浪潮GSP企业管理软件 srbbdefineservice.asmx 远程代码执行漏洞
浪潮GSP企业管理软件 PayOrderSrv.asmx 远程代码执行漏洞
紫光电子档案管理系统 System/WorkFlow/download.html 任意文件读取漏洞
雷池 WAF 社区版
智能语义算法 · 开箱即用 · 高性能高可用性
应用文档
IP 威胁情报
IP 画像查询 · IP 库订阅 · 4 大应用场景
应用文档
网站安全监测
敏感词监控 · 篡改监控 · 恶意链接 · 挂马监控
应用文档
SSL 证书服务
快速颁发 · 证书监控 · 极高性价比 · DV-OV-EV
应用文档

使用AllinSSL自动续签雷池WAF的SSL证书

头像

风熙.

更新于 9 小时前

前言

什么是AllinSSL?

AllinSSL是开源免费的 SSL 证书自动化管理平台,可实现一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,支持跨云环境,告别繁琐配置和高昂费用。

安装AllinSSL

使用二进制安装命令 (推荐)

1curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl

备用安装命令

1curl -sSO https://cnb.cool/allinssl/install.sh/-/git/raw/main/install_allinssl.sh && 

使用Docker部署

使用Docker部署时,证书保存路径为AllinSSL所在Docker文件夹内。

直接复制以下命令安装,用户名:allinssl 密码:allinssldocker 安全入口:allinssl。可自行更改

docker run -itd \
  --name allinssl \
  -p 7979:8888 \
  -v /www/allinssl/data:/www/allinssl/data \
  -e ALLINSSL_USER=allinssl \
  -e ALLINSSL_PWD=allinssldocker \
  -e ALLINSSL_URL=allinssl \
  allinssl/allinssl:latest

或使用宝塔面板进行安装,在宝塔面板Docker页搜索AllinSSL,自行修改端口、用户名、密码、安全入口后安装即可。由于操作简单,为节约大家的流量和节省服务器资源,这里不再放图和过多赘述。

配置雷池

上传一张证书

在雷池WAF主界面——通用设置——防护配置——证书管理中的添加证书里上传一张证书

获取证书ID

2.png

在通用设置——控制台管理——雷池控制台证书中找到你刚才上传的证书ID

获取证书路径

进入雷池证书目录/data/safeline/resources/nginx/certs,找到你的证书

3.png

证书为cert_ + 你刚刚上传的证书ID .crt和.key

设置AllinSSL

配置DNS

在AllinSSL面板中,选择授权API管理,添加你的DNS提供商给你的公私钥,并点击确认

4.png

配置通知

如果你有通知需求的话,可以配置通知

在AllinSSL面板中,选择设置,选择告警通知,并点击确认

5.png

新建自动化部署工作流

在AllinSSL面板中,选择自动化部署,选择添加自动化部署,模板自由选择,并点击确认

6.png

设置申请证书流程

点击申请证书设置流程并配置

7.png

  • 域名:以逗号分隔,没有空格,如*.example.com,example.com
  • 证书CA:Let's Encrypt除外的CA机构需要添加CA授权
  • 邮件:可随意填写

我实测境外服务器如中国香港使用阿里云Key时,在本地预检查时无法连接上阿里云服务器,会导致预检查失败和证书申请失败,好几个证书申请软件都是这样。需要在高级设置中勾选跳过本地预检查

设置部署流程

点击部署流程,点击本地部署并点击下一步

8.png

由于我们在前面看到,需要在雷池中自动续期的证书的证书ID是2。因此:

  • 证书路径为:/data/safeline/resources/nginx/certs/cert_2.crt

  • 证书私钥为:/data/safeline/resources/nginx/certs/cert_2.key

雷池WAF会每一小时拉取一次,你也可以添加后置命令重启雷池容器,使雷池立即拉取

9.png

其他需要更改的地方

其他需要更改的地方有通知,其他无特别需要的地方。设置非常简单,这里不再过多赘述。

执行工作流

保存工作流后,点击执行开始申请一张证书

10.png

此时状态会变成正在执行

11.png

点击详情可以看到执行进度。我忘记配邮件通知了,所以最后的状态变成了失败,懒得重新弄了

12.png

此时雷池目录对应的证书也被更新

13.png

就这样,我们在雷池WAF实现了证书的自动续签

# 雷池 WAF
# SSL 证书
# 网站监测

1

1

雷池规则广场:Edgeone源站防护

头像

K

更新于 14 小时前

规则地址

规则库说明

Edgeone源站防护

# 雷池 WAF

0

1

雷池规则广场:EdgeOne源站防护回源IP网段

头像

K

更新于 14 小时前

规则地址

规则库说明

腾讯云EdgeOne源站防护回源IP网段

# 雷池 WAF

0

1

雷池规则广场:拦截TCPTest测速网站的节点IP库

头像

娜美呀

更新于 16 小时前

规则地址

规则库说明

180.163.116.19
119.45.28.95
121.43.99.19
121.5.206.127
120.199.84.111
45.249.209.105
222.186.61.9
223.244.27.153
124.248.67.208
118.190.75.149
27.38.200.5
101.126.35.220
121.229.164.59
211.95.35.139
220.160.33.233
117.143.167.109
36.32.220.113
43.136.169.50
42.51.0.166
112.23.184.199
39.146.177.174
223.167.230.91
43.139.22.128
123.129.230.143
180.119.30.180
36.110.168.105
36.137.178.101
220.231.146.36
49.85.11.7
116.30.102.109
220.167.103.229
115.126.50.174
36.133.123.59
112.17.51.178
112.20.12.136
36.137.78.238
111.170.7.223
36.137.22.223
36.139.102.211
36.133.100.157
58.20.74.199
113.200.41.121
171.213.138.51
110.190.171.238
183.221.81.154
36.134.223.132
36.138.238.155
222.211.73.42
119.36.65.214
175.152.117.12
183.232.3.137
101.19.15.52
36.134.66.210
222.213.143.201
110.152.202.29
220.248.169.247
58.253.167.253
112.18.129.86
112.43.37.148
180.130.97.111
124.235.65.249
36.137.145.214
36.139.215.106
43.240.220.150
43.153.63.106
38.181.52.66
61.111.251.177
45.251.240.236
54.252.227.15
34.254.89.71
165.154.13.180
117.153.224.85
211.154.22.169
152.32.159.158
114.98.72.195
156.224.18.24
124.88.81.15
14.215.41.148
36.213.70.71
154.201.92.60
165.154.129.214
113.233.123.106
195.133.52.188
128.14.236.90
109.248.24.56
152.32.200.97
43.165.184.234
43.131.13.32
15.223.121.120
154.205.154.99
165.154.221.142
13.246.227.170
165.154.51.14
110.42.102.155

# 雷池 WAF

0

1

雷池WAF穿透三层代理:Cloudflare+NPM+Docker网络防护配置

头像

Walter White

更新于 2 天前

前言

未知攻焉知防,不谙守何谈破
身为研习渗透的初学者,我意识到:防护思维实为攻击者的必修课,当转换视角为站长,核心问题浮现:如何用尽可能小的成本实现最大的网站防护效果

我进行了以下实验:通过 CDN、Nginx、雷池 WAF 和 Docker ,构建网站防护

实验目标

全部采用docker容器,搭建一个网站,流量流程: 用户-> www.xxxx.com -> cloudflare(cdn,避免ddos等攻击,同时隐藏源ip)-> npm(反向代理) -> 雷池(检测攻击行为,及时防御)-> 本地服务(docker内部应用,本地网站)
123

准备

服务器安装了以下软件:

  • 核心组件:Docker + Docker Compose
  • 安装指南:Docker & DockerCompose 极速安装指南

雷池waf:由长亭科技耗时十余年自研的一款 Web 应用防火墙,目前**Github排名第一 17.1k star **,什么实力无需多言,本次采用的是雷池waf的社区版

  • 官网链接: 雷池 WAF | 下一代 Web 应用防火墙 | 免费使用
  • 安装指南: 雷池 WAF 帮助文档 - 免费安装(推荐)
  • 管理面板:https://ip:9443

nginx-proxy-manage(NPM):是一款开源的 Web 可视化工具,通过简单界面集中管理 Nginx 反向代理规则与 SSL 证书,实现「零配置部署 HTTPS + 多服务路由」的一站式解决方案。

  • 官网链接:Nginx Proxy Manager
  • 安装指南:【玩转docker】反向代理神器:Nginx Proxy Manager - 知乎
  • 管理面板:http://ip:81

配置以下内容:

  • cloudflare DNS域名解析(www):Cloudflare域名解析
  • cloudflare API Token获取(用于ssl证书):轻松获取 Cloudflare API Token

开始实验

1. 搭建测试网站

  1. 我选择了使用docker环境的nginx容器搭建
1安装nginx docker 容器:docker pull nginx
  1. 在部署 Nginx Docker 容器之前,需要先在宿主机创建配置文件和相关目录(如配置、静态资源、日志目录),以便在容器启动时通过挂载方式将其引入容器内部,实现灵活控制与持久化。
1mkdir -p ~/nginx/{conf,html,logs}
2cd ~/nginx
  1. 编辑nginx.conf配置文件
1vim ~/nginx/conf/nginx.conf
1user  nginx;
2worker_processes  auto;
3
4error_log  /var/log/nginx/error.log warn;
5pid        /var/run/nginx.pid;
6
7events {
8    worker_connections  1024;
9}
10
11http {
12    include       /etc/nginx/mime.types; 
13    default_type  application/octet-stream;
14    
15    # 关闭服务器版本信息
16    server_tokens off;
17    
18    # 简化日志格式
19    log_format main '$remote_addr - $request';
20    access_log  /var/log/nginx/access.log  main;
21    
22    sendfile        on;
23    keepalive_timeout  65;
24    
25    # 核心:单虚拟主机配置
26    server {
27        listen 12080;        #!注意,这里的端口将作为雷池上游监听端口,不要填写80!! 
28        server_name _;
29        
30        # 网站根目录
31        root   /usr/share/nginx/html;
32        index  index.html;
33        
34        location / {
35            try_files $uri $uri/ =404;
36        }
37    }
38}
  • 将上面的内容根据需要编辑后保存
  1. 将网页或者源码上传到~/nginx/html/
  2. 启动docker容器
1cd ~/nginx
2docker run -d --name my-nginx #容器名称,可以自定义 \
3  -p 12080:12080 \  # 填写上文中你编辑的端口,如果你是13797。就是 -p 13797:13797
4  -v $(pwd)/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
5  -v $(pwd)/html:/usr/share/nginx/html \
6  -v $(pwd)/logs:/var/log/nginx \
7  nginx:alpine

至此,网页配置完成,可以访问http://ip:端口 (你编辑的),如果能访问成功,则代表配置完成

2.npm配置

ssl证书申请

  1. 申请免费ssl证书
    1.2.jpg
  • Domain Names:填写 *.example.com
  • 勾选Use a DNS Chellenge
  • DNS Provider选择Cloudflare
  • Credentials File Content 填写你的cloudflare api token
  • 最后勾选 I Agree to the Let's Encrypt Terms of Service
    1.3.jpg
  • 点击:save,过一会儿新的泛解析ssl证书就申请成功了

配置反向代理

  1. 点击:Dashboard -> Proxy Hosts ->Add Proxy Host
    2.1.jpg
  • Domain Names : 填写解析的域名(Cloudflare配置)
  • Scheme : 选择http

注意!此处的http,https不代表通过域名访问时的配置,因此选择http即可

  • Forward Hostname / IP : 172.17.0.1

注意!Docker服务默认会创建一个 docker0 网桥进行通信,需要获取该网桥的ip段,否则不能通信,使用命令:ip addr show docker0 查看ip并获取ip填写,大部分情况下为:172.17.0.1

  • Forward Port:填写为随机占用端口,类似:10080

注意!原本的配置应该是nginx反向代理 ->服务 ,现在是 nginx反向代理->雷池->服务 ,因此可以将nginx转发设置为一个不占用的随机端口,雷池选择这个服务的子域名,同时监听这个不占用的端口,上游端口填写上文配置的应用端口 就可以实现nginx反向代理后的雷池检测了

2.2.jpg

  • 我的配置如图
    2.3.jpg
  1. 点击:SSL -> SSL Certificate ->选择刚刚申请的证书 -> 勾选Force SSL -> save
    2.4.jpg

3.雷池配置

  1. 点击:防护应用->添加应用
    • 域名:填写DNS解析域名(例如:www.example.com)
    • 端口:填写npm配置时的Forward Port端口(SSL不要勾选)
    • 证书:不用管
    • 选择代理到已有应用
    • 上游服务器:http://127.0.0.1:端口 (docker配置时的端口,我配置为12080,若更改端口则填写所更改端口)
    • 应用名称:随意
      3.1.jpg
  2. 下图为我的配置,点击提交
    3.2.jpg
  3. 获取攻击者的ip地址
    • 点击:防护应用 -> 高级配置 -> 源ip获取方式 -> 选择取X-Forward-For中上上一级代理地址

由于前面有cloudflare的cdn,nginx的反向代理,因此上上一级代理地址为攻击者ip

5.5.jpg

4.iptables配置

至此已完成四分之三防护,但暴露的端口仍是致命漏洞:当黑客无法从域名突破时,会扫描开放端口直尝试攻击。如何封杀这条攻击路径?——iptables登场

此时,我的域名和端口都是可以直接访问的
域名:
4.1.jpg
ip+端口:
4.2.jpg

网站源代码出处 :https://github.com/imbyter/homepage

iptables端口限制主要分为两类:

  1. 针对docker的端口限制
    • 通过FORWARD链
    • 通过DOCKER-USER链
  2. 针对本地搭建的端口限制
    • 通过INPUT链

iptables 的规则匹配逻辑:

  • 匹配顺序:iptables 规则是自上而下逐条匹配的。

    • 优先写入允许规则:确保合法流量先被匹配。
    • 最后添加阻止规则:默认拒绝未匹配的流量。
  • 使用数字控制链条顺序,确保规则按预期顺序应用

  • FORWARD链限制(docker)

1允许内部访问12080端口:
2iptables -I FORWARD 1 -s 127.0.0.1 -p tcp --dport 12080 -j ACCEPT
3
4允许docker网络访问12080端口:
5iptables -I FORWARD 2 -s 172.17.0.0/16 -p tcp --dport 12080 -j ACCEPT
6
7禁止其他任何网络连接12080端口:
8iptables -A FORWARD 3 -p tcp --dport 12080 -j DROP
  • DOCKER-USER链限制(docker)
1允许内部访问12080端口:
2iptables -I DOCKER-USER 1 -s 127.0.0.1 -p tcp --dport 12080 -j ACCEPT
3
4允许docker网络访问12080端口:
5iptables -I DOCKER-USER 2 -s 172.17.0.0/16 -p tcp --dport 12080 -j ACCEPT
6
7禁止其他任何网络连接12080端口:
8iptables -A DOCKER-USER 3 -p tcp --dport 12080 -j DROP
  • INPUT链条限制
1允许内部访问12080端口:
2iptables -I INPUT 1 -s 127.0.0.1 -p tcp --dport 12080 -j ACCEPT
3
4允许docker网络访问12080端口:
5iptables -I INPUT 2 -s 172.17.0.0/16 -p tcp --dport 12080 -j ACCEPT
6
7禁止其他任何网络连接12080端口:
8iptables -A INPUT 3 -p tcp --dport 12080 -j DROP

测试配置

Cloudflare CDN 效果如下(受节点影响):

  • 站长之家ping 测试 https://ping.chinaz.com/
    5.1.jpg
  • ping.pe 测试 https://ping.pe/
    5.2.jpg

npm测试(iptables+反向代理)

  • 正常访问域名没有问题
    4.3.jpg
  • ip+端口访问(被ban)
    4.4.jpg

雷池测试(防护生效检测):

  • 正常访问
    5.3.jpg
  • 攻击测试(禁止访问)
    5.4.jpg

防护配置生效! 大功告成!

# 雷池技术博客投稿
# 雷池 WAF
技术资料

1

3

百川威胁情报数据库使用指南

头像

没用的阿吉

更新于 2 天前

百川威胁情报数据库使用指南

安装和使用百川威胁情报数据库的简单指南

安装


从 TestPyPI 安装库(官方 PyPI 版本即将发布):

1pip3 install --index-url https://test.pypi.org/simple/ intelligence-db

快速开始


以下是基于演示代码的简单示例:

1from intelligence_db import IntelligenceDB
2
3def main():
4    # Database file path
5    db_file = '/path/to/your/intelligence.db'
6    
7    # Load database
8    db = IntelligenceDB(db_file)
9    
10    # Display statistics
11    stats = db.get_stats()
12    print(f"Statistics: {stats}")
13    
14    # Query test
15    result = db.query_item("13.196.249.206")
16    if result:
17        print(result)
18
19if __name__ == '__main__':
20    main()

要求


  • Python >= 3.7
  • cryptography >= 3.0.0
    加密库将作为依赖项自动安装。

基本用法


  1. 导入库:
1from intelligence_db import IntelligenceDB
  1. 创建数据库实例:
1db = IntelligenceDB('/path/to/intelligence.db')
  1. 查询数据:
1result = db.query_item("192.168.1.1")
  1. 获取统计数据:
1stats = db.get_stats()

就这样!您已经可以使用 Intelligence Database 库了。

# 威胁情报

0

1

查看更多