网络实战 | 从零搭建免费的企业级的远程办公方案 SSL

网络实战 | 从零搭建免费的企业级的远程办公方案 SSL

2 周前 16 0 0℃

网络实战 | 从零搭建免费的企业级的远程办公方案 SSL

通过真实部署与实测,记录了基于 AnyLink 的企业远程访问方案搭建过程,并验证了在实际办公场景下,通过账号…

今天搭建并实测了一套免费的开源远程访问方案 AnyLink
无论是远程接入公有云做运维,还是员工访问办公室内网,都可以实现,并且支持 IP 分流域名分流

相比一些商业方案,免费方案的优势在于:不限制带宽、不限制终端数量,配置和使用节奏完全由自己掌控,更适合用来验证需求或作为长期可控的基础方案。

本次测试使用 AnyLink SSL VPN 搭建远程办公环境,主要验证两个场景:

  • 员工远程访问公司内部业务系统;
  • 基于员工账号进行权限划分,不同部门只访问各自需要的资源。

一、网络环境

  • 准备一台 Ubuntu 24 的服务器,具备公网 IP(也可以通过端口映射部署在 Docker 或虚拟机中);
  • 规划远程客户端地址池:198.19.0.0/24;
  • 统计部员工仅允许访问公司内部 FTP(172.21.0.0/20);
  • 行政部员工仅访问指定公网服务(ip111.cn)。

二、安装Anylink

下载安装包并解压,这个目录是默认的目录:

# 下载软件包
wget -P /opt https://github.com/bjdgyc/anylink/releases/download/v0.13.1/anylink-0.13.1-linux-amd64.tar.gz
# 解压软件包
 tar -zxvf /opt/anylink-0.13.1-linux-amd64.tar.gz -C /usr/local/

把解压出来的 anylink.service安装到系统的服务目录system下:

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

增加anylink.service的执行权限:

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

启动anylink服务:

sudo systemctl enable anylink
sudo systemctl start anylink

登录anylink控制台(默认账号admin,密码123456)

三、anylink基础配置

生成管理员的账号的密码(web界面没有修改的地方),生成完成之后需要在/usr/local/anylink-deploy/conf/server.toml中进行替换admin密码:

/usr/local/anylink-deploy/anylink tool -p luozi@123

生成一个JWT密钥(用于替换配置文件中的默认官方密钥)生成完成之后需要在/usr/local/anylink-deploy/conf/ server.toml中进行替换jwt密钥:

/usr/local/anylink-deploy/anylink tool -s

为了降低部署难度,本次不设置域名,使用IP地址方式登录,为了保证安全,需要重新生成私钥和证书:

openssl req -x509 -nodes -days 3650
  -newkey rsa:2048
  -keyout /usr/local/anylink-deploy/conf/vpn_cert.key
  -out /usr/local/anylink-deploy/conf/vpn_cert.pem
  -subj "/C=CN/ST=Beijing/L=Beijing/O=MyVPN/CN=152.136.200.166"

完整配置参考:

root@VM-0-16-ubuntu:/usr/local/anylink-deploy/conf# cat /usr/local/anylink-deploy/conf/server.toml
#示例配置信息
#其他配置文件,可以使用绝对路径
#或者相对于 anylink 二进制文件的路径
#数据文件
db_type = "sqlite3"
db_source = "./conf/anylink.db"
#证书文件
cert_file = "./conf/vpn_cert.pem"
cert_key = "./conf/vpn_cert.key"
files_path = "./conf/files"
#日志目录,默认为空写入标准输出
#log_path = "./log"
log_level = "debug"
#系统名称
issuer = "骡子网络实测 SSL VPN"
#后台管理用户
admin_user = "admin"
#pass 123456
admin_pass = "$2a$10$thcoQemUkrfKjojyLhYFjur/4oBQLWhQPkedK.UmrWubKiz1M.."
# 留空表示不开启 otp, 开启otp后密码为  pass + 6位otp
# 生成 ./anylink tool -o
admin_otp = ""
jwt_secret = "PPXTbhxKxAZ0jsgisCEmoqZIQ_wPwUcgDxFZsE9-H225BuJp6rvE7xMeFAv4"
#TCP服务监听地址(任意端口)
server_addr = ":11443"
#开启 DTLS
server_dtls = false
#UDP监听地址(任意端口)
server_dtls_addr = ":11443"
#后台服务监听地址
admin_addr = ":8800"
#最大客户端数量
max_client = 200
#单个用户同时在线数量
max_user_client = 3
#虚拟网络类型[tun macvtap]
link_mode = "tun"
#客户端分配的ip地址池
#这个是本地物理网口的名称eth0,其他情况根据实际网卡信息填写
ipv4_master = "eth0"
ipv4_cidr = "198.19.0.0/24"
ipv4_gateway = "198.19.0.1"
ipv4_start = "198.19.0.10"
ipv4_end = "198.19.0.200"
#是否自动添加nat
iptables_nat = true
#客户端显示详细错误信息(线上环境慎开启)
display_error = true
root@VM-0-16-ubuntu:/usr/local/anylink-deploy/conf#

重新启动anylink服务:

sudo systemctl restart anylink

四、配置anylink控制台

4.1 统计部(基于IP分流,使用openconnect客户端)

创建统计部门用户组:

创建统计部员工账号,并绑定到组里边:

使用openconnect客户端进行连接:

测试公司内网业务的 FTP 服务,连接成功,可正常上传下载文件:

4.2 行政部(基于域名分流的行政部,使用Cisco Secure Client)

创建用户组(行政部-域名分流)

创建行政部员工账号,并绑定组:

使用Cisco Secure Client进行连接:

测试公司外部的公网服务IP111.CN,连接成功,网站IP显示正确:

五、测试结论

从部署到使用,AnyLink 的整体上手成本不高,客户端操作也比较简单,适合中小团队自建远程接入环境。
通过用户组和分流规则,可以实现比较清晰的访问边界控制,满足基本的远程办公和运维需求。

本次测试主要用于验证远程接入能力和分流效果。如果用于长期办公或跨区域访问,实际项目中仍建议结合更稳定的传输线路或网络优化方案一起使用。

已复制到剪贴板