部署Next Terminal 开源交互审计系统

关于Next Terminal

  • 免费开源
  • 多协议支持
    • 您可以在一套系统中访问RDP、SSH、VNC、TELNET等协议资产,无需插件,一个浏览器即可。
  • 实时监控
    • 您可以随时查看到目前正在活跃的会话,并进行监控和阻断。针对字符协议,您甚至可以限制禁止某些命令的执行和记录。
  • 事后审计
    • Next Terminal 观察并记录所有环境中的每个在线资源、连接、交互会话和其他安全事件。这些事件被记录在结构化的审计日志中,便于查看正在发生的事情和责任人。

docker 安装

  • 国内用户可以使用阿里云镜像仓库
    • guacd:registry.cn-beijing.aliyuncs.com/dushixiang/guacd 
    • next-terminal:registry.cn-beijing.aliyuncs.com/dushixiang/next-terminal 
  • 在任意位置创建文件夹 next-terminal ,然后在此文件夹下创建 docker-compose.yml
  • 启动命令
    • 前台启动命令:docker-compose up 
    • 后台启动命令:docker-compose up -d 
  • 首次使用默认账户密码 admin/admin 登录系统。

使用 sqlite 存储数据

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

使用 mysql 存储数据

version: '3.3'
services:
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: next-terminal
      MYSQL_USER: next-terminal
      MYSQL_PASSWORD: next-terminal
      MYSQL_ROOT_PASSWORD: next-terminal
    volumes:
      - ./data/mysql:/var/lib/mysql
    restart:
          always
  guacd:
    image: dushixiang/guacd:latest
    volumes:
      - ./data:/usr/local/next-terminal/data
    restart:
          always
  next-terminal:
    image: dushixiang/next-terminal:latest
    environment:
      DB: mysql
      MYSQL_HOSTNAME: mysql
      MYSQL_PORT: 3306
      MYSQL_USERNAME: next-terminal
      MYSQL_PASSWORD: next-terminal
      MYSQL_DATABASE: next-terminal
      GUACD_HOSTNAME: guacd
      GUACD_PORT: 4822
    ports:
      - "8088:8088"
    volumes:
      - /etc/localtime:/etc/localtime
      - ./data:/usr/local/next-terminal/data
    depends_on:
      - mysql
    restart:
      always

使用外部的 mysql 存储数据

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: mysql
      # 请修改下面的 MySql 配置,需自行创建数据库和用户
      MYSQL_HOSTNAME: mysql
      MYSQL_PORT: 3306
      MYSQL_USERNAME: next-terminal
      MYSQL_PASSWORD: next-terminal
      MYSQL_DATABASE: next-terminal
      # 请修改上面的 MySql 配置,需自行创建数据库和用户
      GUACD_HOSTNAME: guacd
      GUACD_PORT: 4822
    ports:
      - "8088:8088"
    volumes:
      - /etc/localtime:/etc/localtime
      - ./data:/usr/local/next-terminal/data
    restart:
      always

使用docker命令安装

# 安装 guacd
docker run --restart=always --name guacd -d \
  -v /root/next-terminal/data:/usr/local/next-terminal/data \
  dushixiang/guacd:latest
# 安装 next-terminal
docker run --restart=always --name next-terminal -d \
  --link guacd \
  -p 8088:8088 \
  -v /root/next-terminal/data:/usr/local/next-terminal/data \
  -v /etc/localtime:/etc/localtime \
  -e DB=sqlite \
  -e GUACD_HOSTNAME=guacd \
  -e GUACD_PORT=4822 \
  dushixiang/next-terminal:latest \

环境变量

参数 含义 默认值
DB 数据库类型,可选 ['sqlite','mysql'] sqlite
SQLITE_FILE sqlite 数据库文件存放地址 /usr/local/next-terminal/data/sqlite/next-terminal.db
MYSQL_HOSTNAME mysql 数据库地址 127.0.0.1
MYSQL_PORT mysql 数据库端口 3306
MYSQL_USERNAME mysql 数据库用户 next-terminal
MYSQL_PASSWORD mysql 数据库密码 next-terminal
MYSQL_DATABASE mysql 数据库名称 next-terminal
SERVER_ADDR 服务器监听地址 0.0.0.0:8088
ENCRYPTION_KEY 授权凭证和资产的密码,密钥等敏感信息加密的key next-terminal
GUACD_HOSTNAME Guacd 服务地址 127.0.0.1
GUACD_PORT Guacd 服务监听端口 4822
GUACD_RECORDING 录屏文件保存目录 /usr/local/next-terminal/data/recording
GUACD_DRIVE 远程桌面挂载盘根目录 /usr/local/next-terminal/data/drive
SSHD_ENABLE 是否开启sshd服务 false
SSHD_ADDR sshd服务监听的地址 0.0.0.0:8089
SSHD_KEY sshd服务使用私钥路径 ~/.ssh/id_rsa

密码忘记

首先需要进入程序所在目录,使用docker安装的程序目录为:/usr/local/next-terminal

执行命令./next-terminal --reset-password admin

其中 admin 为用户登录账号,成功之后会输出

_______                   __    ___________                  .__              .__   
 \      \   ____ ___  ____/  |_  \__    ___/__________  _____ |__| ____ _____  |  |  
 /   |   \_/ __ \\  \/  /\   __\   |    |_/ __ \_  __ \/     \|  |/    \\__  \ |  |  
/    |    \  ___/ >    <  |  |     |    |\  ___/|  | \/  Y Y  \  |   |  \/ __ \|  |__
\____|__  /\___  >__/\_ \ |__|     |____| \___  >__|  |__|_|  /__|___|  (____  /____/
        \/     \/      \/                     \/            \/        \/     \/      v0.3.0

当前数据库模式为:mysql
Mar  5 20:00:16.923 [DEBU] 用户「admin」密码初始化为: next-terminal

TOTP客户端丢了

首先需要进入程序所在目录,使用docker安装的程序目录为:/usr/local/next-terminal

执行命令./next-terminal --reset-totp admin

其中 admin 为用户登录账号,成功之后会输出

_______                   __    ___________                  .__              .__   
 \      \   ____ ___  ____/  |_  \__    ___/__________  _____ |__| ____ _____  |  |  
 /   |   \_/ __ \\  \/  /\   __\   |    |_/ __ \_  __ \/     \|  |/    \\__  \ |  |  
/    |    \  ___/ >    <  |  |     |    |\  ___/|  | \/  Y Y  \  |   |  \/ __ \|  |__
\____|__  /\___  >__/\_ \ |__|     |____| \___  >__|  |__|_|  /__|___|  (____  /____/
        \/     \/      \/                     \/            \/        \/     \/      v0.4.0

当前数据库模式为:mysql
Mar  5 20:00:16.923 [DEBU] 用户「admin」已重置TOTP

补充20250909

如果按照官方手册部署,是没有问题。下面记录的是我想在自己笔记本上面部署,而且我笔记本的docker容器已经装过了mysql容器,所以想偷个懒。以下主要记录一些docker语句

# 1、确认 MySQL 容器是否真的以 mysql_8_4_0 这个名称运行:
docker ps --format "{{.Names}}"

# 2、如果不知道 MySQL 容器的 IP 地址,可以通过以下命令查询:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql_8_4_0
# 3、将查询到的 IP 地址填入配置文件的hostname字段即可。
# 查看 mysql_8_4_0 容器的网络模式
docker inspect -f '{{.HostConfig.NetworkMode}}' mysql_8_4_0

# 将 mysql_8_4_0 容器连接到默认 bridge 网络
docker network connect bridge mysql_8_4_0

# 获取 mysql_8_4_0 的 IP 地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql_8_4_0

# 停止当前服务
docker-compose down

# 启动所有服务
docker-compose up -d

# 检查所有容器是否启动成功(确保 3 个容器都为 Up 状态)
docker ps | grep -E "guacd|next-terminal|mysql_8_4_0"

 

# guacd 容器内的 Debian 系统镜像使用的 buster 版本(Debian 10)已经停止支持,官方仓库地址已失效,导致 apt update 失败。

# Debian 旧版本的仓库已迁移至归档服务器,可手动修改 sources.list 更换仓库源

# 1、进入 guacd 容器:
docker exec -it guacd bash

# 2、备份并修改源列表:
# 备份原有源
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 写入归档仓库(buster 版本)
echo "deb http://archive.debian.org/debian buster main contrib non-free" > /etc/apt/sources.list
echo "deb http://archive.debian.org/debian-security buster/updates main contrib non-free" >> /etc/apt/sources.list

# 3、允许访问未签名的归档仓库(旧版本仓库可能无签名)
echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/10-allow-archive

# 4、重新更新并安装 ping
apt update && apt install -y iputils-ping

# 当然,如果只是为了测试容器间网络连通性,可直接使用 nc(多数容器预装),无需安装 ping
# 测试与 MySQL 容器的网络连通(替换为实际 MySQL 容器名)
nc -zv mysql_8_4_0 3306

 

THE END
分享
二维码
打赏
海报
部署Next Terminal 开源交互审计系统
关于Next Terminal 免费开源 官方网站:https://next-terminal.typesafe.cn/ 价格参考:https://license.typesafe.cn/pricing 开源版足够满足日常 https:……
<<上一篇
下一篇>>
文章目录
关闭
目 录