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

一、下载地址

https:///bjdgyc/anylink

https:///bjdgyc/anylink/releases

二、配置linux转发

vim /etc/sysctl.conf 

net.ipv4.ip_forward=1

让添加内容生效

sysctl -p

三、防火墙开启

1、[root@ localhost ~]# systemctl start firewalld

[root@ localhost ~]# systemctl status firewalld

2、开启转发

[root@ localhost ~]# firewall-cmd --add-masquerade --permanent 

success

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.2.3.0/24" accept"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16“ accept"

3、开启nat规则

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o ens192  -j MASQUERADE -s 10.2.3.0/24


--permanent   #永久生效,没有此参数重启后失效

--direct一共有三种节点:chain、rule和passthrough

--passthrough就是类似于iptables/ip6tables中的一条具体的规则


4、重载生效

[root@ localhost ~]# firewall-cmd --reload

三、解压下载 文件 

anylink配置指南_客户端

1、生成密码

# 生成后台密码
./anylink tool -p 123456(更改自己的密码)

# 生成jwt密钥
./anylink tool -s

2、复制模板文件 conf/server-sample.toml

cp  server-sample.toml   server.toml

#数据文件
db_type = "sqlite3"
db_source = "./conf/anylink.db"
#证书文件 使用跟nginx一样的证书即可
cert_file = "./conf/li.pem"
cert_key = "./conf/li.key"
files_path = "./conf/files"
profile = "./conf/profile.xml"
#日志目录,为空写入标准输出
#log_path = "./log"
log_path = "./log"
log_level = "debug"
pprof = false

#系统名称
issuer = "li公司VPN"
#后台管理用户
admin_user = "admin"
#pass 123456
admin_pass = "$2a$17yOdqlLSpku03vMQmQFWPNQIY2RRi4PEEtkPvmgq0S"
jwt_secret = "SGTAJPKbJqoR2qa7NjlqpmfKZyz6dA4vfgLNixbHLITfCbIQAZQ"


#服务监听地址
server_addr = ":443"
#开启 DTLS, 默认关闭
server_dtls = false
server_dtls_addr = ":4433"
#后台服务监听地址
admin_addr = ":8800"
#开启tcp proxy protocol协议
proxy_protocol = false

link_mode = "tun"

#客户端分配的ip地址池【自定义ip】
ipv4_master = "ens192"
ipv4_cidr = "10.2.3.0/24"
ipv4_gateway = "10.2.3.1"
ipv4_start = "10.2.3.100"
ipv4_end = "10.2.3.200"

#最大客户端数量
max_client = 100
#单个用户同时在线数量
max_user_client = 3
#IP租期(秒)
ip_lease = 1209600

#默认选择的组
default_group = "one"

#客户端失效检测时间(秒) dpd > keepalive
cstp_keepalive = 20
cstp_dpd = 30
mobile_keepalive = 40
mobile_dpd = 50

#设置最大传输单元
mtu = 1460

# 要发布的默认域
default_domain = "example.com"
#default_domain = "example.com "

#session过期时间,用于断线重连,0永不过期
session_timeout = 3600
auth_timeout = 0
audit_interval = -1

show_sql = false

3、申请指定域名的ssl域名证书,放到conf目录并更改名称配置

anylink配置指南_重启_02


五、Systemd

  1. 添加 anylink 程序
  • anylink 程序目录放入 /usr/local/anylink-deploy
  1. systemd/anylink.service 脚本放入:
  • centos: /usr/lib/systemd/system/
  • ubuntu: /lib/systemd/system/
  1. 操作命令:
  • 启动: systemctl start anylink
  • 停止: systemctl stop anylink
  • 开机自启: systemctl enable anylink

六、登陆页面*:8800,用户admin,密码上述工具中的密码

1、增加配置VPN用户

anylink配置指南_重启_03

2、配置用户组DNS/路由包含【在用户策略里增加路由】

anylink配置指南_客户端_04

用户组权限配置:

anylink配置指南_github_05

3、开启或关闭:OTP 动态码

请使用手机安装 freeotp ,然后扫描otp二维码,生成的数字即是动态码

开启otp后,vpn登陆密码就是“Pin码+动态密码

七、下载anyconnection 客户端

anylink配置指南_github_06

mac保存vpnserver地址(个人测试这个文件会被覆盖

anylink配置指南_重启_07

anylink配置指南_github_08

电脑用户目录下有一个隐藏文件  .anyconnect