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
- 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
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
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:
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:
Control Panel:
References