使用AllinSSL自动续签雷池WAF的SSL证书
风熙.
更新于 9 小时前
AllinSSL是开源免费的 SSL 证书自动化管理平台,可实现一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,支持跨云环境,告别繁琐配置和高昂费用。
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部署时,证书保存路径为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
进入雷池证书目录/data/safeline/resources/nginx/certs
,找到你的证书
证书为cert_ + 你刚刚上传的证书ID
.crt和.key
在AllinSSL面板中,选择授权API管理
,添加你的DNS提供商给你的公私钥,并点击确认
如果你有通知需求的话,可以配置通知
在AllinSSL面板中,选择设置
,选择告警通知
,并点击确认
在AllinSSL面板中,选择自动化部署
,选择添加自动化部署
,模板自由选择,并点击确认
点击申请证书
设置流程并配置
*.example.com,example.com
Let's Encrypt
除外的CA机构需要添加CA授权我实测境外服务器如中国香港使用阿里云Key时,在
本地预检查
时无法连接上阿里云服务器,会导致预检查失败和证书申请失败,好几个证书申请软件都是这样。需要在高级设置
中勾选跳过本地预检查
点击部署
流程,点击本地部署
并点击下一步
由于我们在前面看到,需要在雷池中自动续期的证书的证书ID
是2
。因此:
证书路径为:/data/safeline/resources/nginx/certs/cert_2.crt
证书私钥为:/data/safeline/resources/nginx/certs/cert_2.key
雷池WAF会每一小时拉取一次,你也可以添加后置命令重启雷池容器,使雷池立即拉取
其他需要更改的地方有通知,其他无特别需要的地方。设置非常简单,这里不再过多赘述。
保存工作流后,点击执行开始申请一张证书
此时状态会变成正在执行
点击详情可以看到执行进度。我忘记配邮件通知了,所以最后的状态变成了失败,懒得重新弄了
此时雷池目录对应的证书也被更新
就这样,我们在雷池WAF实现了证书的自动续签
1
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
0
1
雷池WAF穿透三层代理:Cloudflare+NPM+Docker网络防护配置
Walter White
更新于 2 天前
未知攻焉知防,不谙守何谈破
身为研习渗透的初学者,我意识到:防护思维实为攻击者的必修课,当转换视角为站长,核心问题浮现:如何用尽可能小的成本实现最大的网站防护效果
我进行了以下实验:通过 CDN、Nginx、雷池 WAF 和 Docker ,构建网站防护
全部采用docker容器,搭建一个网站,流量流程: 用户-> www.xxxx.com -> cloudflare(cdn,避免ddos等攻击,同时隐藏源ip)-> npm(反向代理) -> 雷池(检测攻击行为,及时防御)-> 本地服务(docker内部应用,本地网站)
服务器安装了以下软件:
雷池waf:由长亭科技耗时十余年自研的一款 Web 应用防火墙,目前**Github排名第一 17.1k star **,什么实力无需多言,本次采用的是雷池waf的社区版
nginx-proxy-manage(NPM):是一款开源的 Web 可视化工具,通过简单界面集中管理 Nginx 反向代理规则与 SSL 证书,实现「零配置部署 HTTPS + 多服务路由」的一站式解决方案。
配置以下内容:
1安装nginx docker 容器:docker pull nginx
1mkdir -p ~/nginx/{conf,html,logs} 2cd ~/nginx
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}
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:端口 (你编辑的),如果能访问成功,则代表配置完成
注意!此处的http,https不代表通过域名访问时的配置,因此选择http即可
注意!Docker服务默认会创建一个 docker0 网桥进行通信,需要获取该网桥的ip段,否则不能通信,使用命令:ip addr show docker0 查看ip并获取ip填写,大部分情况下为:172.17.0.1
注意!原本的配置应该是nginx反向代理 ->服务 ,现在是 nginx反向代理->雷池->服务 ,因此可以将nginx转发设置为一个不占用的随机端口,雷池选择这个服务的子域名,同时监听这个不占用的端口,上游端口填写上文配置的应用端口 就可以实现nginx反向代理后的雷池检测了
由于前面有cloudflare的cdn,nginx的反向代理,因此上上一级代理地址为攻击者ip
至此已完成四分之三防护,但暴露的端口仍是致命漏洞:当黑客无法从域名突破时,会扫描开放端口直尝试攻击。如何封杀这条攻击路径?——iptables登场
此时,我的域名和端口都是可以直接访问的
域名:
ip+端口:
网站源代码出处 :https://github.com/imbyter/homepage
iptables端口限制主要分为两类:
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
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
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 效果如下(受节点影响):
npm测试(iptables+反向代理)
雷池测试(防护生效检测):
防护配置生效! 大功告成!
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()
1from intelligence_db import IntelligenceDB
1db = IntelligenceDB('/path/to/intelligence.db')
1result = db.query_item("192.168.1.1")
1stats = db.get_stats()
就这样!您已经可以使用 Intelligence Database 库了。
0
1
当前 IP
使用AllinSSL自动续签雷池WAF的SSL证书
风熙.
更新于 9 小时前
AllinSSL是开源免费的 SSL 证书自动化管理平台,可实现一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,支持跨云环境,告别繁琐配置和高昂费用。
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部署时,证书保存路径为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
进入雷池证书目录/data/safeline/resources/nginx/certs
,找到你的证书
证书为cert_ + 你刚刚上传的证书ID
.crt和.key
在AllinSSL面板中,选择授权API管理
,添加你的DNS提供商给你的公私钥,并点击确认
如果你有通知需求的话,可以配置通知
在AllinSSL面板中,选择设置
,选择告警通知
,并点击确认
在AllinSSL面板中,选择自动化部署
,选择添加自动化部署
,模板自由选择,并点击确认
点击申请证书
设置流程并配置
*.example.com,example.com
Let's Encrypt
除外的CA机构需要添加CA授权我实测境外服务器如中国香港使用阿里云Key时,在
本地预检查
时无法连接上阿里云服务器,会导致预检查失败和证书申请失败,好几个证书申请软件都是这样。需要在高级设置
中勾选跳过本地预检查
点击部署
流程,点击本地部署
并点击下一步
由于我们在前面看到,需要在雷池中自动续期的证书的证书ID
是2
。因此:
证书路径为:/data/safeline/resources/nginx/certs/cert_2.crt
证书私钥为:/data/safeline/resources/nginx/certs/cert_2.key
雷池WAF会每一小时拉取一次,你也可以添加后置命令重启雷池容器,使雷池立即拉取
其他需要更改的地方有通知,其他无特别需要的地方。设置非常简单,这里不再过多赘述。
保存工作流后,点击执行开始申请一张证书
此时状态会变成正在执行
点击详情可以看到执行进度。我忘记配邮件通知了,所以最后的状态变成了失败,懒得重新弄了
此时雷池目录对应的证书也被更新
就这样,我们在雷池WAF实现了证书的自动续签
1
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
0
1
雷池WAF穿透三层代理:Cloudflare+NPM+Docker网络防护配置
Walter White
更新于 2 天前
未知攻焉知防,不谙守何谈破
身为研习渗透的初学者,我意识到:防护思维实为攻击者的必修课,当转换视角为站长,核心问题浮现:如何用尽可能小的成本实现最大的网站防护效果
我进行了以下实验:通过 CDN、Nginx、雷池 WAF 和 Docker ,构建网站防护
全部采用docker容器,搭建一个网站,流量流程: 用户-> www.xxxx.com -> cloudflare(cdn,避免ddos等攻击,同时隐藏源ip)-> npm(反向代理) -> 雷池(检测攻击行为,及时防御)-> 本地服务(docker内部应用,本地网站)
服务器安装了以下软件:
雷池waf:由长亭科技耗时十余年自研的一款 Web 应用防火墙,目前**Github排名第一 17.1k star **,什么实力无需多言,本次采用的是雷池waf的社区版
nginx-proxy-manage(NPM):是一款开源的 Web 可视化工具,通过简单界面集中管理 Nginx 反向代理规则与 SSL 证书,实现「零配置部署 HTTPS + 多服务路由」的一站式解决方案。
配置以下内容:
1安装nginx docker 容器:docker pull nginx
1mkdir -p ~/nginx/{conf,html,logs} 2cd ~/nginx
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}
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:端口 (你编辑的),如果能访问成功,则代表配置完成
注意!此处的http,https不代表通过域名访问时的配置,因此选择http即可
注意!Docker服务默认会创建一个 docker0 网桥进行通信,需要获取该网桥的ip段,否则不能通信,使用命令:ip addr show docker0 查看ip并获取ip填写,大部分情况下为:172.17.0.1
注意!原本的配置应该是nginx反向代理 ->服务 ,现在是 nginx反向代理->雷池->服务 ,因此可以将nginx转发设置为一个不占用的随机端口,雷池选择这个服务的子域名,同时监听这个不占用的端口,上游端口填写上文配置的应用端口 就可以实现nginx反向代理后的雷池检测了
由于前面有cloudflare的cdn,nginx的反向代理,因此上上一级代理地址为攻击者ip
至此已完成四分之三防护,但暴露的端口仍是致命漏洞:当黑客无法从域名突破时,会扫描开放端口直尝试攻击。如何封杀这条攻击路径?——iptables登场
此时,我的域名和端口都是可以直接访问的
域名:
ip+端口:
网站源代码出处 :https://github.com/imbyter/homepage
iptables端口限制主要分为两类:
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
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
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 效果如下(受节点影响):
npm测试(iptables+反向代理)
雷池测试(防护生效检测):
防护配置生效! 大功告成!
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()
1from intelligence_db import IntelligenceDB
1db = IntelligenceDB('/path/to/intelligence.db')
1result = db.query_item("192.168.1.1")
1stats = db.get_stats()
就这样!您已经可以使用 Intelligence Database 库了。
0
1