轻量级堡垒机系统Next Terminal

这个软件推荐的网友很多,包括 王立浩司徒不长到一百四誓不改名 等,以上排名是不分先后的

什么是 Next Terminal ?

Next Terminal 是一个简单好用安全的开源交互审计系统,支持 RDPSSHVNCTelnetKubernetes 协议。 Next Terminal 基于 Apache Guacamole 开发,使用到了 guacd 服务。采用了 GolangReact 开发,具有小巧、易安装、易使用、资源占用小的特点。

目前支持的功能有:

  • 授权凭证管理
  • 资产管理(支持 RDPSSHVNCTELNET 协议)
  • 指令管理
  • 批量执行命令
  • 在线会话管理(监控、强制断开)
  • 离线会话管理(查看录屏)
  • 双因素认证
  • 资产标签
  • 资产授权
  • 多用户&用户分组
  • 计划任务
  • ssh server
  • 登录策略
  • 系统监控

关于 Apache Guacamole,老苏几年前介绍过

文章传送门:部署Guacamole远程桌面网关服务

安装

在群晖上以 Docker 方式安装。

  • 镜像 dushixiang/next-terminallatest 对应版本为 v1.3.9
  • 镜像 dushixiang/guacdlatest 对应版本为 1.4.0

Next Terminal 支持多种数据库存储方式,本文介绍了 SQLiteMySQL 两种

SQLite 版

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: '3.3'

services:
guacd:
image: dushixiang/guacd:latest
container_name: guacd-app
restart: unless-stopped
#ports:
# - "4822:4822"
environment:
GUACD_LOG_LEVEL: debug

next-terminal:
image: dushixiang/next-terminal:latest
container_name: guacd-web
restart: unless-stopped
ports:
- "4823:8088"
volumes:
- /etc/localtime:/etc/localtime
- ./data:/usr/local/next-terminal/data
environment:
DB: sqlite
GUACD_HOSTNAME: guacd
GUACD_PORT: 4822
depends_on:
- guacd

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 next-terminal 和 子目录
mkdir -p /volume1/docker/next-terminal/data

# 进入 next-terminal 目录
cd /volume1/docker/next-terminal

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

MySQL 版

老苏用了群晖自带的 MariaDB 10 数据库。

phpMyAdmin 中创建名为 next_terminal 的空数据库。

为便于说明,假设数据库密码为 123456

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307
  • 数据库用户:next_terminal
  • 数据库密码:123456
  • 数据库库名:next_terminal,因为勾选了与用户同名;

MySQL 版本的 docker-compose.yml 文件稍有不同,主要是环境变量会多几个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '3.3'

services:
guacd:
image: dushixiang/guacd:latest
container_name: guacd-app
restart: unless-stopped
#ports:
# - "4822:4822"
volumes:
- ./data:/usr/local/next-terminal/data
environment:
GUACD_LOG_LEVEL: debug

next-terminal:
image: dushixiang/next-terminal:latest
container_name: guacd-web
restart: unless-stopped
ports:
- "4823:8088"
volumes:
- /etc/localtime:/etc/localtime
- ./data:/usr/local/next-terminal/data
environment:
DB: mysql
MYSQL_HOSTNAME: 192.168.0.197
MYSQL_PORT: 3307
MYSQL_USERNAME: next_terminal
MYSQL_PASSWORD: 123456
MYSQL_DATABASE: next_terminal
GUACD_HOSTNAME: guacd
GUACD_PORT: 4822
depends_on:
- guacd

容器 guacd-web 的主要环境变量

可变
DB 数据库类型,可以是 sqlite 或者 mysql
MYSQL_HOSTNAME 数据库主机地址
MYSQL_PORT 数据库主机端口
MYSQL_USERNAME 数据库用户
MYSQL_PASSWORD 数据库用户对应的密码
MYSQL_DATABASE 数据库库名
GUACD_HOSTNAME guacd 服务主机地址
GUACD_PORT guacd 服务主机端口

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 next-terminal 和 子目录
mkdir -p /volume1/docker/next-terminal/data

# 进入 next-terminal 目录
cd /volume1/docker/next-terminal

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:4823 就能看到登录界面

默认账户、密码:admin/admin

登录成功后的主界面

新建资产

接入

如果设置无误的话,很快会连上服务器

更多功能,请参考官方使用文档:https://next-terminal.typesafe.cn/docs/usage/readme.html

参考文档

dushixiang/next-terminal: Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理。
地址:https://github.com/dushixiang/next-terminal

next-terminal: Next Terminal是一个轻量级堡垒机系统,易安装,易使用,支持RDP、SSH、VNC、Telnet、Kubernetes协议。
地址:https://gitee.com/dushixiang/next-terminal

Next Terminal|开源交互审计系统
地址:https://next-terminal.typesafe.cn/

Next Terminal | Next Terminal
地址:https://next-terminal.typesafe.cn/docs/