新一代主机管理工具-natpass

17 篇文章 0 订阅
4 篇文章 0 订阅

一、软件概述

natpass 是新一代主机管理工具,支持 Web VNC 和 Web Shell,支持 Shell 管理,支持远程桌面管理

二、官方地址

https://github.com/lwch/natpass

natpass: natpass 是新一代主机管理工具,支持 Web VNC 和 Web Shell,支持 Shell 管理,支持远程桌面管理

三、功能特性

  1. 支持私有化部署
  2. 较小的内存占用(约20M左右)
  3. 支持tls安全连接
  4. 支持多路异步IO
  5. 支持虚拟链路层
  6. 支持链路和终端会话监控
  7. protobuf数据编码
  8. 支持web shell
    • linux和mac系统支持创建pty设备和颜色输出
    • windows系统支持powershell
  9. 支持web vnc
    • 支持基本的键盘鼠标操作
    • 支持全屏显示
    • 支持滚动
    • 支持远程剪贴板设置与读取
  10. 支持code-server
  11. 支持多种操作系统
  •  linux
  •  windows
  •  macos

四、实现原理

支持tls链接,protobuf进行数据传输,下面举例远程连接服务器集群内的某台主机

shell

server端配置(10.0.1.1):

listen: 6154       # 监听端口号
secret: 0123456789 # 预共享密钥
log:
  dir: /opt/natpass/logs # 路径
  size: 50M   # 单个文件大小
  rotate: 7   # 保留数量
tls:
  key: /dir/to/tls/key/file # tls密钥
  crt: /dir/to/tls/crt/file # tls证书

服务器client配置(192.168.1.100):

id: server            # 客户端ID
server: 10.0.1.1:6154 # 服务器地址
secret: 0123456789    # 预共享密钥,必须与server端相同,否则握手失败
log:
  dir: /opt/natpass/logs # 路径
  size: 50M   # 单个文件大小
  rotate: 7   # 保留数量

办公网络client配置(172.16.1.100):

id: work              # 客户端ID
server: 10.0.1.1:6154 # 服务器地址
secret: 0123456789    # 预共享密钥,必须与server端相同,否则握手失败
log:
  dir: /opt/natpass/logs # 路径
  size: 50M   # 单个文件大小
  rotate: 7   # 保留数量
rules:                          # 远端rule列表可为空
  - name: rdp                   # 链路名称
    target: server              # 目标客户端ID
    type: shell                 # 连接类型tcp或udp
    local_addr: 0.0.0.0         # 本地监听地址
    local_port: 3389            # 本地监听端口号

工作流程如下:

  1. 办公网络与家庭网络中的np-cli创建tls连接到np-svr
  2. np-cli服务发送握手包,并将配置文件中的secret字段进行md5哈希
  3. np-svr等待握手报文,若等待超时则为非法链接,直接断开
  4. 用户打开办公网络主机172.16.1.100上的终端页面,并连接到服务器集群中的主机server
  5. 172.16.1.100上的np-cli发送connect_request消息,并将连接类型设置为shell
  6. np-svr转发connect_request消息至192.168.1.100上的np-cli
  7. 192.168.1.100上的np-cli接收到connect_request消息,创建/bin/bash进程
  8. 192.168.1.100上的np-cli根据链接创建结果返回connect_response消息
  9. np-svr转发connect_response消息至172.16.1.100上的np-cli
  10. 172.168.1.100上的np-cli接收connect_response消息
  11. 开始转发网页上的输入输出内容

五、软件架构 

架构图

六、软件部署

部署过程共分为三部分:服务器端、受控端和控制端,下面以centos系统进行举例。

1、软件下载

https://github.com/lwch/natpass/releases

2、服务器端部署

  1. 将下载后的natpass_0.13.0_linux_amd64.tar.gz上传到服务器/usr/local/soft/路径下

  2. 解压软件

cd /usr/local/soft/
tar -zxvf natpass_0.13.0_linux_amd64.tar.gz

     3. 使用以下命令启动服务器端程序

cd /usr/local/soft/natpass_0.13.0/ 
sudo ./np-svr --conf server.yaml
  • (可选)开放外网防火墙,默认端口6154

3、受控端部署

  1. 在受控端机器上下载并解压到任意目录(本次案例仍以服务器端部署服务器为例)

  • (可选)修改remote.yaml配置文件,修改server地址

     2. 使用以下命令启动客户端程序,新打开一个Shell窗口

cd /usr/local/soft/natpass_0.13.0/ 
sudo ./np-cli --conf remote.yaml

 

4、控制端部署

  1. 在本地控制机上下载并解压到任意目录(本次案例仍以服务器端部署服务器为例)(可选)修改local.yaml配置文件,修改server地址(可选)修改rule.d目录下的规则配置文件,rule配置方法

  2. 使用以下命令启动客户端程序

    cd /usr/local/soft/natpass_0.13.0/  
    sudo ./np-cli --conf local.yaml
    
  3. 在以上操作成功后即可在浏览器中通过local.yaml中配置的端口号进行访问,默认地址:

     http://127.0.0.1:8080

         或远程登录:http://node11:8080/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值