0%

实测一个可用的堡垒机开源项目

实测一个可用的堡垒机开源项目

Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理。

QQ群:397745473

Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理。

Next Terminal基于Apache Guacamole开发,使用到了guacd服务。

目前支持的功能有:

  • 授权凭证管理
  • 资产管理(支持RDP、SSH、VNC、TELNET协议)
  • 指令管理
  • 批量执行命令
  • 在线会话管理(监控、强制断开)
  • 离线会话管理(查看录屏)

docker 简单安装

项目地址: https://github.com/dushixiang/next-terminal

常见问题解决: https://github.com/dushixiang/next-terminal/blob/master/docs/faq.md

1
2
3
4
5
6
7
8
9
10
11
mkdir -p "/opt/next-terminal/drive"
mkdir -p "/opt/next-terminal/recording"
touch /opt/next-terminal/next-terminal.db

docker run -d \
-p 8088:8088 \
-v /opt/next-terminal/drive:/usr/local/next-terminal/drive \
-v /opt/next-terminal/recording:/usr/local/next-terminal/recording \
-v /opt/next-terminal/next-terminal.db:/usr/local/next-terminal/next-terminal.db \
--name next-terminal \
--restart always dushixiang/next-terminal:latest

完装完成连接8088端口就可以使用了

其他

1
2
next-terminal` 使用了`supervisord`来管理服务,
因此相关日志在 `/var/log/supervisor/next-terminal-*.log

程序安装目录地址为:/usr/local/next-terminal

录屏文件存放地址为:/usr/local/next-terminal/recording

远程桌面挂载地址为:/usr/local/next-terminal/drive

安装SSL证书

直接在docker的宿主机上安装nginx 参考以下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
listen 443;
server_name domain.com;

ssl on;
ssl_certificate_key /ssl/domain.key;
ssl_certificate /ssl/domain.pem;

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8088;
# 以下三行是websocket需要的
proxy_http_version 1.1;
# https://github.com/dushixiang/next-terminal/blob/master/docs/faq.md
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
}
}

开启自动更新

1
参考: https://p3terx.com/archives/docker-watchtower.html

官方给出的默认启动命令在长期使用后会堆积非常多的标签为 none 的旧镜像,如果放任不管会占用大量的磁盘空间。要避免这种情况可以加入 --cleanup 选项,这样每次更新都会把旧的镜像清理掉。

1
2
3
4
5
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c

问题解决

  1. 用nginx反向代理后上传大文件报错误413

    解决办法:

    在nginx配置文件的http段加入下面这句, 重新加载一下配置文件问题解决。

    1
    client_max_body_size 100m;

QQ群:397745473

欢迎关注我的其它发布渠道