Next Terminal是什么?
Next Terminal是一个开源的交互审计系统,具有以下主要功能和优势:
免费开源:Next Terminal在GitHub上已收获近4000 Star(dushixiang/next-terminal: Next Terminal)。
多协议支持:您可以在一套系统中访问RDP、SSH、VNC、TELNET等协议资产,无需插件,一个浏览器即可。
实时监控:您可以随时查看到目前正在活跃的会话,并进行监控和阻断。针对字符协议,您甚至可以限制禁止某些命令的执行和记录。
事后审计:Next Terminal观察并记录所有环境中的每个在线资源、连接、交互会话和其他安全事件。这些事件被记录在结构化的审计日志中,便于查看正在发生的事情和责任人。
注意:这仅仅是为了远程控制开发的,是为了审计操作行为,如果只是有远程操作需求建议选择专业的远控软件来做。
快速安装
安装Docker-Compose
创建工作目录
mkdir next-terminal && cd next-terminal
编写docker-compose.yml文件
使用 SQLite 存储数据
vim docker-compose.yml
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" # 左边 8088可以更换为服务器未占用的端口
volumes:
- /etc/localtime:/etc/localtime
- ./data:/usr/local/next-terminal/data
restart:
always
:wq
保存退出
启动 Docker Compose 配置文件
docker-compose up -d
浏览器输入ip:8088
访问
默认账号/密码 admin/admin
占用不到30M的内存,非常轻量!
Next Terminal官方也是支持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
如果你使用的是内部的 MySQL 相对于 SQLite 会多占用将近400M的内存的,怎么取舍还是看自己的情况吧
Nginx反代部分代码
server {
listen 80;
server_name your.domain.server.com;
# SSL 配置已省略
# ...
# proxy to 8088
location / {
proxy_pass http://{ip}:8088;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 其他配置
# ...
}
不完全使用说明
强烈建议!!初始账号密码是
admin/admin
登录成功之后在左侧菜单栏找到个人中心
修改密码并绑定二步认证
添加资产
左侧菜单栏资源管理
二级菜单栏资产管理
,点击新建
,按需求填写信息,点击确定即可。
SSH协议
应注意协议是否与主站地址后面的端口号相符,例如SSH默认就是
22
你也可以选择使用
密钥
或授权凭证
的登录方式
连接服务器
新建完成之后接入
即可连接服务器
可以看到连接之后网页右上角有三个按钮分别是
代码标
:可以快速的执行一些指令,添加指令的方式:左侧菜单栏资源管理
二级菜单栏动态指令
文件夹标
:可以快速的上传文件至服务器视图标
:可以快速的查询一些状态信息
RDP协议
监控用户行为
左侧菜单栏会话审计
二级菜单栏在线会话
,可以监控用户正在对服务器执行的命令,实时同步的。
断开用户访问服务器
回放用户历史行为
左侧菜单栏会话审计
二级菜单栏历史会话
更多功能还是快自己去探索吧!
评论区