前言
homelab环境搭建差不多后,部署了不少的服务,这些服务都有相应的后台管理页面,安全考虑,不应该暴露到外网
但是,有时特殊需求,又需要随时随地通过公网,一个浏览器的环境下就可以登录内网系统管理,不过这样的前提是安全问题能解决。
SSL VPN 的方案当然不错,例如anyconnect,wireguard等等,但是 通常 需要客户端安装软件,不够通用, 堡垒机的方案或许不错。
- 基于web的整体解决方案,跨平台
- 集中控制的架构,记录登录记录,操作记录,带录像
- 多协议的支持,RDP、SSH、VNC和Telnet等等
- 自身的登录认证支持 MFA,LADP集成
核心功能组件 是对多协议的支持,这样才能all in web,而实现这样的功能,都是集成了一个开源的项目:Apache Guacamole
该组件工作原理参考我之前的文章:
核心安全组件就是MFA,多因子认证,这样才能保证暴露到公网的服务的登录安全;
当然如果出现安全问题,还有审计录像和其他记录。
对比
类似的开源堡垒机有 Teleport,Jumpserver,Next Terminal等等。
- Teleport 安全性最好,较轻量,但是对被管理资产不透明,纳管前需要双向认证,在资产设备上需额外操作,大公司,安全性要求高的适合,有商业版本
- Jumpserver 笨重,对被管理资产透明,其他 该有的都有,有商业版本
- Next Terminal 轻量,简单,对被管理资产透明,适合个人
部署
我使用的是Next Terminal,适合我的homelab环境,功能上感觉不错,基本满足了我对堡垒机的所有要求
项目GitHub地址:https://github.com/dushixiang/next-terminal
docker-compose部署:
version: '3.3'
services:
guacd:
image: dushixiang/guacd:latest
volumes:
- ./data:/usr/local/next-terminal/data
restart:
always
next-terminal:
image: dushixiang/next-terminal:latest
environment:
DB: sqlite
GUACD_HOSTNAME: guacd
GUACD_PORT: 4822
ports:
- "8088:8088"
volumes:
- /etc/localtime:/etc/localtime
- ./data:/usr/local/next-terminal/data
restart:
always
默认用户名 密码 admin/admin,登录进去以后切记切记开启MFA
如果不开启MFA,一旦密码被暴力破解,不仅内网被暴露到公网,你的资产更是直接暴露,直接登录
剩下的就是把Next Terminal的登录页透传出去了,认证之后就可以无缝管理内网资源,添加一个Windows系统作为跳板机就更方便了
以上。