本文将教会你使用Anylink搭建办公室/公司等需求安全接入场景的SSLVPN远程接入网关

为什么是SSLVPN:SSL基于Layer7(TCP协议)更好的绕过运营商封锁,拥有更好的使用场景

什么是Anylink?(GitHub简介):AnyLink是一个企业级远程办公 ssl vpn 软件,可以支持多人同时在线使用。基于 openconnect 协议开发,并且借鉴了 ocserv 的开发思路,可以完全兼容 AnyConnect 客户端。

108ae5a0-c4c2-41bb-91e1-84ec0bce9314.png

环境说明

基于pve的linux容器(LXC)

内网网段为192.168.31.1/24

TUN模式转发流量

ACME自动签发续期证书

Anylink版本0.12.2

安装Anylink

  1. 通过wget下载anylink压缩包

wget https://github.com/bjdgyc/anylink/releases/download/v0.12.2/anylink-0.12.2-linux-amd64.tar.gz

f81b139c-ee1c-4da5-a78f-36d3d24c8389.png

(因为Github国内访问超时,所以使用ghproxy.net加速)

  1. tar解压anylink压缩包

tar -xzvf anylink-0.12.2-linux-amd64.tar.gz -C /usr/local/

fcf66bff-f55a-4025-94a2-4e1d6f50f9c8.png

  1. 进入到anylink目录

cd /usr/local/anylink-deploy

acfacaa1-fd83-4069-ac1d-802a39ca2a23.png

  1. 设置密码

通过指令 ./anylinktool -p 密码生成密码所对应的密文(密码设置成自己的)

注意密码不能有 $符号,会被当成变量

./anylinktool -p 123456

8fdaa27d-f384-46f8-8c2e-1a3a3e6c61a5.png

  1. 生成JWT密钥

./anylink tool -s

f1b46940-dcc3-4bb3-a2b6-7b6abaddc701.png

  1. 编辑配置文件

nano ./conf/server.toml

84f5b924-2924-4d72-9e6f-121d85f08061.png

将刚刚的配置填入配置文件

283f4b3b-7149-42d6-9f34-64930821e8d0.png

  1. 尝试运行

5ac36fc5-d8d1-4672-93e5-0ac531b38a46.png

在运行之后,通过https://ip:端口 的方式打开Anylink的后台管理界面进行邮箱、证书等配置

a07657f2-ebc0-40eb-ba12-1c0583160c4e.png

df6d5f28-91d5-4605-b0e9-ba0ced2019b2.png

  1. 设置开机自启动

如果按照上述步骤的路径进行安装,通过指令 cp /usr/local/anylink-deploy/systemd/anylink.service /usr/lib/systemd/system/即可添加anylink的service文件

或者将以下文本添加到 /usr/lib/systemd/system/anylink.service

[Unit]
Description=AnyLink Server Service
Documentation=https://github.com/bjdgyc/anylink
After=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/anylink-deploy
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/anylink-deploy/anylink --conf=/usr/local/anylink-deploy/conf/server.toml

[Install]
WantedBy=multi-user.target

通过systemctl控制anylink service

启动anylink systemctl start anylink

停止anylink systemctl stop anylink

启用开机自启动 systemctl enable anylink

停用开机自启动 systemctl disable anylink

查看anylink状态 systemctl status anylink

客户端下载

由于Cisco Secure Client 的官方客户端需要授权成为合作伙伴的用户才能下载

遂通过网络上 Cisco合作伙伴 对文件的分享进行下载

下载地址 https://pan.yydy.link:2023/share/anyconnectvpn/anyconnect-new

在此感谢 杨杨得亿 提供的官方客户端

常见问题

TUN报错

如果Anylink运行在Proxmox VE的LXC容器下,则需要在 /etc/pve/lxc/XXX.conf配置文件的后面添加两行

(将XXX改为LXC容器的id)

lxc.hook.autodev: sh -c "modprobe tun"
lxc.mount.entry: /dev/net/tun /var/lib/lxc/XXX/rootfs/dev/net/tun none bind,create=file

b9c4924c-acb5-43d6-a5a7-3af9661a5811-BotE.png

浏览器提示 ERR_NETWORK_ACCESS_DENIED

请检查用户组是否关闭了排除本地网络选项

35a5f5bc-c52d-408f-b5ce-f3f238729276.png

写在最后

文章的写作参考了 Anylink安装使用教程(tun模式) · Issue #71 · bjdgyc/anylink