增加管理后台

This commit is contained in:
bjd
2020-12-16 16:36:56 +08:00
parent 31b1f12dbe
commit a9584000c6
68 changed files with 2408 additions and 1281 deletions

View File

@@ -1,22 +1,46 @@
# AnyLink
AnyLink 是一个企业级远程办公vpn软件可以支持多人同时在线使用。
[![PkgGoDev](https://pkg.go.dev/badge/github.com/bjdgyc/anylink)](https://pkg.go.dev/github.com/bjdgyc/anylink)
AnyLink 是一个企业级远程办公ssl vpn软件可以支持多人同时在线使用。
## Repo
> github: https://github.com/bjdgyc/anylink
> gitee: https://gitee.com/bjdgyc/anylink
## Introduction
AnyLink 基于 [ietf-openconnect](https://tools.ietf.org/html/draft-mavrogiannopoulos-openconnect-02) 协议开发,并且借鉴了 [ocserv](http://ocserv.gitlab.io/www/index.html) 的开发思路,使其可以同时兼容 AnyConnect 客户端。
AnyLink 基于 [ietf-openconnect](https://tools.ietf.org/html/draft-mavrogiannopoulos-openconnect-02)
协议开发,并且借鉴了 [ocserv](http://ocserv.gitlab.io/www/index.html) 的开发思路,使其可以同时兼容 AnyConnect 客户端。
AnyLink 使用TLS/DTLS进行数据加密因此需要RSA或ECC证书可以通过 Let's Encrypt 和 TrustAsia 申请免费的SSL证书。
AnyLink 服务端仅在CentOS7测试通过如需要安装在其他系统需要服务端支持tun/tap功能、ip设置命令。
## Installation
```
rootPath=`pwd`
git clone https://github.com/bjdgyc/anylink.git
cd anylink
git clone https://github.com/bjdgyc/anylink-web.git
cd $rootPath/anylink-web
npm install
npm run build
cd $rootPath/anylink
go build -o anylink -ldflags "-X main.COMMIT_ID=`git rev-parse HEAD`"
mkdir $linkPath/anylink-deploy
$linkPath/anylink-deploy
cp -r $rootPath/anylink-web/ui .
cp -r $rootPath/anylink/anylink .
cp -r $rootPath/anylink/conf .
cp -r $rootPath/anylink/downfiles .
#注意使用root权限运行
sudo ./anylink -conf="conf/server.toml"
```
@@ -28,17 +52,16 @@ sudo ./anylink -conf="conf/server.toml"
- [x] 兼容AnyConnect
- [x] 基于tun设备的nat访问模式
- [x] 基于tap设备的桥接访问模式
- [x] 多用户支持
- [x] 支持 [proxy protocol v1](http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt) 协议
- [x] 用户组支持
- [x] 多用户支持
- [x] TOTP令牌支持
- [x] 流量控制
- [x] 后台管理界面
- [ ] 用户组支持
- [ ] TOTP令牌支持
- [ ] 流量控制
- [ ] 访问权限管理
- [ ] 后台管理界面
- [ ] DTLS-UDP通道
## Config
默认配置文件内有详细的注释,根据注释填写配置即可。
@@ -47,11 +70,9 @@ sudo ./anylink -conf="conf/server.toml"
## Setting
网络模式选择,需要配置 `link_mode` 参数,如 `link_mode="tun"`,`link_mode="tap"` 两种参数。
不同的参数需要对服务器做相应的设置。
网络模式选择,需要配置 `link_mode` 参数,如 `link_mode="tun"`,`link_mode="tap"` 两种参数。 不同的参数需要对服务器做相应的设置。
建议优先选择tun模式因客户端传输的是IP层数据无须进行数据转换。
tap模式是在用户态做的链路层到IP层的数据互相转换性能会有所下降。
建议优先选择tun模式因客户端传输的是IP层数据无须进行数据转换。 tap模式是在用户态做的链路层到IP层的数据互相转换性能会有所下降。 如果需要在虚拟机内开启tap模式请确认虚拟机的网卡开启混杂模式。
### tun设置
@@ -69,18 +90,17 @@ tap模式是在用户态做的链路层到IP层的数据互相转换性能会
# eth0为服务器内网网卡
iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.255.0 -o eth0 -j MASQUERADE
```
3. 使用AnyConnect客户端连接即可
### tap设置
1. 创建桥接网卡
```
注意 server.toml 的ip参数需要与 bridge.sh 的配置参数一致
```
2. 修改 bridge-init.sh 内的参数
2. 修改 bridge.sh 内的参数
```
# file: ./bridge.sh
eth="eth0"
@@ -89,13 +109,11 @@ tap模式是在用户态做的链路层到IP层的数据互相转换性能会
eth_broadcast="192.168.1.255"
eth_gateway="192.168.1.1"
```
3. 执行 bridge.sh 文件
```
sh bridge.sh
```
## License