企业级远程办公vpn软件AnyLink
疫情尚未结束,给需要远程办公的人
什么是 AnyLink ?
AnyLink是一个企业级远程办公ssl vpn软件,可以支持多人同时在线使用。基于openconnect协议开发,并且借鉴了ocserv的开发思路,可以完全兼容AnyConnect客户端。
什么是 OTP ?
一次性密码(
One Time Password,简称OTP),又称“一次性口令”,是指只能使用一次的密码。一次性密码是根据专门算法、每隔60秒生成一个不可预测的随机数字组合,iKEY一次性密码已在金融、电信、网游等领域被广泛应用,有效地保护了用户的安全。【百度百科】
OTP 软件挺多的,比如老苏用的 Microsoft Authenticator,还有 Google Authenticator 等等,AnyLink 官方推荐用 FreeOTP
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 anylink ,选择第二个 bjdgyc/anylink,版本选择 latest。

权限
勾选 使用高权限执行容器,并点击 是

高级设置
勾选 启用自动重新启动

卷
在 docker 文件夹中,创建一个新文件夹,并将其命名为 anylink
| 文件夹 | 装载路径 |
|---|---|
docker/anylink |
/app/conf |

端口
1 | # 查看端口占用 |

443 默认是被占用的,所以需要修改端口
| 本地端口 | 容器端口 |
|---|---|
12443 |
443 |
12080 |
8800 |

运行
在浏览器中输入 http://群晖IP:12080 就能看到管理后台的登录界面

默认账号:
admin; 密码:123456
登录成功后的主界面

设置
在日志中,你会看到两条警告⚠️信息

进入 终端机,「终端机」 => 「新增」 => 「通过命令启动」=> 「请输入一个命令」=> 「bash」

依次执行下面👇的命令
1 | # 生成 Passwd |
将红框中生成的内容保存,后面会用到

如果你想改后台登录密码,比如改为 abcdef,就执行下面的命令生成对应的 Passwd

设置 server.toml
下载 server-sample.toml 文件,地址:https://github.com/bjdgyc/anylink/blob/main/server/conf/server-sample.toml
这是国人开发的项目,老苏也想用
gitee的地址,不过打开server-sample.toml文件会显示👇

如果你熟悉命令行,也可以用命令行下载
1 | # 进入 anylink 目录 |
如果下不了,可以自己建一个,将其重命名为 server.toml,主要有几处可能需要修改
| 变量 | 值 |
|---|---|
admin_pass |
填入前面获取的 Passwd 值 |
jwt_secret |
填入前面获取的 Secret 值 |
link_addr |
这是 vpn 服务对外的地址,需要新增 |
cert_file |
配合 link_addr 域名地址的证书 |
cert_key |
配合 link_addr 域名地址的证书 |
ipv4_cidr |
vpn 客户端分配的 ip 地址池 |
admin_pass必须改,不然不然后台登录不了jwt_secret必须改,不然会存在安全风险

link_addr须增加,官方的demo中并没有,是根据参考文档2增加的,比如老苏用了vpn.laosu.ml

- 老苏是在
dnspod.cn上做域名解析的,直接在那申请了TrustAsia的证书

下载的证书解压后,使用 nginx 目录下的证书

原来的文件名比较长,老苏改短了,配置中做相应的修改

ipv4_cidr如果修改了地址段,相应的ipv4_gateway、ipv4_start、ipv4_end都要跟着一起修改,老苏家里用的是0网段,老读者都知道老苏群晖的主机IP为192.168.0.197,所以这里改成了192.168.0.0/24,相应的ipv4_gateway改为了192.168.0.1;ipv4_start分了192.168.0.220,ipv4_end分了192.168.0.230,总共就10个IP

将 server.toml 、以及 2 个证书文件上传到 anylink 目录,现在目录中有 4 个文件了

重启容器

邮件配置
这是为了添加用户时,发邮件通知用的。进管理后台,基础信息 –> 其他设置 –> 邮件配置,还是用的 88 邮箱做示例

添加用户组
进管理后台,用户组信息–> 用户组列表,添加 用户组
老苏把
DNS指向了主路由,其实用默认的114.114.114.114也是可以的

添加用户
进管理后台,用户信息 –> 用户列表,添加 用户
老苏先禁用了
OTP,但是开启OTP的情况也是做了测试验证的

如果邮箱没问题,很快就会收到邮件

如果要显示二维码,进管理后台,基础信息 –> 其他设置 –> 其他设置, vpn对外地址 填写 link_addr 加上端口即可

二维码主要是给 OPT 软件扫码用的,用于生成登录时需要的动态码

frp 设置
如果你是有公网 IP 的,只要路由器放行 12443 就可以了,协议为 TCP;老苏用的是 frp,需要在 frpc.ini 中增加下面👇这段
1 | [anylink] |
保存之后,重启 frpc 容器
使用
终于可以开始使用了,AnyConnect 客户端可以去 Stille 大神的 『 OpenWRT 路由器 OpenConnect VPN 详细图文教程 - 基础配置篇 』中找,大神将 AnyConnect 客户端按平台整理好了,致敬!

AnyConnect 客户端只要装 VPN 模块即可,其他的用不上

安装完成后启动 AnyConnect 客户端,将 link_addr 加上端口填入即可,客户端没有其他的任何设置

完成后点 Connect,如果前面设置没有问题的话,应该会弹出登录窗口

【说明】:
禁用 OTP的情况下,密码只要输入PIN码启用 OTP的情况下,密码要输入PIN码+6位动态码- 老苏用
Microsoft Authenticator验证可用
输入密码之后,会弹出 Banner,这是个欢迎页面,内容可以在管理后台设置

点 Accept 接受之后,就可以像在家里一样,直接用 192.168.0.xx 来访问家里的设备了

不用了可以点 Disconnect 断开连接

注意事项
- 不要和
tailscale一起用 - 《中华人民共和国计算机信息网络国际联网管理暂行规定》第六条:“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”
- 根据工信部《工业和信息化部关于清理规范互联网网络接入服务市场的通知》的规定:“未经电信主管部门批准,不得自行建立或租用专线(含虚拟专用网络VPN)等其他信道开展跨境经营活动。”
参考文档
bjdgyc/anylink: AnyLink是一个企业级远程办公 ssl vpn 软件,可以支持多人同时在线使用。基于 openconnect 协议开发,并且借鉴了 ocserv 的开发思路,可以完全兼容 AnyConnect 客户端。
地址:https://github.com/bjdgyc/anylink开源企业级远程办公 VPN 软件 AnyLink 的 docker 部署及使用心得 - 思有云 - IOIOX
地址:https://www.ioiox.com/archives/128.htmlOpenWRT 路由器 OpenConnect VPN 详细图文教程 - 基础配置篇 - 思有云 - IOIOX
地址:https://www.ioiox.com/archives/89.htmlMAC上Cisco AnyConnect删除不干净,造成无法重新安装的解决办法 - 简书
地址:https://www.jianshu.com/p/8cf02bfa0388