Next Terminal | 开源 轻量 简单的堡垒机
演示:https://next.typesafe.cn/ 账号:test 密码:test
对比
类似的开源堡垒机有 Teleport,Jumpserver,Next Terminal等等。
Teleport 安全性最好,较轻量,但是对被管理资产不透明,纳管前需要双向认证,在资产设备上需额外操作,大公司,安全性要求高的适合,有商业版本。
Jumpserver 笨重,对被管理资产透明,其他 该有的都有,有商业版本。
Next Terminal 轻量,简单,对被管理资产透明,适合个人,支持RDP、SSH、VNC、TELNET等协议。
使用docker命令安装
XML/HTML代码
- # 安装 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
默认用户名 密码 admin/admin,登录进去以后切记切记开启MFA,如果不开启MFA,一旦密码被暴力破解,不仅内网被暴露到公网,你的资产更是直接暴露,直接登录。下载 Microsoft Authenticator 可以使用MFA认证。各大应用商店都有,支持安卓和IOS。
开启MFA流程:个人中心--双因素认证--去开启--Microsoft Authenticator 扫码--输入TOTP(APP显示的授权码)建议管理员和普通用户都开启更加安全。
然后把Next Terminal的登录页透传出去了,认证之后就可以无缝管理内网资源,添加一个Windows系统作为跳板机就更方便了。也可以使用Nginx反代,可以同步本地剪切板。
docker-compose.yml 安装
提示:国内用户可以使用阿里云镜像仓库
XML/HTML代码
- guacd registry.cn-beijing.aliyuncs.com/dushixiang/guacd
- next-terminal registry.cn-beijing.aliyuncs.com/dushixiang/next-terminal
使用 sqlite 存储数据:
在任意位置创建文件夹 next-terminal ,然后在此文件夹下创建 docker-compose.yml 并写入如下内容
XML/HTML代码
- 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
XML/HTML代码
- docker-compose up
XML/HTML代码
- docker-compose up -d
在任意位置创建文件夹 next-terminal ,然后在此文件夹下创建 docker-compose.yml 并写入如下内容:
XML/HTML代码
- 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
XML/HTML代码
- docker-compose up
XML/HTML代码
- docker-compose up -d
在任意位置创建文件夹 next-terminal ,然后在此文件夹下创建 docker-compose.yml 并写入如下内容:
XML/HTML代码
- 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
前台启动命令
XML/HTML代码
- docker-compose up
后台启动命令
XML/HTML代码
- docker-compose up -d
以sqlite模式为例,修改 docker-compose.yml,增加 加粗 区域的配置
XML/HTML代码
- 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
- SSHD_ENABLE: "true"
- ports:
- - "8088:8088"
- - "8089:8089"
- volumes:
- - /etc/localtime:/etc/localtime
- - ./data:/usr/local/next-terminal/data
- - ~/.ssh/id_rsa:/root/.ssh/id_rsa
- restart:
- always
XML/HTML代码
- ssh admin@127.0.0.1 -p 8089
XML/HTML代码
- docker-compose pull && docker-compose restart
反向代理
推荐使用 nginx 等web服务器反向代理 next-terminal 使用,一是可有效避免伪造 IP 绕过系统限制,二是开启 https 后可无缝同步系统粘贴板。
nginx 反向代理示例
XML/HTML代码
- location / {
- proxy_pass http://127.0.0.1:8088/;
- proxy_set_header Host $host;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- }
开源堡垒机 TELEPORT