前言

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系统作为跳板机就更方便了

以上。

最后修改:2022 年 08 月 16 日
如果觉得我的文章对你有用,请随意赞赏