开源企业级远程办公 VPN 软件 AnyLink 的 docker 部署及使用心得
1.前言
前段时间发现一款新的开源 VPN 软件 AnyLink ,主打企业远程办公的功能,在关注了一段时间后,尝试安装配置使用了几天感觉也非常不错,所以出一篇简单的安装部署教程.
2.简单体验心得
先简单总结下安装及使用的一点心得:
AnyLink 基于 ietf-openconnect 协议开发,并且借鉴了 ocserv 的开发思路,使其可以同时兼容 AnyConnect 客户端.
AnyLink 最主要的功能莫过于用户分组功能
.通过设置分组权限可以使不同用户或员工能访问的网段和路由也不同,加上支持 SMTP 邮件来分发密码,同时也支持 OTP 密码,确实更适合小型企业的远程访问管理.而目前并不能
像 Openconnect VPN 一样支持证书登录,所以每次连接都需要手动输入密码.
在安装方面, AnyLink 也非常简单,支持编译安装,常规 release 下载安装,以及 docker 部署.个人当然是推荐使用 docker 来安装.就目前短暂使用的情况下来看并没有发现 docker 部署是否和其他直接在服务器上安装有什么区别.
3.安装过程
3.1 拉取镜像
拉取镜像以备后续使用.
docker pull stilleshan/anylink
3.2 创建密码
首次运行以下命令来创建管理员密码.以下命令中含rm
参数,仅用于执行创建密码的命令,会自行删除.将生成的Passwd
和secret
保存.
[root@VM-30-10-centos ~]# docker run -it --rm stilleshan/anylink tool -p sirix1234
Passwd:$2a$10$lqVCW5R/emiQQ0HlUB6uzeJ4OeDIg3murOf39lFj5rB5KmnCd8wly
[root@VM-30-10-centos ~]# docker run -it --rm stilleshan/anylink tool -s
Secret:2uKTyNwT8KqsbPigs3glwj8aRPYMavlTINinHuSDticApXPGpLlJaGmz5WvysqS2mkJyntyyA44
[root@VM-30-10-centos ~]#
3.3 获取配置目录
复制以下命令,首次启动容器,拷贝配置文件到宿主机后删除容器.
docker run -itd --name anylink-tmp --privileged=true stilleshan/anylink
使用
docker cp
将配置文件目录拷贝到当前目录docker cp anylink-tmp:/app/conf .
删除容器
docker stop anylink-tmp docker rm anylink-tmp
3.4 正式启动容器
docker run -d \
--name anylink \
--restart always \
--privileged=true \
-p 443:443 \
-p 8800:8800 \
-v /root/conf:/app/conf \
stilleshan/anylink -c=/app/conf/server.toml
3.5 管理后台
访问内网IP:端口
,本例http://xxx.xxx.xxx.xxx:8800
输入admin
密码登陆后台管理系统. 后台管理非常简单明了,只需要配置用户组
,用户
即可开始使用,如需邮件分发密码功能可以在其他设置
中配置.
3.6 其他设置
邮件配置
中可以配置 SMTP 邮件服务器信息,用于分发用户密码,适用于多用户的企业环境.如无需求可以跳过.
其他设置
中可以配置邮件分发模版和登录提示信息.此处博主建议自行增加一行端口信息.由于软件默认推荐是443
端口,而大多数情况下可能无法使用该端口.如下图自行增加一行.
Banner 信息如无需要可以删除,这样在客户端登录时不会出现多余的弹窗
同时需在server.toml
配置文件中修改以下相关参数来使邮件显示正确的信息.
3.7 用户组信息
添加用户组
只需要填写组名,其他保持默认,则表示该组用户所有流量都将被 VPN 服务器代理,属于完整的全局代理
.
包含路由
如果添加内网网段,例如博主的网段为172.16.20.0/23
,则表示该组用户可以访问内网设备,而互联网请求依旧使用客户端本地的网络访问
.
DNS 服务器
可根据需求自行设置,由于博主平时喜欢用阿里DNS,所以下图中将 DNS 服务器修改为阿里云DNS 所在的服务器的IP.
3.8 用户信息
添加新用户
并且分配用户组,PIN 码
为客户端的登录密码,如果配置了 SMTP 并勾选了发送邮件
,则会创建随机密码以邮件的形式发送.也可以手动设置密码.OTP
功能如果没有需求建议关闭即可.
3.9 证书配置
对于线上环境,必须申请安全的 https 证书,不支持私有证书连接。
自行替换conf目录内的
vpn_cert.crt
和vpn_cert.key
文件为对应域名的SSL证书即可。
3.10 客户端下载
- anyconnect-linux64-4.10.05111.tar.gz
- anyconnect-macos-4.10.05111.dmg
- anyconnect-win-4.10.05111.msi
- [CiscoSecureClientAnyConnect_v5.0.00238-Android.apk](https://static.gmtgo.com/upload/uPic/2022_07_27_17_28_33_Cisco Secure Client AnyConnect_v5.0.00238.apk)
3.11 客户端登录
输入 服务器域名:端口 连接,填写账号密码即可连接成功
4.结语
由于 AnyLink 还在持续的更新和优化中,博主也仅仅使用了几天,同时使用场景也有限,无法给出更全面的评测.大家感兴趣的可以关注 GitHub 项目,期待后续更加完善的版本.