My previous post  introduced two bastion host. In this post, I am going to introduce another one, Next Terminal, which it calls itself as a next generation bastion host, and a simple, easy-to-use and secure open source interactive audit system that supports RDP, SSH, VNC, Telnet, and Kubernetes protocols. Next Terminal replaces traditional accounts with real identities, providing a phishing-proof, zero-trust access solution for every engineer connected to the infrastructure.

Introduction

Currently Next Terminal supports the following functions:

  • Authorization credential management
  • Asset management (support RDP, SSH, VNC, TELNET protocol)
  • command management
  • Execute commands in batches
  • Online session management (monitoring, forced disconnection)
  • Offline session management (viewing screen recordings)
  • two-factor authentication
  • asset tag
  • Asset Authorization
  • Multiple Users & User Groups
  • Scheduled Tasks
  • ssh server
  • login policy
  • System monitoring

Related Sites: 
  • Documents : https://next-terminal.typesafe.cn/docs/
  • Github: https://github.com/dushixiang/next-terminal
  • Quick Installation: https://next-terminal.typesafe.cn/docs/install/pro-install.html
  • Website: https://next-terminal.typesafe.cn/
  • Demo site: https://next.typesafe.cn/
    • Account : test 
    • Password: test

Docker Installation Steps

Following docker depoloyment is using sqlite to store data. You will need to create a new folder,  next-terminal, then create docker-compose.yml file and copy following information in:
yaml

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

Make sure you run it from x86/x64 platform. Else you will find the Error when using net-terminal docker in ARM based CPU environment.

root@arm-ubuntu-xrdp-docker:~# docker-compose up
Recreating root_next-terminal_1 … done
Starting root_guacd_1           … done
Attaching to root_guacd_1, root_next-terminal_1
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
guacd_1          | guacd[6]: INFO:      Guacamole proxy daemon (guacd) version 1.4.0 started
guacd_1          | guacd[6]: INFO:      Listening on host 0.0.0.0, port 4822
root_next-terminal_1 exited with code 2
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
root_next-terminal_1 exited with code 2
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
root_next-terminal_1 exited with code 2
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
root_next-terminal_1 exited with code 2
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
root_next-terminal_1 exited with code 2
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
root_next-terminal_1 exited with code 2
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
next-terminal_1  | ./next-terminal: line 1:ELF: not found
next-terminal_1  | ./next-terminal: line 2: �P: not found
next-terminal_1  | ./next-terminal: line 4: syntax error: unexpected “)”
root_next-terminal_1 exited with code 2


We can use Docker Pro Version Deployment to resolve this issue:

shell

curl -sSL https://f.typesafe.cn/next-terminal/docker-compose.yml > docker-compose.yml
docker-compose up -d

Herr are my docker-compose.yml file’s contents:

root@arm-ubuntu-xrdp-docker:~# cat docker-compose.yml
version: '3.3'
services:
  guacd:
    image: dushixiang/guacd:latest
    restart:
      always
  next-terminal:
    image: dushixiang/next-terminal-pro: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

root@arm-ubuntu-xrdp-docker:~#

Usage

 Log in to system using default admin/admin credentail:

login

Control Panel:

dashboard




By netsec

Leave a Reply