因为我的环境是 Homelab,之前一直是通过 DDNS 和 NPM,再结合 Cloudflare,来实现用“域名 + 端口”访问家里的软路由。这个方案用起来确实方便,但有一个很致命的问题:有些应用本身没有 MFA,而我又把软路由上搭建的应用直接暴露到了互联网,这就带来了非常大的安全隐患。
后来,经过本人的不断折腾以及 AI 的协助,我终于在 NPM 中接入了 SamWaf,并借助 SamWaf 的网站保护和统一访问认证,实现了对家里应用的保护以及 MFA。于是便整理成了这份文档,希望能给有类似需求的朋友一些参考。
教程如下:
一、安装SamWaf
以下是docker-compose.yaml
services:
samwaf:
container_name: samwaf
image: samwaf/samwaf:v1.3.24
restart: always
network_mode: host
cap_add:
- NET_ADMIN
volumes:
- ./conf:/app/conf
- ./data:/app/data
- ./logs:/app/logs
- /var/log:/host/var/log:ro
二、修改NPM 443的访问端口
我有三台服务器安装了 NPM,它们之前的 443 端口分别映射为 4333、4433 和 4443。因为现在要接入 SamWaf,但访问端口保持不变,所以需要把 NPM 的映射端口改为 9443、9433 和 7433。
接着,在 Tplink 的虚拟服务器中,把之前指向 NPM 的地址改为指向 SamWaf。比如,之前 Tplink 是把 NPM 地址的 4433 端口映射出去到 4433,现在这个地址就要改为 SamWaf 的地址。
三、在SamWaf设置网站防护
如下图,对应关系

四、设置MFA
如下图:

技术杂货铺博客
搜索
Homelab安全加固:用SamWaf为NPM反代应用统一加上二次验证
本文著作权归作者 [ timsom ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。