From 954dfba4e0ff323182aeb58321076cbc2c9ca89c Mon Sep 17 00:00:00 2001 From: hhd Date: Wed, 24 Nov 2021 22:40:07 +0800 Subject: [PATCH] init --- .gitignore | 10 + LICENSE | 21 + README-ZH.md | 119 +++++ README.md | 144 ++++++ USAGE-ZH.md | 41 ++ USAGE.md | 41 ++ bandwidthLimit.go | 45 ++ common.go | 101 ++++ common_test.go | 41 ++ config.go | 85 ++++ config.json | 31 ++ daemon.go | 36 ++ doc/images/afterconnect.png | Bin 0 -> 46770 bytes doc/images/afterconnect_linux.PNG | Bin 0 -> 56504 bytes doc/images/appdetail.png | Bin 0 -> 30300 bytes doc/images/architecture.png | Bin 0 -> 30770 bytes doc/images/homeconnect.png | Bin 0 -> 32721 bytes doc/images/homeconnect_windows.PNG | Bin 0 -> 122497 bytes doc/images/mem.png | Bin 0 -> 3195 bytes doc/images/mstscconnect.png | Bin 0 -> 23126 bytes doc/images/officeexecute_linux.PNG | Bin 0 -> 48080 bytes doc/images/officelisten.png | Bin 0 -> 80131 bytes doc/images/officelisten_2_linux.PNG | Bin 0 -> 45969 bytes doc/images/officelisten_linux.PNG | Bin 0 -> 3090 bytes doc/images/prototype.png | Bin 0 -> 121960 bytes doc/images/sshconnect.PNG | Bin 0 -> 54915 bytes doc/images/winscpconnect.PNG | Bin 0 -> 19998 bytes go.mod | 9 + holepunch.go | 180 ++++++++ log.go | 198 ++++++++ nat.go | 94 ++++ openp2p.go | 158 +++++++ overlaytcp.go | 85 ++++ p2papp.go | 142 ++++++ p2pappkeys.go | 19 + p2pconn.go | 17 + p2pnetwork.go | 691 ++++++++++++++++++++++++++++ p2ptunnel.go | 418 +++++++++++++++++ protocol.go | 280 +++++++++++ quic.go | 151 ++++++ sysinfodarwin.go | 30 ++ sysinfolinux.go | 70 +++ sysinfowin.go | 51 ++ totp.go | 30 ++ totp_test.go | 36 ++ udp.go | 44 ++ update.go | 207 +++++++++ 47 files changed, 3625 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README-ZH.md create mode 100644 README.md create mode 100644 USAGE-ZH.md create mode 100644 USAGE.md create mode 100644 bandwidthLimit.go create mode 100644 common.go create mode 100644 common_test.go create mode 100644 config.go create mode 100644 config.json create mode 100644 daemon.go create mode 100644 doc/images/afterconnect.png create mode 100644 doc/images/afterconnect_linux.PNG create mode 100644 doc/images/appdetail.png create mode 100644 doc/images/architecture.png create mode 100644 doc/images/homeconnect.png create mode 100644 doc/images/homeconnect_windows.PNG create mode 100644 doc/images/mem.png create mode 100644 doc/images/mstscconnect.png create mode 100644 doc/images/officeexecute_linux.PNG create mode 100644 doc/images/officelisten.png create mode 100644 doc/images/officelisten_2_linux.PNG create mode 100644 doc/images/officelisten_linux.PNG create mode 100644 doc/images/prototype.png create mode 100644 doc/images/sshconnect.PNG create mode 100644 doc/images/winscpconnect.PNG create mode 100644 go.mod create mode 100644 holepunch.go create mode 100644 log.go create mode 100644 nat.go create mode 100644 openp2p.go create mode 100644 overlaytcp.go create mode 100644 p2papp.go create mode 100644 p2pappkeys.go create mode 100644 p2pconn.go create mode 100644 p2pnetwork.go create mode 100644 p2ptunnel.go create mode 100644 protocol.go create mode 100644 quic.go create mode 100644 sysinfodarwin.go create mode 100644 sysinfolinux.go create mode 100644 sysinfowin.go create mode 100644 totp.go create mode 100644 totp_test.go create mode 100644 udp.go create mode 100644 update.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d59a9f1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +__debug_bin +__debug_bin.exe +# .vscode +openp2p +openp2p.exe* +*.log +go.sum +*.tar.gz +*.zip +*.exe \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0e58450 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 OpenP2P.cn + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README-ZH.md b/README-ZH.md new file mode 100644 index 0000000..54a48d6 --- /dev/null +++ b/README-ZH.md @@ -0,0 +1,119 @@ +[English](/README.md)|中文 +## OpenP2P是什么 +它是一个开源、免费、轻量级的P2P共享网络。任何设备接入OpenP2P,就可以随时随地访问它们。 + +## 为什么选择OpenP2P +### 免费 +完全免费,满足大部分用户的核心白票需求。不像其它类似的产品,我们不需要有公网IP的服务器,不需要花钱买服务。 +### 安全 +代码开源,接受各位大佬检验。下面详细展开 +### 轻量 +文件大小2MB+,运行内存2MB+;全部在应用层实现,没有虚拟网卡,没有内核程序 +### 跨平台 +因为轻量,所以很容易支持各个平台。支持主流的操作系统:Windows,Linux,MacOS;和主流的cpu架构:386、amd64、arm、arm64、mipsle、mipsle64、mips、mips64 +### 高效 +P2P直连可以让你的设备跑满带宽。不论你的设备在任何网络环境,无论NAT1-4(Cone或Symmetric),都支持。依靠Quic协议优秀的拥塞算法,能在糟糕的网络环境获得高带宽低延时。 + +### 二次开发 +基于OpenP2P只需数行代码,就能让原来只能局域网通信的程序,变成任何内网都能通信 + +## 快速入门 +以一个最常见的例子说明OpenP2P如何使用:远程办公,在家里连入办公室Windows电脑。 +相信很多人在疫情下远程办公是刚需。 +1. 先确认办公室电脑已开启远程桌面功能(如何开启参考官方说明https://docs.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/clients/remote-desktop-allow-access) +2. 在办公室下载最新的OpenP2P(补上URL),解压出来,在命令行执行 + ``` + openp2p.exe -d -node OFFICEPC1 -user USERNAME1 -password PASSWORD1 + ``` + + `切记将标记大写的参数改成自己的` + + ![image](/doc/images/officelisten.png) +3. 在家里下载最新的OpenP2P(补上URL),解压出来,在命令行执行 + ``` + openp2p.exe -d -node HOMEPC123 -user USERNAME1 -password PASSWORD1 --peernode OFFICEPC1 --dstip 127.0.0.1 --dstport 3389 --srcport 23389 --protocol tcp + ``` + `切记将标记大写的参数改成自己的` + ![image](/doc/images/homeconnect.png) + ![image](/doc/images/mem.png) + `LISTEN ON PORT 23389 START` 看到这行日志表示P2PApp建立成功,监听23389端口。只需连接本机的127.0.0.1:23389就相当于连接公司Windows电脑的3389端口。 + +4. 在家里Windows电脑,按Win+R输入mstsc打开远程桌面,输入127.0.0.1:23389 /admin + ![image](/doc/images/mstscconnect.png) + + ![image](/doc/images/afterconnect.png) + +## [详细使用说明](/USAGE-ZH.md) +## 典型应用场景 +特别适合大流量的内网访问 +### 远程办公 +Windows MSTSC、VNC等远程桌面,SSH,内网各种ERP系统 +### 远程访问NAS +管理大量视频、图片 +### 远程监控摄像头 +### 远程刷机 +### 远程数据备份 +--- +## 概要设计 +### 原型 +![image](/doc/images/prototype.png) +### 客户端架构 +![image](/doc/images/architecture.png) +### P2PApp +它是项目里最重要的概念,一个P2PApp就是把远程的一个服务(mstsc/ssh等)通过P2P网络映射到本地监听。二次开发或者我们提供的Restful API,主要工作就是管理P2PApp +![image](/doc/images/appdetail.png) +## 共享 +默认会开启共享限速10mbps,只有你用户下提供了共享节点才能使用别人的共享节点。这非常公平,也是这个项目的初衷。 +我们建议你在带宽足够的地方(比如办公室,家里的百兆光纤)加入共享网络。 +如果你仍然不想共享任何节点,请查看运行参数 +## 安全性 +加入OpenP2P共享网络的节点,只能凭授权访问。共享节点只会中转数据,别人无法访问内网任何资源。 +### TLS1.3+AES +两个节点间通信数据走业界最安全的TLS1.3通道。通信内容还会使用AES加密,双重安全,密钥是通过服务端作换。有效阻止中间人攻击 +### 共享的中转节点是否会获得我的数据 +没错,中转节点天然就是一个中间人,所以才加上AES加密通信内容保证安全。中转节点是无法获取明文的 + +### 中转节点是如何校验权限的 +服务端有个调度模型,根据带宽、ping值、稳定性、服务时长,尽可能地使共享节点均匀地提供服务。连接共享节点使用TOTP密码,hmac-sha256算法校验,它是一次性密码,和我们平时使用的手机验证码或银行密码器一样的原理。 + +## 编译 +cd到代码根目录,执行 +``` +export GOPROXY=https://goproxy.io,direct +go mod tidy +go build +``` + +## TODO +近期计划: +1. 支持IPv6 +2. 支持随系统自动启动,安装成系统服务 +3. 提供一些免费服务器给特别差的网络,如广电网络 +4. 建立网站,用户可以在网站管理所有P2PApp和设备。查看设备在线状态,升级,增删查改重启P2PApp等 +5. 建立公众号,用户可在微信公众号管理所有P2PApp和设备 +6. 客户端提供WebUI +7. 支持自有服务器高并发连接 +8. 共享节点调度模型优化,对不同的运营商优化 +9. 方便二次开发,提供API和lib +10. 应用层支持UDP协议,实现很简单,但UDP应用较少暂不急 +11. 底层通信支持KCP协议,目前仅支持Quic;KCP专门对延时优化,被游戏加速器广泛使用,可以牺牲一定的带宽降低延时 +12. 支持Android系统,让旧手机焕发青春变成移动网关 +13. 支持Windows网上邻居共享文件 +14. 内网直连优化,用处不大,估计就用户测试时用到 + +远期计划: +1. 彻底地分布式去中心化设计 +2. 企业级支持,可以更好地管理大量设备,和更安全更细的权限控制 + +## 参与贡献 +TODO或ISSUE里如果有你擅长的领域,或者你有特别好的主意,可以加入OpenP2P项目,贡献你的代码。待项目茁壮成长后,你们就是知名开源项目的主要代码贡献者,岂不快哉。 +## 商业合作 +它是一个中国人发起的项目,更懂国内网络环境,更懂用户需求,更好的企业级支持 +## 技术交流 +QQ群:16947733 +邮箱:openp2p.cn@gmail.com 271357901@qq.com +第一时间获得最新版本消息,以及一些最新IT业界动态 +微信公众号:openp2p +微博:https://weibo.com/openp2p +## 免责声明 +本项目开源供大家学习和免费使用,禁止用于非法用途,任何不当使用本项目或意外造成的损失,本项目及相关人员不会承担任何责任。 diff --git a/README.md b/README.md new file mode 100644 index 0000000..11035ef --- /dev/null +++ b/README.md @@ -0,0 +1,144 @@ +English|[中文](/README-ZH.md) +## What is OpenP2P +It is an open source, free, and lightweight P2P sharing network. As long as any device joins in, you can access them anywhere +## Why OpenP2P +### Free +Totaly free, fullfills most of users(especially free-rider). Unlike other similar products, we don't need a server with public IP, and don't need to pay for services. + +### Safe +Open source, trustable(see details below) + +### Lightweight +2MB+ filesize, 2MB+ memory. It runs at appllication layer, no vitrual NIC, no kernel driver. + +### Cross-platform +Benefit from lightweight, it easily supports most of major OS, like Windows, Linux, MacOS, also most of CPU architecture, like 386、amd64、arm、arm64、mipsle、mipsle64、mips、mips64. + +### Efficient +P2P direct connection lets your devices make good use of bandwidth. Your device can be connected in any network environments, even supports NAT1-4 (Cone or Symmetric). Relying on the excellent congestion algorithm of the Quic protocol, high bandwidth and low latency can be obtained in a bad network environment. + +### Integration +Your applicaiton can call OpenP2P with a few code to make any internal networks communicate with each other. + +## Get Started +A common scenario to introduce OpenP2P: remote work. At home connects to office's Linux PC . +Under the outbreak of covid-19 pandemic, surely remote work becomes a fundamental demand. + +1. Make sure your office device(Linux) has opened the access of ssh. + ``` + netstat -nl | grep 22 + ``` + Output sample + ![image](/doc/images/officelisten_linux.png) + +2. Download the latest version of OpenP2P(TBC),unzip the downloaded package, and execute below command line. + ``` + tar xvf openp2p0.95.3.linux-amd64.tar.gz + openp2p -d -node OFFICEPC1 -user USERNAME1 -password PASSWORD1 + ``` + `Must change the parameters marked in uppercase to your own` + + Output sample + ![image](/doc/images/officeexecute_linux.png) + +3. Download the same package of OpenP2P(TBC) on your home device,unzip and execute below command line. + ``` + openp2p.exe -d -node HOMEPC123 -user USERNAME1 -password PASSWORD1 --peernode OFFICEPC1 --dstip 127.0.0.1 --dstport 22 --srcport 22022 --protocol tcp + ``` + `Must change the parameters marked in uppercase to your own` + Output sample + ![image](/doc/images/homeconnect_windows.png) + The log of `LISTEN ON PORT 22022 START` indicates P2PApp runs successfully on your home device, listing port is 22022. Once connects to local ip:port,127.0.0.1:22022, it means the home device has conneccted to the office device's port, 22. + ![image](/doc/images/officelisten_2_linux.png) + + +4. Test the connection between office device and home device.In your home deivce, run SSH to login the office device. + ``` + ssh -p22022 root@127.0.0.1:22022 + ``` + ![image](/doc/images/sshconnect.png) + + +## [Usage](/USAGE.md) + +## Scenarios +Especially suitable for large traffic intranet access. +### Remote work +Windows MSTSC, VNC and other remote desktops, SSH, various ERP systems in the intranet + +### Remote Access NAS +Manage a large number of videos and pictures +### Remote Access Camera +### Remote Flashing Phone +### Remotely Data Backup +--- +## Overview Design +### Prototype +![image](/doc/images/prototype.png) +### Client architecture +![image](/doc/images/architecture.png) +### P2PApp +P2PAPP is the most import concept in this project, one P2PApp is able to map the remote service(mstsc/ssh) to the local listening. The main job of re-development or restful API we provide is to manage P2PApp. + +![image](/doc/images/appdetail.png) +## Share +10mbps is its default setting of share speed limit. Only when your users have shared their nodes, they are allowed to use others' shared nodes. This is very fair, and it is also the original intention of this project. +We recommend that you join a shared network in a place with sufficient bandwidth (such as an office or home with 100M optical fiber). +If you are still not willing to contribute any node to the OpenP2P share network, please refer to the operating parameters for your own setting. +## Safety +The nodes which have joined the OpenP2P share network can vist each other by authentications. Shared nodes will only relay data, and others cannot access any resources in the intranet. + +### TLS1.3+AES +The communication data between the two nodes uses the industry's most secure TLS1.3 channel. The communication content will also use AES encryption, double security, the key is exchanged through the server. Effectively prevent man-in-the-middle attacks. + +### Will the shared node capture my data? +That's right, the relay node is naturally an man-in-middle, so AES encryption is added to ensure the security of the communication content. The relay node cannot obtain the plaintext. +### How does the shared relay node verify the authority? +The server side has a scheduling model, which calculate bandwith, ping value,stability and service duration to provide a well-proportioned service to every share node. It uses TOTP(Time-based One-time Password) with hmac-sha256 algorithem, its theory as same as the cellphone validation code or bank cipher coder. + +## Build +cd root directory of the socure code and execute +``` +export GOPROXY=https://goproxy.io,direct +go mod tidy +go build +``` + +## TODO +Short-Term: +1. Support IPv6. +2. Support auto run when system boot, setup system service. +3. Provide free servers to some low-performance network. +4. Build website, users can manage all P2PApp and devices via it. View devices' online status, upgrade, restart or CURD P2PApp . +5. Provide wechat official account, user can manage P2PApp nodes and deivce as same as website. +6. Provide WebUI on client side. +7. Support high concurrency on server side. +8. Optimize our share scheduling model for different network operators. +9. Provide REST APIs and libary for secondary development. +10. Support UDP at application layer, it is easy to implement but not urgent due to only a few applicaitons using UDP protocol. +11. Support KCP protocol underlay, currently support Quic only. KCP focus on delay optimization,which has been widely used as game accelerator,it can sacrifice part of bandwidth to reduce timelag. +12. Support Android platform, let the phones to be mobile gateway . +13. Support SMB Windows neighborhood. +14. Direct connection on intranet, for testing. + + +Long-Term: +1. Decentration and distribution. +2. Enterprise-level product can well manage large scale equipment and ACL. + + +## Contribute +If the items in TODO or ISSUE is your domain, or you have sepical good idea, welcome to join this OpenP2P project and contribute your code. When this project grows stronger, you will be the major outstanding contributors. That's cool. + +## Contact +QQ Group: 16947733 + +Email: openp2p.cn@gmail.com tenderiron@139.com + +Get the latest version news, and some of the latest IT industry trends + +WeChat public account: openp2p + +## Disclaimer +This project is open source for everyone to learn and use for free. It is forbidden to be used for illegal purposes. Any loss caused by improper use of this project or accident, this project and related personnel will not bear any responsibility. + diff --git a/USAGE-ZH.md b/USAGE-ZH.md new file mode 100644 index 0000000..f3accf0 --- /dev/null +++ b/USAGE-ZH.md @@ -0,0 +1,41 @@ +# 详细运行参数说明 + +## 监听 +``` +openp2p.exe -d -node OFFICEPC1 -user USERNAME1 -password PASSWORD1 +``` +>* -d daemon模式,推荐使用。发现worker进程意外退出就会自动启动新的worker进程 +>* -node 独一无二的节点名字,唯一标识 +>* -user 独一无二的用户名字,该节点属于这个user +>* -password 密码 +>* -sharebandwidth 作为共享节点时提供带宽,默认10mbps. 如果是光纤大带宽,设置越大效果越好 +>* -loglevel 需要查看更多调试日志,设置0;默认是1 +>* -noshare 不共享,该节点只在私有的P2P网络使用。不加入共享的P2P网络,这样也意味着无法使用别人的共享节点 + +## 连接 +``` +openp2p.exe -d -node HOMEPC123 -user USERNAME1 -password PASSWORD1 -peernode OFFICEPC1 -dstip 127.0.0.1 -dstport 3389 -srcport 23389 -protocol tcp +``` +>* -peernode 目标节点名字 +>* -dstip 目标服务地址,默认本机127.0.0.1 +>* -dstport 目标服务端口,常见的如windows远程桌面3389,Linux ssh 22 +>* -protocol 目标服务协议 tcp、udp +>* -peeruser 目标用户,如果是同一个用户下的节点,则无需设置 +>* -peerpassword 目标密码,如果是同一个用户下的节点,则无需设置 +>* -f 配置文件,如果希望配置多个P2PApp参考[config.json](/config.json) + +## 升级客户端 +``` +# update local client +openp2p update +# update remote client +curl --insecure 'https://openp2p.cn:27182/api/v1/device/YOUR-NODE-NAME/update?user=&password=' +``` + +Windows系统需要设置防火墙放行本程序,程序会自动设置,如果设置失败会影响连接功能。 +Linux系统(Ubuntu和CentOS7)的防火墙默认配置均不会有影响,如果不行可尝试关闭防火墙 +``` +systemctl stop firewalld.service +systemctl start firewalld.service +firewall-cmd --state +``` \ No newline at end of file diff --git a/USAGE.md b/USAGE.md new file mode 100644 index 0000000..e31c597 --- /dev/null +++ b/USAGE.md @@ -0,0 +1,41 @@ +# Parameters details + +## Listen +``` +openp2p.exe -d -node OFFICEPC1 -user USERNAME1 -password PASSWORD1 +``` +>* -d daemon mode is recommand. When the worker process is found to exit unexpectedly, a new worker process will be automatically started +>* -node Unique node name, unique identification +>* -user Unique user name, the node belongs to this user +>* -password Password +>* -sharebandwidth Provides bandwidth when used as a shared node, the default is 10mbps. If it is a large bandwidth of optical fiber, the larger the setting, the better the effect +>* -loglevel Need to view more debug logs, set 0; the default is 1 +>* -noshare Not shared, the node is only used in a private P2P network. Do not join the shared P2P network, which also means that you CAN NOT use other people’s shared nodes + +## Connect +``` +openp2p.exe -d -node HOMEPC123 -user USERNAME1 -password PASSWORD1 -peernode OFFICEPC1 -dstip 127.0.0.1 -dstport 3389 -srcport 23389 -protocol tcp +``` +>* -peernode Target node name +>* -dstip Target service address, default local 127.0.0.1 +>* -dstport Target service port, such as windows remote desktop 3389, Linux ssh 22 +>* -protocol Target service protocol tcp, udp +>* -peeruser The target user, if it is a node under the same user, no need to set +>* -peerpassword The target password, if it is a node under the same user, no need to set +>* -f Configuration file, if you want to configure multiple P2PApp refer to [config.json](/config.json) + +## Client update +``` +# update local client +openp2p update +# update remote client +curl --insecure 'https://openp2p.cn:27182/api/v1/device/YOUR-NODE-NAME/update?user=&password=' +``` + +Windows system needs to set up firewall for this program, the program will automatically set the firewall, if the setting fails, the UDP punching will be affected. +The default firewall configuration of Linux system (Ubuntu and CentOS7) will not have any effect, if not, you can try to turn off the firewall +``` +systemctl stop firewalld.service +systemctl start firewalld.service +firewall-cmd --state +``` \ No newline at end of file diff --git a/bandwidthLimit.go b/bandwidthLimit.go new file mode 100644 index 0000000..a6c800c --- /dev/null +++ b/bandwidthLimit.go @@ -0,0 +1,45 @@ +package main + +import ( + "sync" + "time" +) + +// BandwidthLimiter ... +type BandwidthLimiter struct { + freeFlowTime time.Time + bandwidth int // mbps + freeFlow int // bytes + maxFreeFlow int // bytes + freeFlowMtx sync.Mutex +} + +// mbps +func newBandwidthLimiter(bw int) *BandwidthLimiter { + return &BandwidthLimiter{ + bandwidth: bw, + freeFlowTime: time.Now(), + maxFreeFlow: bw * 1024 * 1024 / 8, + freeFlow: bw * 1024 * 1024 / 8, + } +} + +// Add ... +func (bl *BandwidthLimiter) Add(bytes int) { + if bl.bandwidth <= 0 { + return + } + bl.freeFlowMtx.Lock() + defer bl.freeFlowMtx.Unlock() + // calc free flow 1000*1000/1024/1024=0.954; 1024*1024/1000/1000=1.048 + bl.freeFlow += int(time.Now().Sub(bl.freeFlowTime) * time.Duration(bl.bandwidth) / 8 / 954) + if bl.freeFlow > bl.maxFreeFlow { + bl.freeFlow = bl.maxFreeFlow + } + bl.freeFlow -= bytes + bl.freeFlowTime = time.Now() + if bl.freeFlow < 0 { + // sleep for the overflow + time.Sleep(time.Millisecond * time.Duration(-bl.freeFlow/(bl.bandwidth*1048/8))) + } +} diff --git a/common.go b/common.go new file mode 100644 index 0000000..8568eb6 --- /dev/null +++ b/common.go @@ -0,0 +1,101 @@ +package main + +import ( + "crypto/aes" + "crypto/cipher" + "fmt" + "net" +) + +func getmac(ip string) string { + //get mac relative to the ip address which connected to the mq. + ifaces, err := net.Interfaces() + if err != nil { + return "" + } + firstMac := "" + for _, iface := range ifaces { + addrs, _ := iface.Addrs() + for _, addr := range addrs { + if firstMac == "" { + firstMac = iface.HardwareAddr.String() + } + if ipNet, ok := addr.(*net.IPNet); ok && ipNet.IP.String() == ip { + if iface.HardwareAddr.String() != "" { + return iface.HardwareAddr.String() + } + return firstMac + } + } + } + return firstMac +} + +var cbcIVBlock = []byte("UHNJUSBACIJFYSQN") + +var paddingArray = [][]byte{ + {0}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, + {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, + {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, + {5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}, + {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}, + {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, + {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, + {9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9}, + {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, + {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, + {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, + {13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13}, + {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14}, + {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15}, + {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}, +} + +func pkcs7Padding(plainData []byte, dataLen, blockSize int) int { + padLen := blockSize - dataLen%blockSize + pPadding := plainData[dataLen : dataLen+padLen] + + copy(pPadding, paddingArray[padLen][:padLen]) + return padLen +} + +func pkcs7UnPadding(origData []byte, dataLen int) ([]byte, error) { + unPadLen := int(origData[dataLen-1]) + if unPadLen <= 0 || unPadLen > 16 { + return nil, fmt.Errorf("wrong pkcs7 padding head size:%d", unPadLen) + } + return origData[:(dataLen - unPadLen)], nil +} + +func encryptBytes(key []byte, out, in []byte, plainLen int) ([]byte, error) { + if len(key) == 0 { + return in[:plainLen], nil + } + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + //iv := out[:aes.BlockSize] + //if _, err := io.ReadFull(rand.Reader, iv); err != nil { + // return nil, err + //} + mode := cipher.NewCBCEncrypter(block, cbcIVBlock) + total := pkcs7Padding(in, plainLen, aes.BlockSize) + plainLen + mode.CryptBlocks(out[:total], in[:total]) + return out[:total], nil +} + +func decryptBytes(key []byte, out, in []byte, dataLen int) ([]byte, error) { + if len(key) == 0 { + return in[:dataLen], nil + } + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + mode := cipher.NewCBCDecrypter(block, cbcIVBlock) + mode.CryptBlocks(out[:dataLen], in[:dataLen]) + return pkcs7UnPadding(out, dataLen) +} diff --git a/common_test.go b/common_test.go new file mode 100644 index 0000000..c6444b7 --- /dev/null +++ b/common_test.go @@ -0,0 +1,41 @@ +package main + +import ( + "log" + "testing" +) + +func TestAESCBC(t *testing.T) { + for packetSize := 1; packetSize <= 8192; packetSize++ { + log.Println("test packetSize=", packetSize) + data := make([]byte, packetSize) + for i := 0; i < packetSize; i++ { + data[i] = byte('0' + i%10) + } + p2pEncryptBuf := make([]byte, len(data)+PaddingSize) + inBuf := make([]byte, len(data)+PaddingSize) + copy(inBuf, data) + cryptKey := []byte("0123456789ABCDEF") + sendBuf, err := encryptBytes(cryptKey, p2pEncryptBuf, inBuf, len(data)) + if err != nil { + t.Errorf("encrypt packet failed:%s", err) + } + log.Printf("encrypt data len=%d\n", len(sendBuf)) + + decryptBuf := make([]byte, len(sendBuf)) + outBuf, err := decryptBytes(cryptKey, decryptBuf, sendBuf, len(sendBuf)) + if err != nil { + t.Errorf("decrypt packet failed:%s", err) + } + // log.Printf("len=%d,content=%s\n", len(outBuf), outBuf) + log.Printf("decrypt data len=%d\n", len(outBuf)) + log.Println("validate") + for i := 0; i < len(outBuf); i++ { + if outBuf[i] != byte('0'+i%10) { + t.Error("validate failed") + } + } + log.Println("validate ok") + } + +} diff --git a/config.go b/config.go new file mode 100644 index 0000000..3f220ec --- /dev/null +++ b/config.go @@ -0,0 +1,85 @@ +package main + +import ( + "encoding/json" + "io/ioutil" + "time" +) + +var gConf Config + +type AppConfig struct { + // required + Protocol string + SrcPort int + PeerNode string + DstPort int + DstHost string + PeerUser string + PeerPassword string + // runtime info + peerToken uint64 + peerNatType int + peerIP string + peerConeNatPort int + retryNum int + retryTime time.Time + shareBandwidth int +} + +type Config struct { + Network NetworkConfig `json:"network"` + Apps []AppConfig `json:"apps"` + daemonMode bool +} + +func (c *Config) add(app AppConfig) { + if app.SrcPort == 0 || app.DstPort == 0 { + return + } + for i := 0; i < len(c.Apps); i++ { + if c.Apps[i].Protocol == app.Protocol && c.Apps[i].SrcPort == app.SrcPort { + return + } + } + c.Apps = append(c.Apps, app) +} + +// func (c *Config) save() { +// data, _ := json.MarshalIndent(c, "", "") +// ioutil.WriteFile("config.json", data, 0644) +// } + +func (c *Config) load() error { + data, err := ioutil.ReadFile("config.json") + if err != nil { + gLog.Println(LevelERROR, "read config.json error:", err) + return err + } + err = json.Unmarshal(data, &c) + if err != nil { + gLog.Println(LevelERROR, "parse config.json error:", err) + } + return err +} + +type NetworkConfig struct { + // local info + Node string + User string + Password string + NoShare bool + localIP string + ipv6 string + hostName string + mac string + os string + publicIP string + natType int + shareBandwidth int + // server info + ServerHost string + ServerPort int + UDPPort1 int + UDPPort2 int +} diff --git a/config.json b/config.json new file mode 100644 index 0000000..71a764b --- /dev/null +++ b/config.json @@ -0,0 +1,31 @@ +{ + "network": { + "Node": "hhd1207-222", + "User": "tenderiron", + "Password": "13760636579", + "ServerHost": "openp2p.cn", + "ServerPort": 27182, + "UDPPort1": 27182, + "UDPPort2": 27183 + }, + "apps": [ + { + "Protocol": "tcp", + "SrcPort": 53389, + "PeerNode": "dell720-902", + "DstPort": 3389, + "DstHost": "10.1.6.36", + "PeerUser": "", + "PeerPassword": "" + }, + { + "Protocol": "tcp", + "SrcPort": 22, + "PeerNode": "dell720-902", + "DstPort": 22, + "DstHost": "127.0.0.1", + "PeerUser": "", + "PeerPassword": "" + } + ] +} \ No newline at end of file diff --git a/daemon.go b/daemon.go new file mode 100644 index 0000000..f767af9 --- /dev/null +++ b/daemon.go @@ -0,0 +1,36 @@ +package main + +import ( + "os" + "time" +) + +type daemon struct { +} + +func (d *daemon) run() { + gLog.Println(LevelINFO, "daemon start") + defer gLog.Println(LevelINFO, "daemon end") + var args []string + // rm -d parameter + for i := 0; i < len(os.Args); i++ { + if os.Args[i] == "-d" { + args = append(os.Args[0:i], os.Args[i+1:]...) + break + } + } + args = append(args, "-bydaemon") + for { + // start worker + gLog.Println(LevelINFO, "start worker process") + execSpec := &os.ProcAttr{Files: []*os.File{os.Stdin, os.Stdout, os.Stderr}} + p, err := os.StartProcess(os.Args[0], args, execSpec) + if err != nil { + gLog.Printf(LevelERROR, "start worker error:%s", err) + return + } + _, _ = p.Wait() + gLog.Printf(LevelERROR, "worker stop, restart it after 10s") + time.Sleep(time.Second * 10) + } +} diff --git a/doc/images/afterconnect.png b/doc/images/afterconnect.png new file mode 100644 index 0000000000000000000000000000000000000000..190a19e0a48a2a7bf9cc521e95db1f4bc12459ca GIT binary patch literal 46770 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 z zM#Sm`=8~^YL3X$?!QukB7i4aTL)dQU-0+%B+qj@tUPyWoxJ{BIIZh#+SC}MjGJP! z5q>{C$G%c;G zuIE>qoK)mBk7aozr%LK^(TJsmHafswr%+uQJWqVMnR02%F4gr@Tt1lR`%RKOzmMO% z^4t{BYo8XC=5qThavxg!t@u8tr-bK$9?qqEXM1zk{=N0h+euGTc(UR8Z+q|E&zK%R zcZv7Ckl2}1)|^m+YfNT-Dc{n(Mx;tLN95!x>rb4E9;KG%tDIEXZ{@W=DR(+N zK!6!mV@=Mk6wwQ^k?}jNAUW`)3d`eFDyR3(-`9nt@K@^RYE9pNPhP3O)0e``7J1~1 o3(>y79jT~*3Vpkma%ulVd)|2u*ahNsrh`O1UHx3vIVCg!0926}a{vGU literal 0 HcmV?d00001 diff --git a/doc/images/appdetail.png b/doc/images/appdetail.png new file mode 100644 index 0000000000000000000000000000000000000000..fda68fa139246d8e9e84a1f61aad38a2b9f54c53 GIT binary patch literal 30300 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 literal 0 HcmV?d00001 diff --git a/doc/images/architecture.png b/doc/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..4996623ad0534cbad3cabece5c38b8288df5aa04 GIT binary patch literal 30770 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

t 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 literal 0 HcmV?d00001 diff --git a/doc/images/homeconnect_windows.PNG b/doc/images/homeconnect_windows.PNG new file mode 100644 index 0000000000000000000000000000000000000000..11c29330b236567ecec644ca82bc4aa2ed63b7b5 GIT binary patch literal 122497 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%0AJjB%>|tpL8HHj1`&Hf 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 U`qlgS%K!hc-LZp3`_Eqee_chjDF6Tf literal 0 HcmV?d00001 diff --git a/doc/images/mem.png b/doc/images/mem.png new file mode 100644 index 0000000000000000000000000000000000000000..350f29d0323bce5b876fc80f70d48c63217e87d1 GIT binary patch literal 3195 zcmV->421KEP) zUuYCb9>>39)S#ZL3vzmQ1fxzCTqMhB9wb372rf6SNXUZ^;j&)98y|MhgdOI|B@ZD! z1tp3;I41-Z=D~+B1TQ&uk08j1gm`cg^xTXl67KMpJ-gE)g9WkE1ZQyHY*2ms2%n7YcVx7g-x3_fnnV8!^O! zIq7fzE_XJVTITr@u=&So=fXR+B1fsLRJr{k=;asm`~@8@Kc-Ub-Rk`sjy-*U_$0(3 zha7U~DE!aUN2bTpf1l-!YUh(f4msp-xrBZYaRC@W{q6CXr}PZNRGxQBFLHlB|NdWPzaJTY zZ1^z@!}v$ZYx>-9psm#qGEB`ec@q1!g&Z9{iA-MN43bCMkes);{``6L#3zLF&8~kE zX+y#ZoRNQ{(8>9QY{ZWSgRhckUO$Fmn6f~9_mT5hsCGUogey-U(bL^k(v8A98|CnJ z`c6sdss>eru7vteD`I!k=xVHHhH4!$N)974FpH6B*cfGa7ExSyb{TE-CmBNf`*2_W zJ?|MA;(*R%7N-vy?=@O1om&oG#yu%tg)*hkuH{!?A<>48{=BxZKZK$_^p;_yZuVlJ zsSRf)Ba$3pbluFtNefKJ4+E0ybpN(zQW-dvCqS^r&#Jzbp)OYv$Nj7*r_cuwmTldb zzG(lVl8%RPDA1dqWX-@&y^zao({iL$`5d#urcDmMvQxAIk%≧pwQj(Iq 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

&8rg#e* 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�#YO7^3v`3j{ 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

  • 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 z z$fZS8{*m@=1@})Eb>(s=)|3oqKYi!Gvm^%k+}T(m$E@8U5$+^)q)|crt$Y9YU_JaG zbhj51wV4;pJ$GfDd59SQF<7cOJc2gd#Ng9?Lwxxmua9yFI;}zIa^VAZJjaP%b4WI! zd3!vh%pftuTk=b*;>ZdFjM#vsb2cm3{-Vy|4n;+8*7@DkZe{Y~B&Kfy_BT?GF)pL` zGA!^!F-qs2YMv1^D-9H<^l%raSO+^=3!l71g4+8Kz83U0$yo}g;M{KzenF}*REDM= zh3zo7S(Ua2|?Y?_kCO zD4WB+P{m;eP2pQpg~g{r0UWwgxzbJZp5UHR)^)8aZW1Fh;_VV5`;=(H%NKpEXiQJL z`a!doODwVrL_u!g^AgNb>y(!q%_a_DX+bhszI+=7k{TbiMcj;l%9>ZiA|Z?KIkfXt zhLCJ*Y_B{=BHx2ay~TG(uKggB?y>?CteVB)SRz0KZBsA;e)-ce6R%1ut|}%X)6q9Ed{Js)tJO$>*Bt z3>5%mc~m>X4ww*COc8{x<3)+{iK@9;Vc6^mGFZ9HHcLG^k~;}vR354;=it*ezfsU0 zfI%ScC7f1#s>%#oJfFC6@{PJ6S_@ckxC$7?2Y!_)p8kA#2Ea*$N$r+5;1LcW$YJBo zTXZLkRe^GDbu&IB>wSeJT{`*GH)7Enke2FSZccmdhmT<=U}pGx90s6WydEC*U%fS7 z-QK`|`9DUjZ0#DMQrH}+I%-9RcsyRxFkaal>mb8XMz>nkN=mb1 zr81JW0iZQ|J{YP=MH*8V^fR6j0{!m=mqR!_xi|0U!^T3-CpaWRQQ6h6->QhN9R55B zslqtRrGh*{QOj8#Oc7apB9HPBW#6HJ@9Ygy$mUG?QJuy@--aE{8v#vSCg6_?Lv@?9 zS93UuGpk+i?h*CG{(}PU#r-W-d`)8hltA+)U=AWkr4ylGj*R!|=__RAsrCiH0Ejh% zN&N(1QdI}LN7w7Dx(L?Q4qK$ay~Ye39Amq{ukadS#<6y-Jja;nODZxmX7LA7Y@^av6_3z%g9 zPMdt?l+$M7KOsl^GXBpXN3Ut5?DxoTHk&K?0O`n)>$zmgu6|S8XThJwqUyO8s}BAJ zLP7??T!64*n6G1 z32U>v_>JqGRwi~O{}u1nMXF=x$i?AwsMJ@ZyCcZpU{73SJ&WWnf-3Yr@>8ou)(PmT zW|l5^oL%2nM8qif<&@vt$otUjKPn7D=7Xo`q?)oROp}le?3`-F|8~o9&!)RSokF#j zSk>=vzq78^>E4=J>);;4DE;TsyHdxrR;S(Z8Ebuvpd+eizJKtf5gqyq0T*CtQ09H7VGpTZ^-!muBmH$CHu^SX$!g*0{=hPeSHdsR zUXOzgbfrXBSlWf=UDSMt#agl~N|1w%@~>Yk<+4vv<&HitR*hNQ)&A-o&k4BiK4Y&2 z%;Vjm5US1Xi-Wr{>+Fo`SDjNci9R~EM;*vGzSrnB`l!rZ0P_OedZV2~tW8W^^{qmJ zJrxTilPf+pQtOqr>_?@o9gT`6R3ullkB{^{QZQ_g=DGQj(T5y71Qd6{VYWBN@226Ykh^(<7s z03LC_xITbG^yGj(+`|WuYzfr3SS9Ltb+mgYpx83L55QgKK5|PzEI9jkdCJ-PhC0z! z0AO+II}Xvy6Ef2aw}R4Rg9>0rX@BIZ-i4~4EiAwQrN4A^aA{597XRcqy@Pa-*hb6i zE2D`}fol+|?3DeB6X72=x7^Nx4ir<_ZPKq85_#BAU9scs0YG)7(MjBQ3s7AZ-(O-l zx75Hv^;R1&v##)bp|!NPVB3P969lv#$nFHI+@wNPN$yVk{eT=SebVxn*^Whg)~bdG zVp5w4X3>;dlGXQTD&JWS9M3*DTwZOZ;hP{j>r#=xai$A73z7$2IK}kw+I1xIq{1R7 z5p-=HI#QL3KU3qXYmNK5sHztw6hh1CRpdv&-?7E9R-i>L`pGpm3+t~owvm4-bpJzr z;g$pJ3?p$Uf}5pn-|Kwx{^wo#)B+`*diXGKU_7X;>5&fXnUIW$?NhQFs8JF5dvAw$ zGJo8`MH4tOw!$Lf-DG7FyFt<+-Qi0Mot!=E8^-Ut=1H>+gmKB4+{llDQ5VZjxb}Tl zh3>nESl4I)W?74iW7$`hW_ycqf)m*Y|FSt3OgK|{8%_CX5HM%&TCBJ z?rZr%SiIAHz_(caYM%a?Sgj@rod9~Ds&0a!IO%~F%=mlhOj-@EsVO>R#sS8UwyEEFKruJQbf=#KJfTJ!6 zGNBe1Exq!t&uSlS;1|yp$=h*@j3&%Jm4|C_dyb$ssL9| zfY)J8|Fz4xuXLQBbI=%w#GHHJX`Hg@-;A_VH?Lr_Vbs4wNKW$sHQ0>L;lMpf$AH!! z8w@+Zr}lak7#h=u$saczN&dm-pu5JNF}f?E%;c`eQE+hP7BEItaD+uZBfH0xvM7Z! zT*~u3YDUmbujW`r_G&kY>G31xg(#mD{2g9(Np1>!gC^)9?03c0`nTq0k`8%|27l*A zO~?ysgOA`DQKWWH4|C7Qh-nDo7SzeVmI445p}I-4ASfdMOXt@GV%8gcrrPgpQ9jIi zQ`z|g5Xi#*Z}9m4Th-K$=IFY_!62-)0fdUf^_sJAt=47(K2E zYeCr?@KZ+CR8ic}?^r6408p`PwWT6Mn4Y2TTUZ;2xlxG9R)r;;;{dZbbUqoxm3O9a zIlLX5q!F*)i&UCQAZqQQ0`JGnz!GmL7m^bZV3p9H^3gh^Zv%nL0)1J^w=ySa3ae&g zvRNSzC#DSs6U|qAM#8=NC5a3~P_ZiWXJ%}k5-dC~mj{W$f+VV!@_!{z9Z)k@7<>Dx z8DZ5HlLLQF-pByE8&nJtmf_G`oe%%Jz0WB-Yo466r1s?^B(i{0?} z_Ar57U3itc7Q>PE^41!RHHLI(MAR(&FV&d%{DJR^F)?aZr34cboW6eElo5LES0nV^ z#m}3<$3zqOwd|chJ;tuO09jNHfZjz*=wton>HHcrmX{scshH(1=%-8uAS_XmdNICONCt4`1Co=&TfF){WqI1hEH(Sz~7=TQJ@dgVsu zP^R9Ily>`c4^j}UfJRwe0{ODka~`h=?q{M#5)HWQJ|3GbZhg_zv%*>PPHj=A-uQL` zRvDC=x;+n`g6DqX^g8su3FLRmdSy`&+YNmEK58y&KnHZunv+{QcExccJ)I66drpNr z;JvUaP=nnDv?-9lmqS94rdNvzwQXVU8quDtsj6}K%T{!DZ9qLxAlwZ(I2M`+uehf9 zOYH0DV3$h4^}g%uoL>`)Y*GPLHAa8It< zz%aTAl;g5kg9y0FV|U}EqliG>+5|x(*jocz%#CUfmY1Ze-fvSoxxtqAT^DPZXhi(Y z$}K85GvBR6wkM`fZE{l?i3iqSvKE?f16E`+V_5*Bkz>2zwM;301a zNhK%Zn((3=4jape&ZLnIg49tdZy;>s zr3f2}*;=M+0^2v~m%FX`Ybi5fqZSTaJ!Url(_(^~hBr|A=4eE~2lG3^HUTY{JOpri zYt;X`AB=hw-qLFhlJ`ed|5*Rd|5pDB?kk?`ZrYpvLjml5AX^kD(tA+=k}|@%`|5m> z*#~~`LB_`GaH%4bcc#$+tg zsJ3iUmKwV7W8zr(x``e>4RB*wAY9~{8)9sj90{G=d{Y2mWRbm!d z-vwT+z?|I0#q=1!(Z}16AF@?@n2^MfELX>~0JWS2J;u`zv#VFy1)^z8|2UYNccd~GiDGgKr>Z!}Mfci@B^@IBt<+6x3p4K)J=^Ic#_qbSWMXNZ=m4#GW| z=YiPNC5Ry;WTh1B`6wXZi;$7bb@CigHOh@~7L8^8U8KC0Y5vn2Ql@(+*C1YBeh@EQ zLPlOKvsyhgQ` zJ;J)SMLAX8YeGGa{H?kl93@UOpj6M^Gm;pWS;26ncdQG&qC(|7vg>#kEAxiv1S?n( z$YaZ_hj zj6GdtN{iCs)XsDe5Y#HQZ({+q+mEv)vl@c@BHc`ORG&L%H;3b_Un?&^_rV z)GmsVH{w;E=!WtrQ_%{8l!J6>9B2tPWn6Xn|v+B!JKwY|UOHf3vrH*0+ISxO3Ta z-6c=I4GgDT=68_g%Ivd}@sOvQt3Cz^ag?IX&noY_7f0bR7lg^LPICcI;B;kx z(iEK!IEsa5hn1GD*ErL7-W()WUHnw#uwQOU7-g(1GD6; zWl=&++Sr$i@ihrk=8ywm{qli7PdLh;uG+DdxG2|2t+4y+x#ybpG z!!Zdbo4;`mJEjcU$A2PobN5tzv|H|3|AAYj7oe>=7$!1!G7Qab{%D=MiiL4?WUr9Q zFQG~9Jr+dJFUjHA)>Pvja3ai#gQ&39%;7YNn>LQUKIsP1m}%`skG|9uu4$Lex|9`m zB3{z~Q4zA~r5b+)UeaN|_`z5=jC=p(cNX^gx20UmpGO4qO>}spxufoSPu4nFpT4KT zj%wcP+3aT=v)>B=o_kcaUpl_LG1imV6>xHG{7;b{esHd6wIFBy+@lrUve+}5&%XS@ zU~<0O5Ad)D-}h~%CMm)W9WXRJ#DS#*K3+V;;w6Uq<)%BfhZSq$m(o+Me}=0nT}MZ6HE%HM7fT8m^;X?_ z(>G-<>HKK%CL3UuYXMf3=||iCQxxzIqb5RVHtD0=iGi8msq1zp)g9((Rn;qTt~-x! zFH!Cg!Nq@lH21~dBF}&99RF+5+25Mg|JT{FRWz*Qg1#{0W{XVpXrrwkodo%EtXBmx z6gQrcWU*FPS&+ftcap&AOEhc36R>h@-qS*rW$!7~x-nD-3atbuC0HA15=%M2j4x6I}P}oPk8W9{RSX*Sa0Q;bp7RB16b80`dLWv!c zqV7a!t)L!=(Aux!>#IihZW2M?eEO&R=Ta?zqax{ za;0sPh=Xtyz!+@wdamVw z2UGwi$IF-|wFc*6Y&#rj9rNI-8m`wK5s)WfLSW@~<^SxJi*-nsv`_g)mm@cC;?ey~ zXp_rp#TwxA3)9ikW?AMIEG?wCGqb0%((iMSv8rDgIW`zv=PZ53GEi9#al0Q#npp!3 znkIL}^zoJ6oZ{7XfI2j$fwdZygDHCw!hs`msNEJ%tw141ZvJ#Q_F^StAFXGoM(U?3 zsDC(it>LY3kII4b>@*TU=03oT7aaCDXgE+lpSb7;<-VyOef~+_zx%wg^-12oh?A$E z=w%IsJ*2nCWIv6=BGd~B;7iB8S6@J_FdH;u(!*+IS1R#@*^UN}CqbpoCR_XWqhZrF z^XnEm_LEc5002nm3DxzOlUv2@A7Hj(p)T?p%QoEWKj#DyEB;|l0MFRdF?mDNpEmg- z&xX=jGzK35;MM?)mUG4I(j%7pYN=~6W0R+AahEo*s^lVy6nf-hX!sLyQBjj;6YHA0 z8v_hap#~aHB76?^6mX#R#DkMARb?g}Shl6Ydo&O!70xLZePQW}rGSRRTgV!0M9S^-`FjgncfMb<;NFS+lm-o6+j#gz?^=Sv*|Ky^(SI z1RvWBoyZ5MzNMP??Y@O1+<^Jt-W*xXDAD)~gm(GNpFJ(q-sJNbpA_3?`J{NA<>mkf zlVjRHV6~oWk$cN4nR!VdSsZDVn~qU0X%V8b9z8y_+n{TC+t-1er~UN%al_6tbWdMX z!Y-+Wgb!H#7oa08H!rX&Sdx`n{H|P8&ihSitMoj1s>d*|!Ma2Fgj)>W@p(=+b7J$# zekDQ5B5Pw$)NHl8L<8DHh;7B%ZrgrmH_8}hQ>c+JIRGFucRUt$S`dYO-Z;qtdCG7K zr#^|Av<=8u!#xajWO8dng}mx=wkeVY?7 z>iF0AfUepox5rEny2R0L1v0Sx4Dum3W%fS;U~ybsiE z`Md^8nfflCSzN-}m)mzduc_Sd^4w%^%+VOB|9hIJT(3M^aC$lLEU}WQ{qo+bA{oO; zW@hc)@}!ewR9AcvIuP0js}6yfvJ;n!BPba@g6Mu|M&E{exm)c7#YQmF3WtW>P^LH( zUPM0U6lqeZ^QmCR`QkiP!lbhf`|Ef3&6Q74$gcg$aMl1%OuA(KrMWl%BjU}#S0wJ+ zfPq(kA#wNcJBFindPNmn(O^x5FBpJ9e-Ux*)5UJ}3wirMyq-4+Id_~@$-=4r07zlT zv-i(Xw?(kI$(Jy?oZ%F@)zj08x3~Xo4lFZIq{F#c9qfL^6V3)AW^?bOx@?}JoDN4@ zN&C%-Ehd$i&12ra_X_H^J;pXy`LdbI+B}Px>RX(~DoxY#yiX}6@&WQzbN6;VQdmc& zQm+HCyD%;GE35sSjT)(Cj?^e?oAZ{Ju2eI%MAt1&&A)1urwlg&vIe%1-|t)k5ngZm zhSajo>S-1SQg??~Pvx;?}rb_U~tPlD6T9)h;pU%9rnr@oT7Y zu4bx=-an(WfLm2H4BJ-;-3T`8w4<^#N&xpfm486!+tI1P3^m0Ud%mDJHVZGILpe=W zq{fv_aTL3WgZR8O9CN3;tMJT9H|ivN=Bs$?#WY)sw!bpO@r8c*Sxrgh)c7Xk`k-n< zOqpspenvAmY5Drlxvy+3ng@J%x6UCzG)M`>ZW}!WriJ?+wWgkGroIVdJgB~2NK2@W z`o6t^&$nq9Gx>zfZ13Lm@7k#ej)BoNzq0;-)xa}Jl;-3#8&E^+T|#-O+)7h;2PTg4 zDx%`7|L`6Uf2byWNg42#1 zMg_C{XCWX!u>TOe#C;o@djbU4&!{~OHju?~16!3-cUk3}zMkwPTQdu~^cjGYEYCJ) zVSg3^uddZNf8Q3#lGbvSVP3^pngdt|;mi!bpgCY^>)ThH2-6Pa&3k{C}z@@o-zoq@YSE^V^dM_N7)G0^XaOg&BNAyblvddPIW z{A5GMZq+@d%~;tX$fi@)7P%F)$M+&idPJwvPd8jKeg0?~z#Ak0@9Uhy4RtuwR8a5f z48Ehl6!qQn3QeMeJ|BJH?DotAZ-y=i>Lmp%dPA_BiQkp6W{`GqyrW&F8UhU_Gg>K4s> z#>T%#Bmb>onE5r}uj~BG|DJyVea=uwL*!sACZ2-A9)G~xk(@@53cOXqB%DRD+t!aN zuBFg6v=Uw(IbjeiGRLau6gCi7{JRyuJ2bX0^erl7yu`Fca9qNvd;-nwT7BmtCP#>X z=ivy9RL^o;T%whWibA)GfJ`41w_ZY{AB_>1vks5;B_yU6_lTt)>^I)aJzIo_c}!&LwN-;lmKYjK_D(e>MfL%8eZg zyY|l3XsR8vtb+!piO-*v^5(`<&s4;0C7)rqeF$aHciAui(79}T`;}uyE5IdkTTWYX zv#>VHui`-I6w zp8)#qEuVvclNU07jk36>LP5^F2oBbCG=R17(s zefPlGCa|T`2*f-gQr)Gqq$Y_t<#2ZtY&;p(3?dsbeDhV>+7Wf&q}XKyIFK zJ9`BeT1uzhKZ`jih6BotC$zI8(Ei=7c-^q5^G#Zl^QZ;A^@u4Q(4%l3;RI|Nr|SXA zWBjX4p0HBL{xg>{VR6lY{c;QNBm&h|v$O$yMM8KjhN3D{cb8#dh!vUWbdDkZ7q+4_ z8VZD8Y^Hv2Q{AX7GznVJgfQ{F8Ccc%Gly$0ozW{?pYyG}->$Xv2rZmlS2BzKwWZMz z-1s%J)~h);;!0&eX%!4{{OzmtQ`fovB9QBJbn%g;djTHqtgf%cySDu) z!6jKaM_cEfi0=%E9ISiZt*BU6maqG|ybk}*INUuJMa)&|j`Up?xWs5R{4$;!wUKm5 zPRgXN|M`v=(c%?yeKvk0Aba{vIlf4WtyG3Pn*x#+Jvvz4_Z)<9e8Y7Yzgw z-dJ~a99n3g9~C@%FOX?52n7yzH?H7%j_%Ums$%cjED41q`s?c0A1A0Jt4;3^*#yph@NM5sQ0KT-Iko+zlZhj|9&Q*x=3@{YCy_t|^&?@&IH^8c=wLjI_j z+5lzk`%5wPKi1n2`KakiK1k1G{FdtM{1&f*PONuX5ttr^6~0Ss`tsvd|5{h4ztoa6 zhIbeip+DU{G6$g3TJJ0olS(%mAgp!qPv4KFe#@}{JSB+Z1XQjMVNK*nlZ8h%5GO2n zkNyr5wfvtjQ8($wSYfUIFb05{9Q)b4r9*S}#N9CU^6nNRRc=cHI>I^9Xc(d@GKr?J z^Y3~jsq868Y8^B94Y`MU#oGu^l)t|r?;5I$pbc!E7-J6?qqWdqr z?4j-&(Kqyy+Sf2Q?#hu!34Zxcz&s4tnqPbKACf6H%{LrR=MbF zFs9XT;n97U(hbXpc_wS@DH}TJuqugS%%a>M?#5vG^sRd2J}* z{4~atZBO_&`mZcsSA1G){*%blNoE~6WR>DVXBIyz|58(GuDlSCiqWJoNQY$n2wIw0 zaX|qBg34x24A^frzrU8eUm=EyMo%p6b@(gbS10Oc1mQifYxOsJD;_*b_+RDw{vdq^ z2=A}z{vlt&q0}4l3lVPEezc_#R@zuEZ$u;@yR%08RgI6hShdSz`ry9&3It6Y+!x;3t zq^eo%cv8QL0u=k_YW^3Yyhiswh?G))6e*R4S@{`{H)8O^RGKF0_BLANJEEM}-qez(=GWk(Co}yJ;;H&ys7@PC95q~~!By*_zaSz_cjC~&}>XiFx2pnP) zslQ0)dlDVo89La_L5)CW#Fz;$Qx!_b6BIq=g2hyPPBLBd;AP}SKBwKT1Ijgj7Sbp= z1edMzlWdiEq{dUP`c}l+jCnF+KOk-Em$R)dZV%?lr~{~(MN?hH2MSK0(Jzwf*W?9R zjcSEVXHD?nRKL&}7VC|J=WlDgsY}n(H-Iw?E&$w;r9H-!CFgOw1rH-XebXKl+!nPw z$y~y{>-8tL8wy$cT)r@m;IPyS?dA@5co(ZUl-}rEdaBntZ0ZFbrC(c;?SFLX!5_#a zHz+{N+aZe;M>C;Lk`B!aMFAJx_-mC`1MjI}ierQ2A8m@^+wt+O@7*WO$odOjcXVj^ z^KXSZYJ1y*JD8xm(D}$Zs{-v@O7;R>3ECbgXO1Mlo#X>o))U>=HmvR4j1lTU%FB>I%-& zHVD(`7Ke~0bw@R|Pf)$1668#g;rw*YH-q}8KgFKl)X{xH^Y4EUth>+$+ypC>~ z{8JIn$9i>57_S}LVu)@Z9G<%VWvMMi2afIy8o=3bduX_}R`xS$!5$x@k`yIF#Yf}*$~ z5+We7obLg(X8Zo0>-XR9_m|go058tXIrq8W_viC|zp@gJ!kQJ4yXA>paC8^Uo*5gC z%~0f4FAj!P5-G$~G$ZFf3fga;+GEmxhxK-+#`pOi`uuKgmIaZklxhukuj_fJCmqw` zYpT@N`<~ia)AGzR zi|=PrTVo&oae1wcPmM<0MtnTwdwAFW1_b!?=)(P<()Xi(5ZP|AnAkWm;dwBTTwhTG zZZd&}#E;5RfjO!lTPO4Iks(=ygN5x_Bq@o`P#zIsf}2}jW8KCi%luPjb(x9~>vmp* zaCbZh%Cb3lgjU_r`NJi1^keR4+pq8l|EQmhxVtJ%a)O=? z2KkYBc?jV+&C{&$%0D>bL3%`-7J0pxC6`Vc54 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 F{s+4}2Ot0d literal 0 HcmV?d00001 diff --git a/doc/images/officelisten.png b/doc/images/officelisten.png new file mode 100644 index 0000000000000000000000000000000000000000..6b333d40790412d4ab9359b2fd8c4eea20b6f7c8 GIT binary patch literal 80131 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

    ~%Rw#wXF%&OyZbFa*W3{W_ zSmoinPNz*CTfU)9=)BzRTNdmO!?<^dKfAHlrW!U`M;$wG9fV8cTzrR46H3rlNb=AL&Acud zt^r_m*l6c@HgEIo_Hd%olky?gSVn6wpc=Uj$y1-FWUG3r5;1*8{Ns&WZ@WT;X|XI( zZpv>=bVaeL&8_}LlYJM)Zg~*YIZ->#eXDd{WXA8MZXrZ%3ld2HWSI(@Y8o1fnrE~V zfpt#rCg(G&?@P;zCDoq;k|C1%O0(E%+&MF6uSoqx?POD=2a{MBPP(SgPwB>4h_E@Ve z<26UpQHA-)+=&gk+mSRJ&I`vDxF+@%Hml!_o(-K&M~h?39wD{EJUk}?JyQlv0yyhK zQB8=#uqwr4o1X@ZCdvyzyFc!4!syy{mdc59`#%TGkJDS-{W7z`{|4oj3DbFnxy-oF zp7#C4#v@YBBK!ppR?@dD&fN$#k%$z=VyyD~#E3nM~DdFC?89JM_PrGgNh+u^vpyhH0 znyHSiMrgV(y^p_7rw?^~lT5E%Ew6h^R)|9s$NPA{(KnGMGnW|%PH=Eb=HIz%Fz_u{ zOe~`*XdS+OjqTvg2=+wJM1-Hf;4{HsWVrz|&26?G924`S;N?04+)kEk2HPzC!iQcI zet$o@@kF#UiKla@EIP$N$b*)tJ9eY;QIA81R6s@oE{uJowyI!?;6y$i*Hi_^kE-{~8{I-`(l#{rq#nTqK0RUd=&%oZ>a~sXe(jy?< zB0{wMof2?c2P3Y~V)7TuvY8*-CmOdmZMQTW(tfIObUM;O@xP{0n<$WW-z#)n?VJqp zqxFMyV`i(t?;Op1ng8m5w}LuuEZdti<8Y__fEKN7gY1kgBji~>fYoj;8U7C70yfYY z?C(o9--}pG?hKW76t)T1d)HS`{p>p&7{l)yuDpx=ymto4F*AGf$f@bAi z`umT>G=I*GZ_UabS9u@p`7NYc!4Bj3HoMlYiy(BRin0%R3Eize|8Jy=NqJ_b*|lJV z8-^k;-ZJ&UVrqU-aJbl^wVf;DOy=Mq%gp8hG#>E8Pm}Ch5dOOYxp3P)73K8K?Y%@ zd!@6(GCzc>^a{Q0H!R-eGE(n%m3uZcBIY0L4WOScA2lXRmh7!;o;;O=*oTX#21Wxq z#6e8gZkF}pWbIZOM`&{#EItT={@LFw3764l5U_>t>=?;@$p>{B zTD%{8D=zR1l1f*FfFkp;S=tj86qu-2VXD5wUS%!x2qi35-HqSIU&4m($N_Rh1fAv`yS5g z`J_R%4P9SSr?N;>@+$vX;hxk?~)ZI&HW;bD_2Ta+Fy3cG8f=#WQ8LOxlwkB}VJEkkx1ETMW_Z zE=FF>CFSG`_YkxIbcIg2a%}q727}}jp1>NI+@j{OiEP#m_1^Dn^JBN>-gKRbp2XHt zj+?rdIW5Auj3XY))^TfBR;TEtK30;Qzkd90uHyV03qOyPOYO718_2|&0ihT0*$B$c zcM57Qgy`Sn91{liuaCc@04Az@!uqX_PCEwW-7mEGHD_k#6Qc=d*~o^M*_Zu5(x zo|~G22|Zs*&0hDO*a;1aJ-uId(A9HkF;4Q$Q=W6D=idPp8~dV6A@ly8!B!oI)NsLh zq}>_KAaKE+QAt@-_VSVYz>R_oU!E_F4W8s&Uw!_Zp%`9K*mJJC>#BiZ7VtA(U-bW zN2{2xgvg^E}b?<_Pv=+F@Ib8#NV5(=A1 zwL#GC%zy5_W|!x?Oyixzq?k6fW+$g>5mv>mTabZD{T?wI_L@F?AaBh{zqu!>BMLag z_dZxMHPJ)wdtv_Ke>n}D4Z*I7n91m^`<$LM9WH&Qn$hCJwR)e*pR9jo3uhEE!_B<> zBA*(!2eAcyZ0^Z;;wJGia8lz_B>+F7!swmRzv1=AGzEQtMZvp3U9cI<;tX#tG(B3Ke4Zh{~!qDG}E3Fo-aOnk=Fwiwhaq^#R zp^u-GVMjnySDl9uS4K|WMU7m!NgSY5co33vVL|`W6%X1PP&hEnR?Z2AHY`Gn{STKz zQ6&{{+5jJt|CXP#DRL|5ldCM-=J05wj7C8^PNAXjZTw~)-KPig&p6T_{xHft!rli4 za}=6azOGJCwUFe`D|BE*78!o2e?F$m_e0FwR4V~`%i%AvzvH`Zpl4083p`PyW&LCg zyBGl@ouE-AizH1GK`&HJ>}fN-H}2F12Ii7II{}>wFuHBjS8ZMU`M8I9#0x+C4N>>V zG+~hslv>+G=m;6miI%17{`DNC#C;8o8nG3=J)=q~y-yPKnONnx^zTJP-Jv+e;eW3{ zol}00k-`f(6?C&5Tq8~q5}VIPFE3`WOvwq8F4ie7o;Ck z-ldpq?5M+Ro!6e}iK?~P-S5`8A`r|}ev?=E(okl}jB}=SiT;1Du#ve4(}rHDo3{p9 z=F|CZt{LwcPHsay;!$M{i?oaW*yzKOSXsNy#naP+S!7?G0%RBkArV0TJF|QF_fp zPu$YnOhv{ zlj>pKHgY+3z0F7QfE4pyVx!@}Nud*cDSm=+_Gh>iwLnLvg~fxnx2iv!LKVZW|32RA zQoN@|&79(!V}WS>|G=n@Ak^hW`MP_`8ww!Rw-G2X8LHO=5AgtD)<;XW+8L(@Rz`10 zf1?Y`c!7K8Tuhh~Q)kK!^~Jr)LTn7Nxl-Q|@BhGr5@a>kzm=m~xC|>Zlmfh=D(_3l z%oL$e3SqlrVdHv^TmLim|KPo6q4jQa0yE17zIp@Q8Kz1qfajp|HZJppu2~%8Tg=DI zM&aTxu(FKU*?f7&>y6}E;+a%7f+=xDQ^H@y8M;x(I|!$DNU5$c6!9)~;5+6|(GpsJ z`J=>Jwu05yQ8?kZRgk$Ndz9~u|A{g8#|Mq8ghXjM=Fz;A?ccqh>xKIhW(PV)Z^?M1 z7H{IiJU85ZNCswIHR1tUt#H;!d8CqOUr7Up7I{f)HDQ7D$7W;gf4u+We?%o$ zhs)4hALe_db|(mG=qc&7IR@Ucf)E^RA`U2b5~aBj!c#5Q~`x z>md9kwPFncZ+q~Jwr4N)mp=!V-wl|*t;WtU;p~2={sgyu%yvs+0QqKQI7_^oN*rII z1G5+zloPuKLmy=2+pv{CnuLK{X-+*wk+2=9s@c}FM_t_qC#63@$HIN(-~Hnxkq

    dO8z#aYBHLUk7jtr!{o?+- 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 L8{VwYgh%`xgk~Bc literal 0 HcmV?d00001 diff --git a/doc/images/prototype.png b/doc/images/prototype.png new file mode 100644 index 0000000000000000000000000000000000000000..6243829b29c67c48692b486f2a59d04d5df04f14 GIT binary patch literal 121960 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%0D;^Q8)TB~8 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

    NN0Z4Bni@o-*8Tn6P_NV4WZ9LlI=YxC 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Ð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 AzyJUM literal 0 HcmV?d00001 diff --git a/doc/images/winscpconnect.PNG b/doc/images/winscpconnect.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f0b77f0c9c42697f09cb1a9a9ac849b865f1c8fe GIT binary patch literal 19998 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�!6U$%Vv}9C4*<7V$W! zEeeoOR==uhHm$OUs@SA|z;0JBx=v29o{+L;C;GP`$@>8U*}~9^X%k-g`EO#mtw!8Z z>fAdya?PP;!Jth$?3A5d=^Jl!d8e&y?czlLg(hSw^R`2N_Tt3-sCw}Q02E#*1x-rZ z*=$*Azt$P=0X?dViRh418Uk>Pt8w$Q^X6pj^i3j%AaO?u@8IIZ4+hA%B_w7sW2+V` zU1j%x=p{lFGFyX*hez1&@#3IcCf>_6Acu7O;EsI})}d%;nYm$M8$N95bQKg?w7b8* zH{5ncotrakG|w`E*C+wu4H^;M!Ei^5=sUUnV{ctga^-IDYdzff9$xw^E=6=Gxw zaop%douQo4dm0b#yxJ&alf#o8e^AO8hE7#Dm!04h)haD^9)ehqmOnMYVdayzid*aNZ%LvX&-0%B@kZ@$4`+?x+Q3shlj#sa0RfHfUQC$ppW zFPo@RJSp``etSo}wHXZSB>drb3C$OrYEiOTRDPBC(nLuX113hX9D@!__v>da;iZDL zM^WwWx_IaqLM}7Eu9!`mC3e~oZKY$=y<7(^!f8^n#b~|HB zcOl7*4+kYQzA(P)HtZC-pS@n{v3y!XFf z);9G$|Fq;u;|Hp!IOfb5S!{%LADr!RUlJg*N5stL{5Bv_?~B+uW-}Rokau#^CcJqn z^Py1u;vwC@Z&=LtE-)WVVV>;`Cb;)gohK$brv{$5(uhm08KdA)@HxiGP>mBbH+)0` zAVQ}fGGK8f>E*(i7j-23RLw6JQ<#rRw4jMf&VtaRe3wFkN($3xt!uh`{q)lfCQ3G@ zF@wWC#^9uW(PPs?!>u_WT=0Mz=IgMd;m&vF^X{N*dDR!+1hDgn($R-fNiFL>Ej@RK z(n?LuAaCg#KTPVfb-OgQyUUymPb&0{?5<_i{odrK#Jx=gp9*WR{D_nDfCp+IS zv4PyAg-axeX=%MT|H%#k40WLZ z326otFtx%RZ_*~A#d?a*E1@w;Vcz|E!3fE&peV3Q+%V*J0~YEVXHw6_zdIeHbPLP^ z|GKoJ(X5_IT*8ic>I|OMHwWif&V;7&Xo5{O`&t=2+y6N&3y1sZ2+LoG5riaeQj?S_ zgeO8Go2WTABf;-g-4H?bCa~@`Knas_xXltM|B)*D-Nj1m6|WEp8xgY)+{e`TG$1; zgP?ByFXd_u*q+U3`B$qOCVn||Bvz+u$~3U@Gb>NrqqSUq_Jm3(Kf0cPI9`U7y8a0Z zTA=(wJKo#iQfYX8r(~4Uxqv$122tiJd-s5H=YRdzIzSQg^Pl**=_%o=qiaDmOXb<( k$3MLh&zPT_RIHr5cp~gd;-MVywu;lC= vl.llevel { + vl.files[l].Close() + } + } + } +} + +func (vl *V8log) checkFile() { + if vl.maxLogSize <= 0 { + return + } + ticker := time.NewTicker(time.Minute) + for { + select { + case <-ticker.C: + vl.mtx.Lock() + for l, logFile := range vl.files { + f, e := logFile.Stat() + if e != nil { + break + } + if f.Size() <= vl.maxLogSize { + break + } + logFile.Close() + fname := f.Name() + backupPath := vl.logDir + fname + ".0" + os.Remove(backupPath) + os.Rename(vl.logDir+fname, backupPath) + newFile, e := os.OpenFile(vl.logDir+fname, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) + if e == nil { + vl.loggers[l].SetOutput(newFile) + vl.files[l] = newFile + } + + } + vl.mtx.Unlock() + case <-vl.stopSig: + } + if vl.stoped { + break + } + } +} + +// Printf Warning: report error log depends on this Print format. +func (vl *V8log) Printf(level LogLevel, format string, params ...interface{}) { + vl.mtx.Lock() + defer vl.mtx.Unlock() + if vl.stoped { + return + } + if level < vl.llevel { + return + } + if level == LevelERROR { + vl.lastError = fmt.Sprintf(format, params...) + } + pidAndLevel := []interface{}{vl.pid, loglevel[level]} + params = append(pidAndLevel, params...) + if vl.mode == LogFile || vl.mode == LogFileAndConsole { + vl.loggers[0].Printf("%d %s "+format+vl.lineEnding, params...) + } + + if vl.mode == LogConsole || vl.mode == LogFileAndConsole { + log.Printf("%d %s "+format+vl.lineEnding, params...) + } +} + +// Println ... +func (vl *V8log) Println(level LogLevel, params ...interface{}) { + vl.mtx.Lock() + defer vl.mtx.Unlock() + if vl.stoped { + return + } + if level < vl.llevel { + return + } + if level == LevelERROR { + vl.lastError = fmt.Sprint(params...) + } + pidAndLevel := []interface{}{vl.pid, " ", loglevel[level], " "} + params = append(pidAndLevel, params...) + params = append(params, vl.lineEnding) + vl.loggers[0].Print(params...) + if vl.mode == LogConsole || vl.mode == LogFileAndConsole { + log.Print(params...) + } +} + +func (vl *V8log) getLastError() string { + vl.mtx.Lock() + defer vl.mtx.Unlock() + return vl.lastError +} diff --git a/nat.go b/nat.go new file mode 100644 index 0000000..a00a69d --- /dev/null +++ b/nat.go @@ -0,0 +1,94 @@ +package main + +import ( + "encoding/json" + "fmt" + "math/rand" + "net" + "time" +) + +func natTest(serverHost string, serverPort int, localPort int) (publicIP string, isPublicIP int, publicPort int, err error) { + conn, err := net.ListenPacket("udp", fmt.Sprintf(":%d", localPort)) + if err != nil { + return "", 0, 0, err + } + defer conn.Close() + + dst, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", serverHost, serverPort)) + if err != nil { + return "", 0, 0, err + } + + // The connection can write data to the desired address. + msg, err := newMessage(MsgNATDetect, 0, &NatDetectReq{SrcPort: localPort, EchoPort: EchoPort}) + _, err = conn.WriteTo(msg, dst) + if err != nil { + return "", 0, 0, err + } + deadline := time.Now().Add(NatTestTimeout) + err = conn.SetReadDeadline(deadline) + if err != nil { + return "", 0, 0, err + } + buffer := make([]byte, 1024) + nRead, _, err := conn.ReadFrom(buffer) + if err != nil { + gLog.Println(LevelERROR, "NAT detect error:", err) + return "", 0, 0, err + } + natRsp := NatDetectRsp{} + err = json.Unmarshal(buffer[openP2PHeaderSize:nRead], &natRsp) + return natRsp.IP, natRsp.IsPublicIP, natRsp.Port, nil +} + +func getNATType(host string, udp1 int, udp2 int) (publicIP string, NATType int, err error) { + // the random local port may be used by other. + go echo() + localPort := int(rand.Uint32()%10000 + 50000) + ip1, isPublicIP, port1, err := natTest(host, udp1, localPort) + gLog.Printf(LevelDEBUG, "local port:%d nat port:%d", localPort, port1) + if err != nil { + return "", 0, err + } + if isPublicIP == 1 { + return ip1, NATNone, nil + } + ip2, _, port2, err := natTest(host, udp2, localPort) + gLog.Printf(LevelDEBUG, "local port:%d nat port:%d", localPort, port2) + if err != nil { + return "", 0, err + } + if ip1 != ip2 { + return "", 0, fmt.Errorf("ip have changed, please retry again") + } + natType := NATSymmetric + if port1 == port2 { + natType = NATCone + } + //TODO: NATNone + return ip1, natType, nil +} + +const ( + UDPPort1 = 27182 + UDPPort2 = 27183 + EchoPort = 31415 +) + +func echo() { + conn, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4zero, Port: EchoPort}) + if err != nil { + gLog.Println(LevelERROR, "echo server listen error:", err) + return + } + buf := make([]byte, 1600) + defer conn.Close() + // wait 5s for echo testing + conn.SetReadDeadline(time.Now().Add(time.Second * 5)) + n, addr, err := conn.ReadFromUDP(buf) + if err != nil { + return + } + conn.WriteToUDP(buf[0:n], addr) +} diff --git a/openp2p.go b/openp2p.go new file mode 100644 index 0000000..3e14bc8 --- /dev/null +++ b/openp2p.go @@ -0,0 +1,158 @@ +package main + +import ( + "flag" + "fmt" + "math/rand" + "os" + "path/filepath" + "time" +) + +func main() { + rand.Seed(time.Now().UnixNano()) + // TODO: install sub command, deamon process + // groups := flag.String("groups", "", "you could join in several groups. like: GroupName1:Password1;GroupName2:Password2; group name 8-31 characters") + if len(os.Args) > 1 { + switch os.Args[1] { + case "version", "-v", "--version": + fmt.Println(OpenP2PVersion) + return + case "update": + gLog = InitLogger(filepath.Dir(os.Args[0]), "openp2p", LevelDEBUG, 1024*1024, LogConsole) + update() + return + } + } + + user := flag.String("user", "", "user name. 8-31 characters") + node := flag.String("node", "", "node name. 8-31 characters") + password := flag.String("password", "", "user password. 8-31 characters") + peerNode := flag.String("peernode", "", "peer node name that you want to connect") + peerUser := flag.String("peeruser", "", "peer node user (default peeruser=user)") + peerPassword := flag.String("peerpassword", "", "peer node password (default peerpassword=password)") + dstIP := flag.String("dstip", "127.0.0.1", "destination ip ") + serverHost := flag.String("serverhost", "openp2p.cn", "server host ") + // serverHost := flag.String("serverhost", "127.0.0.1", "server host ") // for debug + dstPort := flag.Int("dstport", 0, "destination port ") + srcPort := flag.Int("srcport", 0, "source port ") + protocol := flag.String("protocol", "tcp", "tcp or udp") + noShare := flag.Bool("noshare", false, "disable using the huge numbers of shared nodes in OpenP2P network, your connectivity will be weak. also this node will not shared with others") + shareBandwidth := flag.Int("sharebandwidth", 10, "N mbps share bandwidth limit, private node no limit") + configFile := flag.Bool("f", false, "config file") + daemonMode := flag.Bool("d", false, "daemonMode") + byDaemon := flag.Bool("bydaemon", false, "start by daemon") + logLevel := flag.Int("loglevel", 1, "0:debug 1:info 2:warn 3:error") + flag.Parse() + gLog = InitLogger(filepath.Dir(os.Args[0]), "openp2p", LogLevel(*logLevel), 1024*1024, LogConsole) + gLog.Println(LevelINFO, "openp2p start. version: ", OpenP2PVersion) + if *daemonMode { + d := daemon{} + d.run() + return + } + if !*configFile { + // validate cmd params + if *node == "" { + gLog.Println(LevelERROR, "node name not set", os.Args, len(os.Args), os.Args[0]) + return + } + if *user == "" { + gLog.Println(LevelERROR, "user name not set") + return + } + if *password == "" { + gLog.Println(LevelERROR, "password not set") + return + } + if *peerNode != "" { + if *dstPort == 0 { + gLog.Println(LevelERROR, "dstPort not set") + return + } + if *srcPort == 0 { + gLog.Println(LevelERROR, "srcPort not set") + return + } + } + } + + config := AppConfig{} + config.PeerNode = *peerNode + config.PeerUser = *peerUser + config.PeerPassword = *peerPassword + config.DstHost = *dstIP + config.DstPort = *dstPort + config.SrcPort = *srcPort + config.Protocol = *protocol + gLog.Println(LevelINFO, config) + if *configFile { + if err := gConf.load(); err != nil { + gLog.Println(LevelERROR, "load config error. exit.") + return + } + } else { + gConf.add(config) + gConf.Network = NetworkConfig{ + Node: *node, + User: *user, + Password: *password, + NoShare: *noShare, + ServerHost: *serverHost, + ServerPort: 27182, + UDPPort1: 27182, + UDPPort2: 27183, + ipv6: "240e:3b7:621:def0:fda4:dd7f:36a1:2803", // TODO: detect real ipv6 + shareBandwidth: *shareBandwidth, + } + } + // gConf.save() // not change config file + gConf.daemonMode = *byDaemon + + gLog.Println(LevelINFO, gConf) + setFirewall() + network := P2PNetworkInstance(&gConf.Network) + if ok := network.Connect(30000); !ok { + gLog.Println(LevelERROR, "P2PNetwork login error") + return + } + for _, app := range gConf.Apps { + // set default peer user password + if app.PeerPassword == "" { + app.PeerPassword = gConf.Network.Password + } + if app.PeerUser == "" { + app.PeerUser = gConf.Network.User + } + err := network.AddApp(app) + if err != nil { + gLog.Println(LevelERROR, "addTunnel error") + } + } + + // test + // go func() { + + // time.Sleep(time.Second * 30) + // config := AppConfig{} + // config.PeerNode = *peerNode + // config.PeerUser = *peerUser + // config.PeerPassword = *peerPassword + // config.DstHost = *dstIP + // config.DstPort = *dstPort + // config.SrcPort = 32 + // config.Protocol = *protocol + // network.AddApp(config) + // // time.Sleep(time.Second * 30) + // // network.DeleteTunnel(config) + // // time.Sleep(time.Second * 30) + // // network.DeleteTunnel(config) + // }() + + // // TODO: http api + // api := ClientAPI{} + // go api.run() + gLog.Println(LevelINFO, "waiting for connection...") + forever := make(chan bool) + <-forever +} diff --git a/overlaytcp.go b/overlaytcp.go new file mode 100644 index 0000000..88880e3 --- /dev/null +++ b/overlaytcp.go @@ -0,0 +1,85 @@ +package main + +import ( + "bytes" + "encoding/binary" + "net" + "time" +) + +// implement io.Writer +type overlayTCP struct { + tunnel *P2PTunnel + conn net.Conn + id uint64 + rtid uint64 + running bool + isClient bool + appID uint64 + appKey uint64 + appKeyBytes []byte +} + +func (otcp *overlayTCP) run() { + gLog.Printf(LevelINFO, "%d overlayTCP run start", otcp.id) + defer gLog.Printf(LevelINFO, "%d overlayTCP run end", otcp.id) + otcp.running = true + buffer := make([]byte, ReadBuffLen+PaddingSize) + readBuf := buffer[:ReadBuffLen] + encryptData := make([]byte, ReadBuffLen+PaddingSize) // 16 bytes for padding + tunnelHead := new(bytes.Buffer) + relayHead := new(bytes.Buffer) + binary.Write(relayHead, binary.LittleEndian, otcp.rtid) + binary.Write(tunnelHead, binary.LittleEndian, otcp.id) + for otcp.running && otcp.tunnel.isRuning() { + otcp.conn.SetReadDeadline(time.Now().Add(time.Second * 5)) + dataLen, err := otcp.conn.Read(readBuf) + if err != nil { + if ne, ok := err.(net.Error); ok && ne.Timeout() { + continue + } + // overlay tcp connection normal close, debug log + gLog.Printf(LevelDEBUG, "overlayTCP %d read error:%s,close it", otcp.id, err) + break + } else { + payload := readBuf[:dataLen] + if otcp.appKey != 0 { + payload, _ = encryptBytes(otcp.appKeyBytes, encryptData, buffer[:dataLen], dataLen) + } + writeBytes := append(tunnelHead.Bytes(), payload...) + if otcp.rtid == 0 { + otcp.tunnel.conn.WriteBytes(MsgP2P, MsgOverlayData, writeBytes) + } else { + // write raley data + all := append(relayHead.Bytes(), encodeHeader(MsgP2P, MsgOverlayData, uint32(len(writeBytes)))...) + all = append(all, writeBytes...) + otcp.tunnel.conn.WriteBytes(MsgP2P, MsgRelayData, all) + gLog.Printf(LevelDEBUG, "write relay data to %d:%d bodylen=%d", otcp.rtid, otcp.id, len(writeBytes)) + } + } + } + otcp.conn.Close() + otcp.tunnel.overlayConns.Delete(otcp.id) + // notify peer disconnect + if otcp.isClient { + req := OverlayDisconnectReq{ID: otcp.id} + if otcp.rtid == 0 { + otcp.tunnel.conn.WriteMessage(MsgP2P, MsgOverlayDisconnectReq, &req) + } else { + // write relay data + msg, _ := newMessage(MsgP2P, MsgOverlayDisconnectReq, &req) + msgWithHead := append(relayHead.Bytes(), msg...) + otcp.tunnel.conn.WriteBytes(MsgP2P, MsgRelayData, msgWithHead) + } + } +} + +// calling by p2pTunnel +func (otcp *overlayTCP) Write(buff []byte) (n int, err error) { + // add mutex when multi-thread calling + n, err = otcp.conn.Write(buff) + if err != nil { + otcp.tunnel.overlayConns.Delete(otcp.id) + } + return +} diff --git a/p2papp.go b/p2papp.go new file mode 100644 index 0000000..c25e110 --- /dev/null +++ b/p2papp.go @@ -0,0 +1,142 @@ +package main + +import ( + "bytes" + "encoding/binary" + "fmt" + "math/rand" + "net" + "sync" + "time" +) + +type p2pApp struct { + config AppConfig + listener net.Listener + tunnel *P2PTunnel + rtid uint64 + hbTime time.Time + hbMtx sync.Mutex + running bool + id uint64 + key uint64 + wg sync.WaitGroup +} + +func (app *p2pApp) isActive() bool { + if app.rtid == 0 { // direct mode app heartbeat equals to tunnel heartbeat + return app.tunnel.isActive() + } + // relay mode calc app heartbeat + app.hbMtx.Lock() + defer app.hbMtx.Unlock() + return time.Now().Before(app.hbTime.Add(TunnelIdleTimeout)) +} + +func (app *p2pApp) updateHeartbeat() { + app.hbMtx.Lock() + defer app.hbMtx.Unlock() + app.hbTime = time.Now() +} + +func (app *p2pApp) listenTCP() error { + var err error + app.listener, err = net.Listen("tcp4", fmt.Sprintf("0.0.0.0:%d", app.config.SrcPort)) + if err != nil { + gLog.Printf(LevelERROR, "listen error:%s", err) + return err + } + for { + conn, err := app.listener.Accept() + if err != nil { + gLog.Printf(LevelERROR, "%d accept error:%s", app.tunnel.id, err) + break + } + otcp := overlayTCP{ + tunnel: app.tunnel, + conn: conn, + id: rand.Uint64(), + isClient: true, + rtid: app.rtid, + appID: app.id, + appKey: app.key, + } + // calc key bytes for encrypt + if otcp.appKey != 0 { + encryptKey := make([]byte, AESKeySize) + binary.LittleEndian.PutUint64(encryptKey, otcp.appKey) + binary.LittleEndian.PutUint64(encryptKey[8:], otcp.appKey) + otcp.appKeyBytes = encryptKey + } + app.tunnel.overlayConns.Store(otcp.id, &otcp) + gLog.Printf(LevelINFO, "Accept overlayID:%d", otcp.id) + // tell peer connect + req := OverlayConnectReq{ID: otcp.id, + User: app.config.PeerUser, + Password: app.config.PeerPassword, + DstIP: app.config.DstHost, + DstPort: app.config.DstPort, + Protocol: app.config.Protocol, + AppID: app.id, + } + if app.rtid == 0 { + app.tunnel.conn.WriteMessage(MsgP2P, MsgOverlayConnectReq, &req) + } else { + req.RelayTunnelID = app.tunnel.id + relayHead := new(bytes.Buffer) + binary.Write(relayHead, binary.LittleEndian, app.rtid) + msg, _ := newMessage(MsgP2P, MsgOverlayConnectReq, &req) + msgWithHead := append(relayHead.Bytes(), msg...) + app.tunnel.conn.WriteBytes(MsgP2P, MsgRelayData, msgWithHead) + } + + go otcp.run() + } + return nil +} + +func (app *p2pApp) listen() error { + gLog.Printf(LevelINFO, "LISTEN ON PORT %d START", app.config.SrcPort) + defer gLog.Printf(LevelINFO, "LISTEN ON PORT %d START", app.config.SrcPort) + app.wg.Add(1) + defer app.wg.Done() + app.running = true + if app.rtid != 0 { + go app.relayHeartbeatLoop() + } + for app.running { + if app.config.Protocol == "tcp" { + app.listenTCP() + } + time.Sleep(time.Second * 5) + // TODO: listen UDP + } + return nil +} + +func (app *p2pApp) close() { + app.running = false + if app.listener != nil { + app.listener.Close() + } + app.tunnel.closeOverlayConns(app.id) + app.wg.Wait() +} + +// TODO: many relay app on the same P2PTunnel will send a lot of relay heartbeat +func (app *p2pApp) relayHeartbeatLoop() { + app.wg.Add(1) + defer app.wg.Done() + gLog.Printf(LevelDEBUG, "relayHeartbeat to %d start", app.rtid) + defer gLog.Printf(LevelDEBUG, "relayHeartbeat to %d end", app.rtid) + relayHead := new(bytes.Buffer) + binary.Write(relayHead, binary.LittleEndian, app.rtid) + req := RelayHeartbeat{RelayTunnelID: app.tunnel.id, + AppID: app.id} + msg, _ := newMessage(MsgP2P, MsgRelayHeartbeat, &req) + msgWithHead := append(relayHead.Bytes(), msg...) + for app.tunnel.isRuning() && app.running { + app.tunnel.conn.WriteBytes(MsgP2P, MsgRelayData, msgWithHead) + time.Sleep(TunnelHeartbeatTime) + } +} diff --git a/p2pappkeys.go b/p2pappkeys.go new file mode 100644 index 0000000..3660eec --- /dev/null +++ b/p2pappkeys.go @@ -0,0 +1,19 @@ +package main + +import ( + "sync" +) + +var p2pAppKeys sync.Map + +func GetKey(appID uint64) uint64 { + i, ok := p2pAppKeys.Load(appID) + if !ok { + return 0 + } + return i.(uint64) +} + +func SaveKey(appID uint64, appKey uint64) { + p2pAppKeys.Store(appID, appKey) +} diff --git a/p2pconn.go b/p2pconn.go new file mode 100644 index 0000000..55bf87f --- /dev/null +++ b/p2pconn.go @@ -0,0 +1,17 @@ +package main + +import ( + "time" +) + +type p2pConn interface { + ReadMessage() (*openP2PHeader, []byte, error) + WriteBytes(uint16, uint16, []byte) error + WriteBuffer([]byte) error + WriteMessage(uint16, uint16, interface{}) error + Close() error + Accept() error + CloseListener() + SetReadDeadline(t time.Time) error + SetWriteDeadline(t time.Time) error +} diff --git a/p2pnetwork.go b/p2pnetwork.go new file mode 100644 index 0000000..d757aca --- /dev/null +++ b/p2pnetwork.go @@ -0,0 +1,691 @@ +package main + +import ( + "bytes" + "crypto/tls" + "encoding/binary" + "encoding/json" + "errors" + "fmt" + "math" + "math/rand" + "net/url" + "os" + "strings" + "sync" + "time" + + "github.com/gorilla/websocket" +) + +var ( + instance *P2PNetwork + once sync.Once +) + +type P2PNetwork struct { + conn *websocket.Conn + online bool + running bool + restartCh chan bool + wg sync.WaitGroup + writeMtx sync.Mutex + serverTs uint64 + // msgMap sync.Map + msgMap map[uint64]chan []byte //key: nodeID + msgMapMtx sync.Mutex + config NetworkConfig + allTunnels sync.Map + apps sync.Map + limiter *BandwidthLimiter +} + +func P2PNetworkInstance(config *NetworkConfig) *P2PNetwork { + if instance == nil { + once.Do(func() { + instance = &P2PNetwork{ + restartCh: make(chan bool, 2), + online: false, + running: true, + msgMap: make(map[uint64]chan []byte), + limiter: newBandwidthLimiter(config.shareBandwidth), + } + instance.msgMap[0] = make(chan []byte) // for gateway + if config != nil { + instance.config = *config + } + instance.init() + go instance.run() + }) + } + return instance +} + +func (pn *P2PNetwork) run() { + go pn.autoReconnectApp() + heartbeatTimer := time.NewTicker(NetworkHeartbeatTime) + for pn.running { + select { + case <-heartbeatTimer.C: // TODO: deal with connect failed, no send hb + pn.write(MsgHeartbeat, 0, "") + + case <-pn.restartCh: + pn.online = false + pn.wg.Wait() // wait read/write goroutine exited + time.Sleep(NetworkHeartbeatTime) + err := pn.init() + if err != nil { + gLog.Println(LevelERROR, "P2PNetwork init error:", err) + } + } + } +} + +func (pn *P2PNetwork) Connect(timeout int) bool { + // waiting for login response + for i := 0; i < (timeout / 1000); i++ { + if pn.serverTs != 0 { + return true + } + time.Sleep(time.Second) + } + return false +} + +func (pn *P2PNetwork) autoReconnectApp() { + gLog.Println(LevelINFO, "autoReconnectApp start") + retryApps := make([]AppConfig, 0) + for pn.running { + time.Sleep(time.Second) + if !pn.online { + continue + } + if len(retryApps) > 0 { + gLog.Printf(LevelINFO, "retryApps len=%d", len(retryApps)) + thisRound := make([]AppConfig, 0) + for i := 0; i < len(retryApps); i++ { + // reset retryNum when running 15min continuously + delay := math.Exp(float64(retryApps[i].retryNum+1)/2) * 5 + if delay > 1800 { // max delay 30min + delay = 1800 + } + if retryApps[i].retryTime.Add(time.Minute * 15).Before(time.Now()) { + retryApps[i].retryNum = 0 + } + retryApps[i].retryNum++ + retryApps[i].retryTime = time.Now() + if retryApps[i].retryNum > MaxRetry { + gLog.Printf(LevelERROR, "app %s%d retry more than %d times, exit.", retryApps[i].Protocol, retryApps[i].SrcPort, MaxRetry) + continue + } + pn.DeleteApp(retryApps[i]) + if err := pn.AddApp(retryApps[i]); err != nil { + gLog.Printf(LevelERROR, "AddApp %s%d error:%s", retryApps[i].Protocol, retryApps[i].SrcPort, err) + thisRound = append(thisRound, retryApps[i]) + time.Sleep(RetryInterval) + } + } + retryApps = thisRound + } + pn.apps.Range(func(_, i interface{}) bool { + app := i.(*p2pApp) + if app.isActive() { + return true + } + gLog.Printf(LevelINFO, "detect app %s%d disconnect,last hb %s reconnecting...", app.config.Protocol, app.config.SrcPort, app.hbTime) + config := app.config + // clear peerinfo + config.peerConeNatPort = 0 + config.peerIP = "" + config.peerNatType = 0 + config.peerToken = 0 + pn.DeleteApp(config) + retryApps = append(retryApps, config) + return true + }) + } + gLog.Println(LevelINFO, "autoReconnectApp end") +} + +func (pn *P2PNetwork) addRelayTunnel(config AppConfig, appid uint64, appkey uint64) (*P2PTunnel, uint64, error) { + gLog.Printf(LevelINFO, "addRelayTunnel to %s start", config.PeerNode) + defer gLog.Printf(LevelINFO, "addRelayTunnel to %s end", config.PeerNode) + pn.write(MsgRelay, MsgRelayNodeReq, nil) + head, body := pn.read("", MsgRelay, MsgRelayNodeRsp, time.Second*10) + if head == nil { + return nil, 0, errors.New("read MsgRelayNodeRsp error") + } + rsp := RelayNodeRsp{} + err := json.Unmarshal(body, &rsp) + if err != nil { + gLog.Printf(LevelERROR, "wrong RelayNodeRsp:%s", err) + return nil, 0, errors.New("unmarshal MsgRelayNodeRsp error") + } + if rsp.RelayName == "" || rsp.RelayToken == 0 { + gLog.Printf(LevelERROR, "MsgRelayNodeReq error") + return nil, 0, errors.New("MsgRelayNodeReq error") + } + gLog.Printf(LevelINFO, "got relay node:%s", rsp.RelayName) + relayConfig := config + relayConfig.PeerNode = rsp.RelayName + relayConfig.peerToken = rsp.RelayToken + t, err := pn.addDirectTunnel(relayConfig, 0) + if err != nil { + gLog.Println(LevelERROR, "direct connect error:", err) + return nil, 0, err + } + // notify peer addRelayTunnel + req := AddRelayTunnelReq{ + From: pn.config.Node, + RelayName: rsp.RelayName, + RelayToken: rsp.RelayToken, + AppID: appid, + AppKey: appkey, + } + gLog.Printf(LevelINFO, "push relay %s---------%s", config.PeerNode, rsp.RelayName) + pn.push(config.PeerNode, MsgPushAddRelayTunnelReq, &req) + + // wait relay ready + head, body = pn.read(config.PeerNode, MsgPush, MsgPushAddRelayTunnelRsp, PeerAddRelayTimeount) // TODO: const value + if head == nil { + gLog.Printf(LevelERROR, "read MsgPushAddRelayTunnelRsp error") + return nil, 0, errors.New("read MsgPushAddRelayTunnelRsp error") + } + rspID := TunnelMsg{} + err = json.Unmarshal(body, &rspID) + if err != nil { + gLog.Printf(LevelERROR, "wrong RelayNodeRsp:%s", err) + return nil, 0, errors.New("unmarshal MsgRelayNodeRsp error") + } + return t, rspID.ID, err +} + +func (pn *P2PNetwork) AddApp(config AppConfig) error { + gLog.Printf(LevelINFO, "addApp %s%d to %s:%s:%d start", config.Protocol, config.SrcPort, config.PeerNode, config.DstHost, config.DstPort) + defer gLog.Printf(LevelINFO, "addApp %s%d to %s:%s:%d end", config.Protocol, config.SrcPort, config.PeerNode, config.DstHost, config.DstPort) + if !pn.online { + return errors.New("P2PNetwork offline") + } + // check if app already exist? + appExist := false + pn.apps.Range(func(_, i interface{}) bool { + app := i.(*p2pApp) + if app.config.Protocol == config.Protocol && app.config.SrcPort == config.SrcPort { + appExist = true + return false + } + return true + }) + if appExist { + return errors.New("P2PApp already exist") + } + appID := rand.Uint64() + appKey := uint64(0) + t, err := pn.addDirectTunnel(config, 0) + var rtid uint64 + relayNode := "" + peerNatType := 100 + peerIP := "" + errMsg := "" + if err != nil && err == ErrorHandshake { + gLog.Println(LevelERROR, "direct connect failed, try to relay") + appKey = rand.Uint64() + t, rtid, err = pn.addRelayTunnel(config, appID, appKey) + if t != nil { + relayNode = t.config.PeerNode + } + } + if t != nil { + peerNatType = t.config.peerNatType + peerIP = t.config.peerIP + } + if err != nil { + errMsg = err.Error() + } + req := ReportConnect{ + Error: errMsg, + Protocol: config.Protocol, + SrcPort: config.SrcPort, + NatType: pn.config.natType, + PeerNode: config.PeerNode, + DstPort: config.DstPort, + DstHost: config.DstHost, + PeerUser: config.PeerUser, + PeerNatType: peerNatType, + PeerIP: peerIP, + ShareBandwidth: pn.config.shareBandwidth, + RelayNode: relayNode, + Version: OpenP2PVersion, + } + pn.write(MsgReport, MsgReportConnect, &req) + if err != nil { + return err + } + + app := p2pApp{ + id: appID, + key: appKey, + tunnel: t, + config: config, + rtid: rtid, + hbTime: time.Now()} + pn.apps.Store(appID, &app) + go app.listen() + return err +} + +func (pn *P2PNetwork) DeleteApp(config AppConfig) { + gLog.Printf(LevelINFO, "DeleteApp %s%d start", config.Protocol, config.SrcPort) + defer gLog.Printf(LevelINFO, "DeleteApp %s%d end", config.Protocol, config.SrcPort) + // close the apps of this config + pn.apps.Range(func(_, i interface{}) bool { + app := i.(*p2pApp) + if app.config.Protocol == config.Protocol && app.config.SrcPort == config.SrcPort { + gLog.Printf(LevelINFO, "app %s exist, delete it", fmt.Sprintf("%s%d", config.Protocol, config.SrcPort)) + app := i.(*p2pApp) + app.close() + pn.apps.Delete(app.id) + return false + } + return true + }) +} + +func (pn *P2PNetwork) addDirectTunnel(config AppConfig, tid uint64) (*P2PTunnel, error) { + gLog.Printf(LevelINFO, "addDirectTunnel %s%d to %s:%s:%d start", config.Protocol, config.SrcPort, config.PeerNode, config.DstHost, config.DstPort) + defer gLog.Printf(LevelINFO, "addDirectTunnel %s%d to %s:%s:%d end", config.Protocol, config.SrcPort, config.PeerNode, config.DstHost, config.DstPort) + isClient := false + // client side tid=0, assign random uint64 + if tid == 0 { + tid = rand.Uint64() + isClient = true + } + exist := false + // find existing tunnel to peer + var t *P2PTunnel + pn.allTunnels.Range(func(id, i interface{}) bool { + t = i.(*P2PTunnel) + if t.config.PeerNode == config.PeerNode { + // server side force close existing tunnel + if !isClient { + t.close() + return false + } + + // client side checking + gLog.Println(LevelINFO, "tunnel already exist ", config.PeerNode) + isActive := t.checkActive() + // inactive, close it + if !isActive { + gLog.Println(LevelINFO, "but it's not active, close it ", config.PeerNode) + t.close() + } else { + // active + exist = true + } + return false + } + return true + }) + // create tunnel if not exist + if !exist { + t = &P2PTunnel{pn: pn, + config: config, + id: tid, + } + pn.msgMapMtx.Lock() + pn.msgMap[nodeNameToID(config.PeerNode)] = make(chan []byte, 50) + pn.msgMapMtx.Unlock() + t.init() + if isClient { + if err := t.connect(); err != nil { + gLog.Println(LevelERROR, "p2pTunnel connect error:", err) + return t, err + } + } else { + rsp := PushConnectRsp{ + Error: 0, + Detail: "connect ok", + To: t.config.PeerNode, + From: pn.config.Node, + NatType: pn.config.natType, + FromIP: pn.config.publicIP, + ConeNatPort: t.coneNatPort, + ID: t.id} + t.pn.push(t.config.PeerNode, MsgPushConnectRsp, rsp) + if err := t.listen(); err != nil { + gLog.Println(LevelERROR, "p2pTunnel listen error:", err) + return t, err + } + } + } + // store it when success + gLog.Printf(LevelDEBUG, "store tunnel %d", tid) + pn.allTunnels.Store(tid, t) + return t, nil +} + +func (pn *P2PNetwork) init() error { + gLog.Println(LevelINFO, "init start") + var err error + for { + pn.config.hostName, err = os.Hostname() + if err != nil { + break + } + + // detect nat type + pn.config.publicIP, pn.config.natType, err = getNATType(pn.config.ServerHost, pn.config.UDPPort1, pn.config.UDPPort2) + // TODO rm test s2s + if pn.config.Node == "hhd1207-222S2S" { + pn.config.natType = NATSymmetric + } + if err != nil { + gLog.Println(LevelINFO, "detect NAT type error:", err) + break + } + gLog.Println(LevelINFO, "detect NAT type:", pn.config.natType, " publicIP:", pn.config.publicIP) + gatewayURL := fmt.Sprintf("%s:%d", pn.config.ServerHost, pn.config.ServerPort) + forwardPath := "/openp2p/v1/login" + config := tls.Config{InsecureSkipVerify: true} // let's encrypt root cert "DST Root CA X3" expired at 2021/09/29. many old system(windows server 2008 etc) will not trust our cert + websocket.DefaultDialer.TLSClientConfig = &config + u := url.URL{Scheme: "wss", Host: gatewayURL, Path: forwardPath} + q := u.Query() + q.Add("node", pn.config.Node) + q.Add("user", pn.config.User) + q.Add("password", pn.config.Password) + q.Add("version", OpenP2PVersion) + q.Add("nattype", fmt.Sprintf("%d", pn.config.natType)) + q.Add("timestamp", fmt.Sprintf("%d", time.Now().Unix())) + + noShareStr := "false" + if pn.config.NoShare { + noShareStr = "true" + } + q.Add("noshare", noShareStr) + u.RawQuery = q.Encode() + var ws *websocket.Conn + ws, _, err = websocket.DefaultDialer.Dial(u.String(), nil) + if err != nil { + break + } + pn.online = true + pn.conn = ws + localAddr := strings.Split(ws.LocalAddr().String(), ":") + if len(localAddr) == 2 { + pn.config.localIP = localAddr[0] + } else { + err = errors.New("get local ip failed") + break + } + go pn.readLoop() + + pn.config.mac = getmac(pn.config.localIP) + pn.config.os = getOsName() + req := ReportBasic{ + Mac: pn.config.mac, + LanIP: pn.config.localIP, + OS: pn.config.os, + IPv6: pn.config.ipv6, + Version: OpenP2PVersion, + } + pn.write(MsgReport, MsgReportBasic, &req) + gLog.Println(LevelINFO, "P2PNetwork init ok") + break + } + if err != nil { + // init failed, retry + pn.restartCh <- true + gLog.Println(LevelERROR, "P2PNetwork init error:", err) + } + return err +} + +func (pn *P2PNetwork) handleMessage(t int, msg []byte) { + head := openP2PHeader{} + err := binary.Read(bytes.NewReader(msg[:openP2PHeaderSize]), binary.LittleEndian, &head) + if err != nil { + gLog.Println(LevelERROR, "handleMessage error:", err) + return + } + switch head.MainType { + case MsgLogin: + // gLog.Println(LevelINFO,string(msg)) + rsp := LoginRsp{} + err = json.Unmarshal(msg[openP2PHeaderSize:], &rsp) + if err != nil { + gLog.Printf(LevelERROR, "wrong login response:%s", err) + return + } + if rsp.Error != 0 { + gLog.Printf(LevelERROR, "login error:%d, detail:%s", rsp.Error, rsp.Detail) + pn.running = false + } else { + gLog.Printf(LevelINFO, "login ok. Server ts=%d, local ts=%d", rsp.Ts, time.Now().Unix()) + pn.serverTs = rsp.Ts + } + case MsgHeartbeat: + gLog.Printf(LevelDEBUG, "P2PNetwork heartbeat ok") + case MsgPush: + pn.handlePush(head.SubType, msg) + default: + pn.msgMapMtx.Lock() + ch := pn.msgMap[0] + pn.msgMapMtx.Unlock() + ch <- msg + return + } +} + +func (pn *P2PNetwork) readLoop() { + gLog.Printf(LevelINFO, "P2PNetwork readLoop start") + pn.wg.Add(1) + defer pn.wg.Done() + for pn.running { + pn.conn.SetReadDeadline(time.Now().Add(NetworkHeartbeatTime + 10*time.Second)) + t, msg, err := pn.conn.ReadMessage() + if err != nil { + gLog.Printf(LevelERROR, "P2PNetwork read error:%s", err) + pn.conn.Close() + pn.restartCh <- true + break + } + pn.handleMessage(t, msg) + } + gLog.Printf(LevelINFO, "P2PNetwork readLoop end") +} + +func (pn *P2PNetwork) write(mainType uint16, subType uint16, packet interface{}) error { + if !pn.online { + return errors.New("P2P network offline") + } + msg, err := newMessage(mainType, subType, packet) + if err != nil { + return err + } + pn.writeMtx.Lock() + defer pn.writeMtx.Unlock() + if err = pn.conn.WriteMessage(websocket.BinaryMessage, msg); err != nil { + gLog.Printf(LevelERROR, "write msgType %d,%d error:%s", mainType, subType, err) + pn.conn.Close() + } + return err +} + +func (pn *P2PNetwork) relay(to uint64, body []byte) error { + gLog.Printf(LevelDEBUG, "relay data to %d", to) + i, ok := pn.allTunnels.Load(to) + if !ok { + return nil + } + tunnel := i.(*P2PTunnel) + if tunnel.config.shareBandwidth > 0 { + pn.limiter.Add(len(body)) + } + tunnel.conn.WriteBuffer(body) + return nil +} + +func (pn *P2PNetwork) push(to string, subType uint16, packet interface{}) error { + gLog.Printf(LevelDEBUG, "push msgType %d to %s", subType, to) + if !pn.online { + return errors.New("client offline") + } + pushHead := PushHeader{} + pushHead.From = nodeNameToID(pn.config.Node) + pushHead.To = nodeNameToID(to) + pushHeadBuf := new(bytes.Buffer) + err := binary.Write(pushHeadBuf, binary.LittleEndian, pushHead) + if err != nil { + return err + } + data, err := json.Marshal(packet) + if err != nil { + return err + } + // gLog.Println(LevelINFO,"write packet:", string(data)) + pushMsg := append(encodeHeader(MsgPush, subType, uint32(len(data)+PushHeaderSize)), pushHeadBuf.Bytes()...) + pushMsg = append(pushMsg, data...) + pn.writeMtx.Lock() + defer pn.writeMtx.Unlock() + if err = pn.conn.WriteMessage(websocket.BinaryMessage, pushMsg); err != nil { + gLog.Printf(LevelERROR, "push to %s error:%s", to, err) + pn.conn.Close() + } + return err +} + +func (pn *P2PNetwork) read(node string, mainType uint16, subType uint16, timeout time.Duration) (head *openP2PHeader, body []byte) { + var nodeID uint64 + if node == "" { + nodeID = 0 + } else { + nodeID = nodeNameToID(node) + } + for { + select { + case <-time.After(timeout): + gLog.Printf(LevelERROR, "wait msg%d:%d timeout", mainType, subType) + return + case msg := <-pn.msgMap[nodeID]: + head = &openP2PHeader{} + err := binary.Read(bytes.NewReader(msg[:openP2PHeaderSize]), binary.LittleEndian, head) + if err != nil { + gLog.Println(LevelERROR, "read msg error:", err) + break + } + if head.MainType != mainType || head.SubType != subType { + continue + } + if mainType == MsgPush { + body = msg[openP2PHeaderSize+PushHeaderSize:] + } else { + body = msg[openP2PHeaderSize:] + } + return + } + } +} + +func (pn *P2PNetwork) handlePush(subType uint16, msg []byte) error { + pushHead := PushHeader{} + err := binary.Read(bytes.NewReader(msg[openP2PHeaderSize:openP2PHeaderSize+PushHeaderSize]), binary.LittleEndian, &pushHead) + if err != nil { + return err + } + gLog.Printf(LevelDEBUG, "handle push msg type:%d, push header:%+v", subType, pushHead) + switch subType { + case MsgPushConnectReq: + req := PushConnectReq{} + err := json.Unmarshal(msg[openP2PHeaderSize+PushHeaderSize:], &req) + if err != nil { + gLog.Printf(LevelERROR, "wrong MsgPushConnectReq:%s", err) + return err + } + gLog.Printf(LevelINFO, "%s is connecting...", req.From) + gLog.Println(LevelDEBUG, "push connect response to ", req.From) + // verify token or name&password + if VerifyTOTP(req.Token, pn.config.User, pn.config.Password, time.Now().Unix()) || (req.User == pn.config.User && req.Password == pn.config.Password) { + gLog.Printf(LevelINFO, "Access Granted\n") + config := AppConfig{} + config.peerNatType = req.NatType + config.peerConeNatPort = req.ConeNatPort + config.peerIP = req.FromIP + config.PeerNode = req.From + // share relay node will limit bandwidth + if req.User != pn.config.User || req.Password != pn.config.Password { + gLog.Printf(LevelINFO, "set share bandwidth %d mbps", pn.config.shareBandwidth) + config.shareBandwidth = pn.config.shareBandwidth + } + // go pn.AddTunnel(config, req.ID) + go pn.addDirectTunnel(config, req.ID) + break + } + gLog.Println(LevelERROR, "Access Denied:", req.From) + rsp := PushConnectRsp{ + Error: 1, + Detail: fmt.Sprintf("connect to %s error: Access Denied", pn.config.Node), + To: req.From, + From: pn.config.Node, + } + pn.push(req.From, MsgPushConnectRsp, rsp) + case MsgPushRsp: + rsp := PushRsp{} + err := json.Unmarshal(msg[openP2PHeaderSize:], &rsp) + if err != nil { + gLog.Printf(LevelERROR, "wrong pushRsp:%s", err) + return err + } + if rsp.Error == 0 { + gLog.Printf(LevelDEBUG, "push ok, detail:%s", rsp.Detail) + } else { + gLog.Printf(LevelERROR, "push error:%d, detail:%s", rsp.Error, rsp.Detail) + } + case MsgPushAddRelayTunnelReq: + req := AddRelayTunnelReq{} + err := json.Unmarshal(msg[openP2PHeaderSize+PushHeaderSize:], &req) + if err != nil { + gLog.Printf(LevelERROR, "wrong RelayNodeRsp:%s", err) + return err + } + config := AppConfig{} + config.PeerNode = req.RelayName + config.peerToken = req.RelayToken + // set user password, maybe the relay node is your private node + config.PeerUser = pn.config.User + config.PeerPassword = pn.config.Password + go func(r AddRelayTunnelReq) { + t, errDt := pn.addDirectTunnel(config, 0) + if errDt == nil { + // notify peer relay ready + msg := TunnelMsg{ID: t.id} + pn.push(r.From, MsgPushAddRelayTunnelRsp, msg) + SaveKey(req.AppID, req.AppKey) + } + + }(req) + case MsgPushUpdate: + update() + if gConf.daemonMode { + os.Exit(0) + } + default: + pn.msgMapMtx.Lock() + ch := pn.msgMap[pushHead.From] + pn.msgMapMtx.Unlock() + ch <- msg + } + return nil +} + +func (pn *P2PNetwork) updateAppHeartbeat(appID uint64) { + pn.apps.Range(func(id, i interface{}) bool { + key := id.(uint64) + if key != appID { + return true + } + app := i.(*p2pApp) + app.updateHeartbeat() + return false + }) +} diff --git a/p2ptunnel.go b/p2ptunnel.go new file mode 100644 index 0000000..18fca56 --- /dev/null +++ b/p2ptunnel.go @@ -0,0 +1,418 @@ +package main + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "errors" + "fmt" + "math/rand" + "net" + "sync" + "time" +) + +type P2PTunnel struct { + pn *P2PNetwork + conn p2pConn + hbTime time.Time + hbMtx sync.Mutex + hbTimeRelay time.Time + config AppConfig + la *net.UDPAddr // local hole address + ra *net.UDPAddr // remote hole address + overlayConns sync.Map // both TCP and UDP + id uint64 + running bool + runMtx sync.Mutex + isServer bool // 0:server 1:client + coneLocalPort int + coneNatPort int +} + +func (t *P2PTunnel) init() { + t.running = true + t.hbMtx.Lock() + t.hbTime = time.Now() + t.hbMtx.Unlock() + t.hbTimeRelay = time.Now().Add(time.Second * 600) // TODO: test fake time + localPort := int(rand.Uint32()%10000 + 50000) + if t.pn.config.natType == NATCone { + // prepare one random cone hole + _, _, port1, _ := natTest(t.pn.config.ServerHost, t.pn.config.UDPPort1, localPort) + t.coneLocalPort = localPort + t.coneNatPort = port1 + t.la = &net.UDPAddr{IP: net.ParseIP(t.pn.config.localIP), Port: t.coneLocalPort} + } else { + t.coneLocalPort = localPort + t.coneNatPort = localPort // NATNONE or symmetric doesn't need coneNatPort + t.la = &net.UDPAddr{IP: net.ParseIP(t.pn.config.localIP), Port: t.coneLocalPort} + } + gLog.Printf(LevelDEBUG, "prepare punching port %d:%d", t.coneLocalPort, t.coneNatPort) +} + +func (t *P2PTunnel) connect() error { + gLog.Printf(LevelINFO, "start p2pTunnel to %s ", t.config.PeerNode) + t.isServer = false + req := PushConnectReq{ + User: t.config.PeerUser, + Password: t.config.PeerPassword, + Token: t.config.peerToken, + From: t.pn.config.Node, + FromIP: t.pn.config.publicIP, + ConeNatPort: t.coneNatPort, + NatType: t.pn.config.natType, + ID: t.id} + t.pn.push(t.config.PeerNode, MsgPushConnectReq, req) + head, body := t.pn.read(t.config.PeerNode, MsgPush, MsgPushConnectRsp, time.Second*10) + if head == nil { + return errors.New("connect error") + } + rsp := PushConnectRsp{} + err := json.Unmarshal(body, &rsp) + if err != nil { + gLog.Printf(LevelERROR, "wrong MsgPushConnectRsp:%s", err) + return err + } + // gLog.Println(LevelINFO, rsp) + if rsp.Error != 0 { + return errors.New(rsp.Detail) + } + t.config.peerNatType = int(rsp.NatType) + t.config.peerConeNatPort = rsp.ConeNatPort + t.config.peerIP = rsp.FromIP + err = t.handshake() + if err != nil { + gLog.Println(LevelERROR, "handshake error:", err) + err = ErrorHandshake + } + return err +} + +func (t *P2PTunnel) isRuning() bool { + t.runMtx.Lock() + defer t.runMtx.Unlock() + return t.running +} + +func (t *P2PTunnel) setRun(running bool) { + t.runMtx.Lock() + defer t.runMtx.Unlock() + t.running = running +} + +func (t *P2PTunnel) isActive() bool { + t.hbMtx.Lock() + defer t.hbMtx.Unlock() + return time.Now().Before(t.hbTime.Add(TunnelIdleTimeout)) +} + +func (t *P2PTunnel) checkActive() bool { + hbt := time.Now() + t.hbMtx.Lock() + if t.hbTime.Before(time.Now().Add(-TunnelHeartbeatTime)) { + t.hbMtx.Unlock() + return false + } + t.hbMtx.Unlock() + // hbtime within TunnelHeartbeatTime, check it now + t.conn.WriteBytes(MsgP2P, MsgTunnelHeartbeat, nil) + isActive := false + // wait at most 5s + for i := 0; i < 50 && !isActive; i++ { + t.hbMtx.Lock() + if t.hbTime.After(hbt) { + isActive = true + } + t.hbMtx.Unlock() + time.Sleep(time.Millisecond * 100) + } + return isActive +} + +// call when user delete tunnel +func (t *P2PTunnel) close() { + t.setRun(false) + t.pn.allTunnels.Delete(t.id) +} + +func (t *P2PTunnel) handshake() error { + if t.config.peerConeNatPort > 0 { + var err error + t.ra, err = net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", t.config.peerIP, t.config.peerConeNatPort)) + if err != nil { + return err + } + } + gLog.Println(LevelINFO, "handshake to ", t.config.PeerNode) + var err error + // TODO: handle NATNone, nodes with public ip has no punching + if (t.pn.config.natType == NATCone && t.config.peerNatType == NATCone) || (t.pn.config.natType == NATNone || t.config.peerNatType == NATNone) { + err = handshakeC2C(t) + } else if t.config.peerNatType == NATSymmetric && t.pn.config.natType == NATSymmetric { + err = ErrorS2S + t.close() + } else if t.config.peerNatType == NATSymmetric && t.pn.config.natType == NATCone { + err = handshakeC2S(t) + } else if t.config.peerNatType == NATCone && t.pn.config.natType == NATSymmetric { + err = handshakeS2C(t) + } else { + return errors.New("unknown error") + } + if err != nil { + gLog.Println(LevelERROR, "punch handshake error:", err) + return err + } + gLog.Printf(LevelINFO, "handshake to %s ok", t.config.PeerNode) + err = t.run() + if err != nil { + gLog.Println(LevelERROR, err) + return err + } + return nil +} + +func (t *P2PTunnel) run() error { + if t.isServer { + qConn, e := listenQuic(t.la.String(), TunnelIdleTimeout) + if e != nil { + gLog.Println(LevelINFO, "listen quic error:", e, ", retry...") + time.Sleep(time.Millisecond * 10) + qConn, e = listenQuic(t.la.String(), TunnelIdleTimeout) + if e != nil { + return fmt.Errorf("listen quic error:%s", e) + } + } + t.pn.push(t.config.PeerNode, MsgPushQuicConnect, nil) + e = qConn.Accept() + if e != nil { + qConn.CloseListener() + return fmt.Errorf("accept quic error:%s", e) + } + _, buff, err := qConn.ReadMessage() + if e != nil { + qConn.listener.Close() + return fmt.Errorf("read start msg error:%s", err) + } + if buff != nil { + gLog.Println(LevelDEBUG, string(buff)) + } + qConn.WriteBytes(MsgP2P, MsgTunnelHandshakeAck, []byte("OpenP2P,hello2")) + gLog.Println(LevelINFO, "quic connection ok") + t.conn = qConn + t.setRun(true) + go t.readLoop() + go t.writeLoop() + return nil + } + + //else + conn, e := net.ListenUDP("udp", t.la) + if e != nil { + time.Sleep(time.Millisecond * 10) + conn, e = net.ListenUDP("udp", t.la) + if e != nil { + return fmt.Errorf("quic listen error:%s", e) + } + } + t.pn.read(t.config.PeerNode, MsgPush, MsgPushQuicConnect, time.Second*5) + gLog.Println(LevelINFO, "quic dial to ", t.ra.String()) + qConn, e := dialQuic(conn, t.ra, TunnelIdleTimeout) + if e != nil { + return fmt.Errorf("quic dial to %s error:%s", t.ra.String(), e) + } + handshakeBegin := time.Now() + qConn.WriteBytes(MsgP2P, MsgTunnelHandshake, []byte("OpenP2P,hello")) + _, buff, err := qConn.ReadMessage() + if e != nil { + qConn.listener.Close() + return fmt.Errorf("read MsgTunnelHandshake error:%s", err) + } + if buff != nil { + gLog.Println(LevelDEBUG, string(buff)) + } + + gLog.Println(LevelINFO, "rtt=", time.Since(handshakeBegin)) + gLog.Println(LevelINFO, "quic connection ok") + t.conn = qConn + t.setRun(true) + go t.readLoop() + go t.writeLoop() + return nil +} + +func (t *P2PTunnel) readLoop() { + decryptData := make([]byte, ReadBuffLen+PaddingSize) // 16 bytes for padding + gLog.Printf(LevelINFO, "%d tunnel readloop start", t.id) + for t.isRuning() { + t.conn.SetReadDeadline(time.Now().Add(TunnelIdleTimeout)) + head, body, err := t.conn.ReadMessage() + if err != nil { + if t.isRuning() { + gLog.Printf(LevelERROR, "%d tunnel read error:%s", t.id, err) + } + break + } + if head.MainType != MsgP2P { + continue + } + switch head.SubType { + case MsgTunnelHeartbeat: + t.conn.WriteBytes(MsgP2P, MsgTunnelHeartbeatAck, nil) + gLog.Printf(LevelDEBUG, "%d read tunnel heartbeat", t.id) + case MsgTunnelHeartbeatAck: + t.hbMtx.Lock() + t.hbTime = time.Now() + t.hbMtx.Unlock() + gLog.Printf(LevelDEBUG, "%d read tunnel heartbeat ack", t.id) + case MsgOverlayData: + if len(body) < overlayHeaderSize { + continue + } + overlayID := binary.LittleEndian.Uint64(body[:8]) + gLog.Printf(LevelDEBUG, "%d tunnel read overlay data %d", t.id, overlayID) + s, ok := t.overlayConns.Load(overlayID) + if !ok { + // debug level, when overlay connection closed, always has some packet not found tunnel + gLog.Printf(LevelDEBUG, "%d tunnel not found overlay connection %d", t.id, overlayID) + continue + } + overlayConn, ok := s.(*overlayTCP) + if !ok { + continue + } + payload := body[overlayHeaderSize:] + var err error + if overlayConn.appKey != 0 { + payload, _ = decryptBytes(overlayConn.appKeyBytes, decryptData, body[overlayHeaderSize:], int(head.DataLen-uint32(overlayHeaderSize))) + } + _, err = overlayConn.Write(payload) + if err != nil { + gLog.Println(LevelERROR, "overlay write error:", err) + } + case MsgRelayData: + gLog.Printf(LevelDEBUG, "got relay data datalen=%d", head.DataLen) + if len(body) < 8 { + continue + } + tunnelID := binary.LittleEndian.Uint64(body[:8]) + t.pn.relay(tunnelID, body[8:]) + case MsgRelayHeartbeat: + req := RelayHeartbeat{} + err := json.Unmarshal(body, &req) + if err != nil { + gLog.Printf(LevelERROR, "wrong RelayHeartbeat:%s", err) + continue + } + gLog.Printf(LevelDEBUG, "got MsgRelayHeartbeat from %d:%d", req.RelayTunnelID, req.AppID) + relayHead := new(bytes.Buffer) + binary.Write(relayHead, binary.LittleEndian, req.RelayTunnelID) + msg, _ := newMessage(MsgP2P, MsgRelayHeartbeatAck, &req) + msgWithHead := append(relayHead.Bytes(), msg...) + t.conn.WriteBytes(MsgP2P, MsgRelayData, msgWithHead) + case MsgRelayHeartbeatAck: + req := RelayHeartbeat{} + err := json.Unmarshal(body, &req) + if err != nil { + gLog.Printf(LevelERROR, "wrong RelayHeartbeat:%s", err) + continue + } + gLog.Printf(LevelDEBUG, "got MsgRelayHeartbeatAck to %d", req.AppID) + t.pn.updateAppHeartbeat(req.AppID) + case MsgOverlayConnectReq: + req := OverlayConnectReq{} + err := json.Unmarshal(body, &req) + if err != nil { + gLog.Printf(LevelERROR, "wrong MsgOverlayConnectReq:%s", err) + continue + } + // app connect only accept user/password, avoid someone using the share relay node's token + if req.User != t.pn.config.User || req.Password != t.pn.config.Password { + gLog.Println(LevelERROR, "Access Denied:", req.User) + continue + } + + overlayID := req.ID + gLog.Printf(LevelINFO, "App:%d overlayID:%d connect %+v", req.AppID, overlayID, req) + if req.Protocol == "tcp" { + conn, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", req.DstIP, req.DstPort), time.Second*5) + if err != nil { + gLog.Println(LevelERROR, err) + continue + } + otcp := overlayTCP{ + tunnel: t, + conn: conn, + id: overlayID, + isClient: false, + rtid: req.RelayTunnelID, + appID: req.AppID, + appKey: GetKey(req.AppID), + } + // calc key bytes for encrypt + if otcp.appKey != 0 { + encryptKey := make([]byte, 16) + binary.LittleEndian.PutUint64(encryptKey, otcp.appKey) + binary.LittleEndian.PutUint64(encryptKey[8:], otcp.appKey) + otcp.appKeyBytes = encryptKey + } + + t.overlayConns.Store(otcp.id, &otcp) + go otcp.run() + } + case MsgOverlayDisconnectReq: + req := OverlayDisconnectReq{} + err := json.Unmarshal(body, &req) + if err != nil { + gLog.Printf(LevelERROR, "wrong OverlayDisconnectRequest:%s", err) + continue + } + overlayID := req.ID + gLog.Printf(LevelINFO, "%d disconnect overlay connection %d", t.id, overlayID) + i, ok := t.overlayConns.Load(overlayID) + if ok { + otcp := i.(*overlayTCP) + otcp.running = false + } + default: + } + } + t.setRun(false) + t.conn.Close() + gLog.Printf(LevelINFO, "%d tunnel readloop end", t.id) +} + +func (t *P2PTunnel) writeLoop() { + tc := time.NewTicker(TunnelHeartbeatTime) + defer tc.Stop() + defer gLog.Printf(LevelINFO, "%d tunnel writeloop end", t.id) + for t.isRuning() { + select { + case <-tc.C: + // tunnel send + err := t.conn.WriteBytes(MsgP2P, MsgTunnelHeartbeat, nil) + if err != nil { + gLog.Printf(LevelERROR, "%d write tunnel heartbeat error %s", t.id, err) + t.setRun(false) + return + } + gLog.Printf(LevelDEBUG, "%d write tunnel heartbeat ok", t.id) + } + } +} + +func (t *P2PTunnel) listen() error { + gLog.Printf(LevelINFO, "p2ptunnel wait for connecting") + t.isServer = true + return t.handshake() +} + +func (t *P2PTunnel) closeOverlayConns(appID uint64) { + t.overlayConns.Range(func(_, i interface{}) bool { + otcp := i.(*overlayTCP) + if otcp.appID == appID { + otcp.conn.Close() + } + return true + }) +} diff --git a/protocol.go b/protocol.go new file mode 100644 index 0000000..c69e336 --- /dev/null +++ b/protocol.go @@ -0,0 +1,280 @@ +package main + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "errors" + "hash/crc64" + "time" +) + +const OpenP2PVersion = "0.95.5" +const ProducnName string = "openp2p" + +type openP2PHeader struct { + DataLen uint32 + MainType uint16 + SubType uint16 +} + +var openP2PHeaderSize = binary.Size(openP2PHeader{}) + +type PushHeader struct { + From uint64 + To uint64 +} + +var PushHeaderSize = binary.Size(PushHeader{}) + +type overlayHeader struct { + id uint64 +} + +var overlayHeaderSize = binary.Size(overlayHeader{}) + +func decodeHeader(data []byte) (*openP2PHeader, error) { + head := openP2PHeader{} + rd := bytes.NewReader(data) + err := binary.Read(rd, binary.LittleEndian, &head) + if err != nil { + return nil, err + } + return &head, nil +} + +func encodeHeader(mainType uint16, subType uint16, len uint32) []byte { + head := openP2PHeader{ + len, + mainType, + subType, + } + headBuf := new(bytes.Buffer) + err := binary.Write(headBuf, binary.LittleEndian, head) + if err != nil { + return []byte("") + } + return headBuf.Bytes() +} + +// Message type +const ( + MsgLogin = 0 + MsgHeartbeat = 1 + MsgNATDetect = 2 + MsgPush = 3 + MsgP2P = 4 + MsgRelay = 5 + MsgReport = 6 +) + +const ( + MsgPushRsp = 0 + MsgPushConnectReq = 1 + MsgPushConnectRsp = 2 + MsgPushHandshakeStart = 3 + MsgPushAddRelayTunnelReq = 4 + MsgPushAddRelayTunnelRsp = 5 + MsgPushUpdate = 6 + MsgPushReportApps = 7 + MsgPushQuicConnect = 8 +) + +// MsgP2P sub type message +const ( + MsgPunchHandshake = iota + MsgPunchHandshakeAck + MsgTunnelHandshake + MsgTunnelHandshakeAck + MsgTunnelHeartbeat + MsgTunnelHeartbeatAck + MsgOverlayConnectReq + MsgOverlayConnectRsp + MsgOverlayDisconnectReq + MsgOverlayData + MsgRelayData + MsgRelayHeartbeat + MsgRelayHeartbeatAck +) + +// MsgRelay sub type message +const ( + MsgRelayNodeReq = iota + MsgRelayNodeRsp +) + +// MsgReport sub type message +const ( + MsgReportBasic = iota + MsgReportQuery + MsgReportConnect +) + +const ( + ReadBuffLen = 1024 + NetworkHeartbeatTime = time.Second * 30 // TODO: server no response hb, save flow + TunnelHeartbeatTime = time.Second * 15 + TunnelIdleTimeout = time.Minute + SymmetricHandshakeNum = 800 // 0.992379 + // SymmetricHandshakeNum = 1000 // 0.999510 + SymmetricHandshakeInterval = time.Millisecond + SymmetricHandshakeAckTimeout = time.Second * 11 + PeerAddRelayTimeount = time.Second * 20 + CheckActiveTimeout = time.Second * 5 + PaddingSize = 16 + AESKeySize = 16 + MaxRetry = 10 + RetryInterval = time.Second * 30 + PublicIPEchoTimeout = time.Second * 5 + NatTestTimeout = time.Second * 10 +) + +// error message +var ( + // ErrorS2S string = "s2s is not supported" + // ErrorHandshake string = "handshake error" + ErrorS2S = errors.New("s2s is not supported") + ErrorHandshake = errors.New("handshake error") +) + +// NATNone has public ip +const ( + NATNone = 0 + NATCone = 1 + NATSymmetric = 2 +) + +func newMessage(mainType uint16, subType uint16, packet interface{}) ([]byte, error) { + data, err := json.Marshal(packet) + if err != nil { + return nil, err + } + // gLog.Println(LevelINFO,"write packet:", string(data)) + head := openP2PHeader{ + uint32(len(data)), + mainType, + subType, + } + headBuf := new(bytes.Buffer) + err = binary.Write(headBuf, binary.LittleEndian, head) + if err != nil { + return nil, err + } + writeBytes := append(headBuf.Bytes(), data...) + return writeBytes, nil +} + +func nodeNameToID(name string) uint64 { + return crc64.Checksum([]byte(name), crc64.MakeTable(crc64.ISO)) +} + +type PushConnectReq struct { + From string `json:"from,omitempty"` + User string `json:"user,omitempty"` + Password string `json:"password,omitempty"` + Token uint64 `json:"token,omitempty"` + ConeNatPort int `json:"coneNatPort,omitempty"` + NatType int `json:"natType,omitempty"` + FromIP string `json:"fromIP,omitempty"` + ID uint64 `json:"id,omitempty"` +} +type PushConnectRsp struct { + Error int `json:"error,omitempty"` + From string `json:"from,omitempty"` + To string `json:"to,omitempty"` + Detail string `json:"detail,omitempty"` + NatType int `json:"natType,omitempty"` + ConeNatPort int `json:"coneNatPort,omitempty"` + FromIP string `json:"fromIP,omitempty"` + ID uint64 `json:"id,omitempty"` +} +type PushRsp struct { + Error int `json:"error,omitempty"` + Detail string `json:"detail,omitempty"` +} + +type LoginRsp struct { + Error int `json:"error,omitempty"` + Detail string `json:"detail,omitempty"` + Ts uint64 `json:"ts,omitempty"` +} + +type NatDetectReq struct { + SrcPort int `json:"srcPort,omitempty"` + EchoPort int `json:"echoPort,omitempty"` +} + +type NatDetectRsp struct { + IP string `json:"IP,omitempty"` + Port int `json:"port,omitempty"` + IsPublicIP int `json:"isPublicIP,omitempty"` +} + +type P2PHandshakeReq struct { + ID uint64 `json:"id,omitempty"` +} + +type OverlayConnectReq struct { + ID uint64 `json:"id,omitempty"` + User string `json:"user,omitempty"` + Password string `json:"password,omitempty"` + DstIP string `json:"dstIP,omitempty"` + DstPort int `json:"dstPort,omitempty"` + Protocol string `json:"protocol,omitempty"` + RelayTunnelID uint64 `json:"relayTunnelID,omitempty"` // if not 0 relay + AppID uint64 `json:"appID,omitempty"` +} +type OverlayDisconnectReq struct { + ID uint64 `json:"id,omitempty"` +} +type TunnelMsg struct { + ID uint64 `json:"id,omitempty"` +} + +type RelayNodeRsp struct { + RelayName string `json:"relayName,omitempty"` + RelayToken uint64 `json:"relayToken,omitempty"` +} + +type AddRelayTunnelReq struct { + From string `json:"from,omitempty"` + RelayName string `json:"relayName,omitempty"` + RelayToken uint64 `json:"relayToken,omitempty"` + AppID uint64 `json:"appID,omitempty"` + AppKey uint64 `json:"appKey,omitempty"` +} + +type RelayHeartbeat struct { + RelayTunnelID uint64 `json:"relayTunnelID,omitempty"` + AppID uint64 `json:"appID,omitempty"` +} + +type ReportBasic struct { + OS string `json:"os,omitempty"` + Mac string `json:"mac,omitempty"` + LanIP string `json:"lanIP,omitempty"` + IPv6 string `json:"IPv6,omitempty"` + Version string `json:"version,omitempty"` +} + +type ReportConnect struct { + Error string `json:"error,omitempty"` + Protocol string `json:"protocol,omitempty"` + SrcPort int `json:"srcPort,omitempty"` + NatType int `json:"natType,omitempty"` + PeerNode string `json:"peerNode,omitempty"` + DstPort int `json:"dstPort,omitempty"` + DstHost string `json:"dsdtHost,omitempty"` + PeerUser string `json:"peerUser,omitempty"` + PeerNatType int `json:"peerNatType,omitempty"` + PeerIP string `json:"peerIP,omitempty"` + ShareBandwidth int `json:"shareBandWidth,omitempty"` + RelayNode string `json:"relayNode,omitempty"` + Version string `json:"version,omitempty"` +} + +type UpdateInfo struct { + Error int `json:"error,omitempty"` + ErrorDetail string `json:"errorDetail,omitempty"` + Url string `json:"url,omitempty"` +} diff --git a/quic.go b/quic.go new file mode 100644 index 0000000..7a722ad --- /dev/null +++ b/quic.go @@ -0,0 +1,151 @@ +package main + +import ( + "context" + "crypto/rand" + "crypto/rsa" + "crypto/tls" + "crypto/x509" + "encoding/json" + "encoding/pem" + "fmt" + "io" + "math/big" + "net" + "sync" + "time" + + "github.com/lucas-clemente/quic-go" +) + +//quic.DialContext do not support version 44,disable it +var quicVersion []quic.VersionNumber + +type quicConn struct { + listener quic.Listener + writeMtx *sync.Mutex + quic.Stream + quic.Session +} + +func (conn *quicConn) ReadMessage() (*openP2PHeader, []byte, error) { + headBuf := make([]byte, openP2PHeaderSize) + _, err := io.ReadFull(conn, headBuf) + if err != nil { + return nil, nil, err + } + head, err := decodeHeader(headBuf) + if err != nil { + return nil, nil, err + } + dataBuf := make([]byte, head.DataLen) + _, err = io.ReadFull(conn, dataBuf) + return head, dataBuf, err +} + +func (conn *quicConn) WriteBytes(mainType uint16, subType uint16, data []byte) error { + writeBytes := append(encodeHeader(mainType, subType, uint32(len(data))), data...) + conn.writeMtx.Lock() + _, err := conn.Write(writeBytes) + conn.writeMtx.Unlock() + return err +} + +func (conn *quicConn) WriteBuffer(data []byte) error { + conn.writeMtx.Lock() + _, err := conn.Write(data) + conn.writeMtx.Unlock() + return err +} + +func (conn *quicConn) WriteMessage(mainType uint16, subType uint16, packet interface{}) error { + // TODO: call newMessage + data, err := json.Marshal(packet) + if err != nil { + return err + } + writeBytes := append(encodeHeader(mainType, subType, uint32(len(data))), data...) + conn.writeMtx.Lock() + _, err = conn.Write(writeBytes) + conn.writeMtx.Unlock() + return err +} + +func (conn *quicConn) Close() error { + conn.Stream.CancelRead(1) + conn.Session.CloseWithError(0, "") + return nil +} +func (conn *quicConn) CloseListener() { + if conn.listener != nil { + conn.listener.Close() + } +} + +func (conn *quicConn) Accept() error { + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() + sess, err := conn.listener.Accept(ctx) + if err != nil { + return err + } + stream, err := sess.AcceptStream(context.Background()) + if err != nil { + return err + } + conn.Stream = stream + conn.Session = sess + return nil +} + +func listenQuic(addr string, idleTimeout time.Duration) (*quicConn, error) { + gLog.Println(LevelINFO, "quic listen on ", addr) + listener, err := quic.ListenAddr(addr, generateTLSConfig(), + &quic.Config{Versions: quicVersion, MaxIdleTimeout: idleTimeout, DisablePathMTUDiscovery: true}) + if err != nil { + return nil, fmt.Errorf("quic.ListenAddr error:%s", err) + } + return &quicConn{listener: listener, writeMtx: &sync.Mutex{}}, nil +} + +func dialQuic(conn *net.UDPConn, remoteAddr *net.UDPAddr, idleTimeout time.Duration) (*quicConn, error) { + tlsConf := &tls.Config{ + InsecureSkipVerify: true, + NextProtos: []string{"openp2pv1"}, + } + session, err := quic.DialContext(context.Background(), conn, remoteAddr, conn.LocalAddr().String(), tlsConf, + &quic.Config{Versions: quicVersion, MaxIdleTimeout: idleTimeout, DisablePathMTUDiscovery: true}) + if err != nil { + return nil, fmt.Errorf("quic.DialContext error:%s", err) + } + stream, err := session.OpenStreamSync(context.Background()) + if err != nil { + return nil, fmt.Errorf("OpenStreamSync error:%s", err) + } + qConn := &quicConn{nil, &sync.Mutex{}, stream, session} + return qConn, nil +} + +// Setup a bare-bones TLS config for the server +func generateTLSConfig() *tls.Config { + key, err := rsa.GenerateKey(rand.Reader, 1024) + if err != nil { + panic(err) + } + template := x509.Certificate{SerialNumber: big.NewInt(1)} + certDER, err := x509.CreateCertificate(rand.Reader, &template, &template, &key.PublicKey, key) + if err != nil { + panic(err) + } + keyPEM := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key)}) + certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certDER}) + + tlsCert, err := tls.X509KeyPair(certPEM, keyPEM) + if err != nil { + panic(err) + } + return &tls.Config{ + Certificates: []tls.Certificate{tlsCert}, + NextProtos: []string{"openp2pv1"}, + } +} diff --git a/sysinfodarwin.go b/sysinfodarwin.go new file mode 100644 index 0000000..5a11b6e --- /dev/null +++ b/sysinfodarwin.go @@ -0,0 +1,30 @@ +//go:build darwin +// +build darwin + +package main + +import ( + "strings" + "syscall" +) + +func getOsName() (osName string) { + output := execOutput("sw_vers", "-productVersion") + osName = "Mac OS X " + strings.TrimSpace(output) + return +} + +func setRLimit() error { + var limit syscall.Rlimit + if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limit); err != nil { + return err + } + limit.Cur = 10240 + if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &limit); err != nil { + return err + } + return nil +} + +func setFirewall() { +} diff --git a/sysinfolinux.go b/sysinfolinux.go new file mode 100644 index 0000000..3a6e8c6 --- /dev/null +++ b/sysinfolinux.go @@ -0,0 +1,70 @@ +//go:build linux +// +build linux + +package main + +import ( + "bufio" + "bytes" + "io/ioutil" + "os" + "strings" + "syscall" +) + +func getOsName() (osName string) { + var sysnamePath string + sysnamePath = "/etc/redhat-release" + _, err := os.Stat(sysnamePath) + if err != nil && os.IsNotExist(err) { + str := "PRETTY_NAME=" + f, err := os.Open("/etc/os-release") + if err != nil && os.IsNotExist(err) { + str = "DISTRIB_ID=" + f, err = os.Open("/etc/openwrt_release") + } + if err == nil { + buf := bufio.NewReader(f) + for { + line, err := buf.ReadString('\n') + if err == nil { + line = strings.TrimSpace(line) + pos := strings.Count(line, str) + if pos > 0 { + len1 := len([]rune(str)) + 1 + rs := []rune(line) + osName = string(rs[len1 : (len(rs))-1]) + break + } + } else { + break + } + } + } + } else { + buff, err := ioutil.ReadFile(sysnamePath) + if err == nil { + osName = string(bytes.TrimSpace(buff)) + } + } + if osName == "" { + osName = "Linux" + } + return +} + +func setRLimit() error { + var limit syscall.Rlimit + if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limit); err != nil { + return err + } + limit.Max = 1024 * 1024 + limit.Cur = limit.Max + if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &limit); err != nil { + return err + } + return nil +} + +func setFirewall() { +} diff --git a/sysinfowin.go b/sysinfowin.go new file mode 100644 index 0000000..1779fa8 --- /dev/null +++ b/sysinfowin.go @@ -0,0 +1,51 @@ +//go:build windows +// +build windows + +package main + +import ( + "fmt" + "os" + "os/exec" + "path/filepath" + "strings" + + "golang.org/x/sys/windows/registry" +) + +func getOsName() (osName string) { + k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE|registry.WOW64_64KEY) + if err != nil { + return + } + defer k.Close() + pn, _, err := k.GetStringValue("ProductName") + if err == nil { + osName = pn + } + return +} + +func setRLimit() error { + return nil +} + +func setFirewall() { + fullPath, err := filepath.Abs(os.Args[0]) + if err != nil { + gLog.Println(LevelERROR, "add firewall error:", err) + return + } + isXP := false + osName := getOsName() + if strings.Contains(osName, "XP") || strings.Contains(osName, "2003") { + isXP = true + } + if isXP { + exec.Command("cmd.exe", `/c`, fmt.Sprintf(`netsh firewall del allowedprogram "%s"`, fullPath)).Run() + exec.Command("cmd.exe", `/c`, fmt.Sprintf(`netsh firewall add allowedprogram "%s" "%s" ENABLE`, ProducnName, fullPath)).Run() + } else { // win7 or later + exec.Command("cmd.exe", `/c`, fmt.Sprintf(`netsh advfirewall firewall del rule name="%s"`, ProducnName)).Run() + exec.Command("cmd.exe", `/c`, fmt.Sprintf(`netsh advfirewall firewall add rule name="%s" dir=in action=allow program="%s" enable=yes`, ProducnName, fullPath)).Run() + } +} diff --git a/totp.go b/totp.go new file mode 100644 index 0000000..cbf29cd --- /dev/null +++ b/totp.go @@ -0,0 +1,30 @@ +// Time-based One-time Password +package main + +import ( + "crypto/hmac" + "crypto/sha256" + "encoding/binary" +) + +const TOTPStep = 30 // 30s +func GenTOTP(user string, password string, ts int64) uint64 { + step := ts / TOTPStep + mac := hmac.New(sha256.New, []byte(user+password)) + b := make([]byte, 8) + binary.LittleEndian.PutUint64(b, uint64(step)) + mac.Write(b) + num := binary.LittleEndian.Uint64(mac.Sum(nil)[:8]) + // fmt.Printf("%x\n", mac.Sum(nil)) + return num +} + +func VerifyTOTP(code uint64, user string, password string, ts int64) bool { + if code == 0 { + return false + } + if code == GenTOTP(user, password, ts) || code == GenTOTP(user, password, ts-TOTPStep) || code == GenTOTP(user, password, ts+TOTPStep) { + return true + } + return false +} diff --git a/totp_test.go b/totp_test.go new file mode 100644 index 0000000..f641637 --- /dev/null +++ b/totp_test.go @@ -0,0 +1,36 @@ +// Time-based One-time Password +package main + +import ( + "testing" + "time" +) + +func TestTOTP(t *testing.T) { + for i := 0; i < 20; i++ { + ts := time.Now().Unix() + code := GenTOTP("testuser1", "testpassword1", ts) + t.Log(code) + if !VerifyTOTP(code, "testuser1", "testpassword1", ts) { + t.Error("TOTP error") + } + if !VerifyTOTP(code, "testuser1", "testpassword1", ts-10) { + t.Error("TOTP error") + } + if !VerifyTOTP(code, "testuser1", "testpassword1", ts+10) { + t.Error("TOTP error") + } + if VerifyTOTP(code, "testuser1", "testpassword1", ts+60) { + t.Error("TOTP error") + } + if VerifyTOTP(code, "testuser2", "testpassword1", ts+1) { + t.Error("TOTP error") + } + if VerifyTOTP(code, "testuser1", "testpassword2", ts+1) { + t.Error("TOTP error") + } + time.Sleep(time.Second) + t.Log("round", i, " ", ts, " test ok") + } + +} diff --git a/udp.go b/udp.go new file mode 100644 index 0000000..3ec9a26 --- /dev/null +++ b/udp.go @@ -0,0 +1,44 @@ +package main + +import ( + "bytes" + "encoding/binary" + "net" + "time" +) + +func UDPWrite(conn *net.UDPConn, dst net.Addr, mainType uint16, subType uint16, packet interface{}) (len int, err error) { + msg, err := newMessage(mainType, subType, packet) + if err != nil { + return 0, err + } + if dst == nil { + return conn.Write(msg) + } + return conn.WriteTo(msg, dst) +} + +func UDPRead(conn *net.UDPConn, timeout int) (ra net.Addr, head *openP2PHeader, result []byte, len int, err error) { + if timeout > 0 { + deadline := time.Now().Add(time.Millisecond * time.Duration(timeout)) + err = conn.SetReadDeadline(deadline) + if err != nil { + gLog.Println(LevelERROR, "SetReadDeadline error") + return nil, nil, nil, 0, err + } + } + + result = make([]byte, 1024) + len, ra, err = conn.ReadFrom(result) + if err != nil { + // gLog.Println(LevelDEBUG, "ReadFrom error") + return nil, nil, nil, 0, err + } + head = &openP2PHeader{} + err = binary.Read(bytes.NewReader(result[:openP2PHeaderSize]), binary.LittleEndian, head) + if err != nil { + gLog.Println(LevelERROR, "parse p2pheader error:", err) + return nil, nil, nil, 0, err + } + return +} diff --git a/update.go b/update.go new file mode 100644 index 0000000..1650f5a --- /dev/null +++ b/update.go @@ -0,0 +1,207 @@ +package main + +import ( + "archive/tar" + "archive/zip" + "compress/gzip" + "crypto/tls" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "os" + "path/filepath" + "runtime" + "time" +) + +// type updateFileInfo struct { +// Name string `json:"name,omitempty"` +// RelativePath string `json:"relativePath,omitempty"` +// Length int64 `json:"length,omitempty"` +// URL string `json:"url,omitempty"` +// Hash string `json:"hash,omitempty"` +// } + +func update() { + gLog.Println(LevelINFO, "update start") + defer gLog.Println(LevelINFO, "update end") + // TODO: download from gitee. save flow + c := http.Client{ + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + }, + Timeout: time.Second * 30, + } + goos := runtime.GOOS + goarch := runtime.GOARCH + rsp, err := c.Get(fmt.Sprintf("https://openp2p.cn:27182/api/v1/update?fromver=%s&os=%s&arch=%s", OpenP2PVersion, goos, goarch)) + if err != nil { + gLog.Println(LevelERROR, "update:query update list failed:", err) + return + } + defer rsp.Body.Close() + if rsp.StatusCode != http.StatusOK { + gLog.Println(LevelERROR, "get update info error:", rsp.Status) + return + } + rspBuf, err := ioutil.ReadAll(rsp.Body) + if err != nil { + gLog.Println(LevelERROR, "update:read update list failed:", err) + return + } + updateInfo := UpdateInfo{} + err = json.Unmarshal(rspBuf, &updateInfo) + if err != nil { + gLog.Println(LevelERROR, rspBuf, " update info decode error:", err) + return + } + if updateInfo.Error != 0 { + gLog.Println(LevelERROR, "update error:", updateInfo.Error, updateInfo.ErrorDetail) + return + } + os.MkdirAll("download", 0666) + err = updateFile(updateInfo.Url, "", "openp2p") + if err != nil { + gLog.Println(LevelERROR, "update: download failed:", err) + return + } +} + +// todo rollback on error +func updateFile(url string, checksum string, dst string) error { + gLog.Println(LevelINFO, "download ", url) + tmpFile := filepath.Dir(os.Args[0]) + "/openp2p.tmp" + output, err := os.OpenFile(tmpFile, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0776) + if err != nil { + gLog.Printf(LevelERROR, "OpenFile %s error:%s", tmpFile, err) + return err + } + tr := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + } + client := &http.Client{Transport: tr} + response, err := client.Get(url) + if err != nil { + gLog.Printf(LevelERROR, "download url %s error:%s", url, err) + output.Close() + return err + } + defer response.Body.Close() + n, err := io.Copy(output, response.Body) + if err != nil { + gLog.Printf(LevelERROR, "io.Copy error:%s", err) + output.Close() + return err + } + output.Sync() + output.Close() + gLog.Println(LevelINFO, "download ", url, " ok") + gLog.Printf(LevelINFO, "size: %d bytes", n) + + err = os.Rename(os.Args[0], os.Args[0]+"0") + if err != nil && os.IsExist(err) { + gLog.Printf(LevelINFO, " rename %s error:%s", os.Args[0], err) + } + // extract + gLog.Println(LevelINFO, "extract files") + err = extract(filepath.Dir(os.Args[0]), tmpFile) + if err != nil { + gLog.Printf(LevelERROR, "extract error:%s. revert rename", err) + os.Rename(os.Args[0]+"0", os.Args[0]) + return err + } + return nil +} + +func extract(dst, src string) (err error) { + if runtime.GOOS == "windows" { + return unzip(dst, src) + } else { + return extractTgz(dst, src) + } +} + +func unzip(dst, src string) (err error) { + archive, err := zip.OpenReader(src) + if err != nil { + return err + } + defer archive.Close() + + for _, f := range archive.File { + filePath := filepath.Join(dst, f.Name) + fmt.Println("unzipping file ", filePath) + + // if !strings.HasPrefix(filePath, filepath.Clean(dst)+string(os.PathSeparator)) { + // fmt.Println("invalid file path") + // return + // } + if f.FileInfo().IsDir() { + fmt.Println("creating directory...") + os.MkdirAll(filePath, os.ModePerm) + continue + } + if err := os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil { + return err + } + dstFile, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) + if err != nil { + return err + } + fileInArchive, err := f.Open() + if err != nil { + return err + } + if _, err := io.Copy(dstFile, fileInArchive); err != nil { + return err + } + dstFile.Close() + fileInArchive.Close() + } + return nil +} + +func extractTgz(dst, src string) error { + gzipStream, err := os.Open(src) + if err != nil { + return err + } + uncompressedStream, err := gzip.NewReader(gzipStream) + if err != nil { + return err + } + tarReader := tar.NewReader(uncompressedStream) + for { + header, err := tarReader.Next() + if err == io.EOF { + break + } + if err != nil { + return err + } + switch header.Typeflag { + case tar.TypeDir: + if err := os.Mkdir(header.Name, 0755); err != nil { + return err + } + case tar.TypeReg: + filePath := filepath.Join(dst, header.Name) + outFile, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(header.Mode)) + if err != nil { + return err + } + if err != nil { + return err + } + defer outFile.Close() + if _, err := io.Copy(outFile, tarReader); err != nil { + return err + } + default: + return err + } + } + return nil +}