文章介绍:使用当前最新版本Vyos-1.4.0-epa2部署AnyLink,AnyLink是一个企业级SSLVPN软件,可以支持多人同时在线使用。基于 openconnect 协议开发,并且借鉴了 ocserv 的开发思路,可以完全兼容 AnyConnect 客户端,AnyLink 使用 TLS/DTLS 进行数据加密,因此需要 RSA 或 ECC 证书,可以通过 Let's Encrypt 和 TrustAsia 申请免费的 SSL 证书,AnyLink 服务端支持Centos,Ubuntu,Debian等系统,如需要安装在其他系统,需要服务端支持 tun/tap 功能、ip 设置等命令。

一、项目来源

1.1、Gitee-bjdgyc

bjdgyc/anylink

1.2、GitHub-bjdgyc

bjdgyc/anylink

二、部署准备

2.1、vyos镜像

vyos-1.4.0-epa2-amd64 vyos-1.4.0-epa2-amd64

2.2、anylink服务端

anylink-0.11.4-linux-amd64.tar.gz anylink-0.11.4-linux-amd64.tar.gz

2.3、一个域名

Namesilo最便宜的域名一年不到15元(申请后托管cloudflare)

ClouDNS,每个账户提供一个免费的二级域名(申请后托管cloudflare)

2.4、一个公网IP

如果你没有公网IP,恰巧你是用vyos部署的,那我可以给你一个公网端口测试(仅限vyso部署免费提供)。

2.5、VPN客户端

2.5.1、Cisco AnyConnect

本链接由博主提供免费Cisco官网的最新客户端软件,以及免费开源的OpenConnect客户端。

Cisco Secure Client

此链接是GitHub一位项目开发者专门为AnyLink开发的客户端(支持Windwos,macOS,Linux)。

AnyLink Client

2.6、totp客户端

2.6.1、安卓动态令牌

Andoid

2.6.2、苹果动态令牌

iOS

2.7、ssh工具

MobaXterm

三、安装Vyos

3.1、安装

如果你不会使用VMware安装vyos系统,请先查看如下教程。

【Vyos-开源篇-1】- VMware安装vyos虚拟机

yydy_2024-03-23_20-56-57

3.2、基础配置

yydy_2024-03-23_21-11-53

3.3、必要配置

这一步是为了后面web登录时需要启用otp动态令牌的话,需要把Vyos本地系统时间同步到网络时间一致,否则可能会出现登录不上系统的情况。

conf
set service ntp server ntp.aliyun.com
set system time-zone 'Asia/Shanghai'
commit
save

四、安装AnyLink

4.1、拉取文件

wget -P /tmp https://github.com/bjdgyc/anylink/releases/download/v0.11.4/anylink-0.11.4-linux-amd64.tar.gz

4.2、解压文件

tar -zxvf /tmp/anylink-0.11.4-linux-amd64.tar.gz

4.3、移动文件

sudo mv anylink-deploy/ /usr/local/

4.4、赋予权限

chmod +x /usr/local/anylink-deploy/anylink

4.5、移动服务文件

sudo mv /usr/local/anylink-deploy/deploy/anylink.service /etc/systemd/system

4.6、赋予权限

chmod +x /etc/systemd/system/anylink.service

4.7、启动服务

sudo systemctl start anylink

4.8、查看服务

sudo systemctl status anylink

yydy_2024-03-23_21-24-42

4.9、开机自启

sudo systemctl enable anylink

4.10、Web访问

浏览器打开,https://your-ip:8800
默认账户:admin,默认密码:123456

yydy_2024-03-23_21-49-13
yydy_2024-03-23_21-49-48

五、自定义AnyLink

5.1、进入文件目录

cd /usr/local/anylink-deploy/

5.2、停止服务

sudo systemctl stop anylink

5.3、创建新密码

请把你的”Passwd:“后面的都复制到记事本,这就是abc@123加密后的密文,稍后需要用来替换服务端配置文件。

./anylink tool -p abc@123
Passwd:$2a$10$eO7aH3twg6xzsw/oY29ki9Joic8wrsF4ZhufVmGxVkC38h0jtn.dbK

5.4、创建jwt密钥

请把你的”Secret:“后面的都复制到记事本,这就是jwt加密后的密文,稍后需要用来替换服务端配置文件。

./anylink tool -s
Secret:sjjP3Me68K-ppXe-au4MppLifqbEgLu19gc1fl7DrZpBcE5donOPCgqer

5.5、创建动态令牌(可选)

如果开启了totp动态令牌认证登录,则登录密码将变成:abc@123+六位数字(中间没有:”+“号)
请把你的”Otp:“后面的都复制到记事本,这就是totp加密后的密文,稍后需要用来替换服务端配置文件。

./anylink tool -o
Otp:35TQE2F2AHYR6B3CKOXZVSZGGKLNLIM5HJ6VDG2TOEVRAGY3SVF5A

六、修改服务端配置

6.1、进入conf目录

cd conf/

6.2、编辑server.toml

nano server.toml

6.2.1、修改issuer

自定义内容

issuer = "杨杨得亿-AnyLink-SSLVPN"

6.2.2、修改管理员账户

admin_user = "yydy"

6.2.3、修改密码

把上面5.3步骤的密文复制到双引号里面,把旧的删除。

admin_pass = "$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke"

6.2.4、修改jwt

把上面5.4步骤的密文复制到双引号里面,把旧的删除。

jwt_secret = "abcdef.0123456789.abcdef"

6.2.5、开启totp(可选)

把上面5.5步骤的密文复制到双引号里面。

admin_otp = ""

6.2.6、修改客户端IP

默认是192.168.90.0/24,如果和内网冲突请修改,vyos部署时下面的ipv4_master默认就是eth0,如果是linux部署,请使用"ip addr"查看服务器上网网卡名称

ipv4_master = "eth0"
ipv4_cidr = "100.64.90.0/24"
ipv4_gateway = "100.64.90.1"
ipv4_start = "100.64.90.2"
ipv4_end = "100.64.90.200"

6.2.7、关闭display_error

display_error = false

6.3、开启服务

sudo systemctl start anylink

yydy_2024-03-23_22-44-10

6.4、重登Web

yydy_2024-03-23_23-57-08

七、Web功能配置

主要介绍部分实用功能,其他未介绍的功能请看官方文档。

7.1、基础信息配置

这里以qq邮箱为例。

7.1.1、邮箱配置

yydy_2024-03-26_23-00-52

yydy_2024-03-26_23-00-00

yydy_2024-03-26_22-58-14

7.1.2、证书设置

这里我是使用Let's Encrypt,使用托管到cloudflare的域名进行证书申请,我直接截图重点位置,就是DNS的token获取,下面所有操作完后,点击保存获得到一串token字段,请保存好。

yydy_2024-03-26_23-31-18

yydy_2024-03-26_23-33-12

7.1.3、其他设置

yydy_2024-03-26_23-46-14

7.2、创建用户组列表

把里面默认的俩个删除(all和ops),然后自己新建。

7.2.1、删除默认组

yydy_2024-03-24_22-54-33

7.2.2、创建普通用户组

普通用户组只下发内网明细路由走隧道。

yydy_2024-03-28_16-57-05

yydy_2024-03-24_23-06-14

yydy_2024-03-24_23-09-21

yydy_2024-03-24_23-11-52

yydy_2024-03-24_23-17-03

7.2.3、创建全局用户组

全局用户组下发八个零的默认路由,全部路由走隧道。

yydy_2024-03-24_23-18-27

yydy_2024-03-24_23-06-14

yydy_2024-03-24_23-20-58

yydy_2024-03-24_23-11-52

yydy_2024-03-24_23-17-03

7.2.4、创建域名分流用户组

域名用户组指定域名走隧道。

yydy_2024-03-24_23-21-44

yydy_2024-03-24_23-06-14

yydy_2024-03-26_22-43-42

yydy_2024-03-24_23-11-52

yydy_2024-03-26_22-46-05

7.3、创建用户

yydy_2024-03-26_23-57-45

yydy_2024-03-26_23-55-47

yydy_2024-03-26_23-57-00

八、客户端测试

8.1、测试普通用户组

普通用户权限只能访问内网,国内DNS223.5.5.5,国外DNS8.8.8.8都会走本地上网网卡。

yydy_2024-03-27_00-07-20

yydy_2024-03-27_00-09-36

8.2、添加SNAT

set nat source rule 100 outbound-interface name eth0 #vyos上网出接口
set nat source rule 100 source address 100.64.90.0/24 #AnyLink-sslvpn的客户端网段
set nat source rule 100 translation address masquerade #nat成出接口上网

8.3、测试tracert

yydy_2024-03-27_00-12-58

8.4、测试全局用户组

全局用户权限是所有流量都走vpn隧道,所以内网走vpn,国内外dns223.5.5.5和8.8.8.8都会走vpn,可以通过路由表查看详细路由。

yydy_2024-03-27_00-17-24

yydy_2024-03-27_00-18-14

8.5、测试域名分流用户组

域名分流我们只规定了谷歌和油管走vpn,其他默认走本地。

yydy_2024-03-27_00-24-29