• Anylink 安装教程 及 客户端之间互联


    提示:请注意 信息的时效性、环境的相似度。侵删!


    前言

       AnyLink 是一个企业级远程办公 sslvpn 的软件,可以支持多人同时在线使用。



    提示:以下是本篇文章正文内容,下面案例可供参考

    一、Anylink是什么?

    AnyLink 基于 ietf-openconnect 协议开发,并且借鉴了 ocserv 的开发思路,使其可以同时兼容 AnyConnect 客户端.这一点和 Openconnect VPN 是使用相同的协议和客户端.
    在这里插入图片描述



    二、使用步骤

    安装教程源自官网

    • 环境:

      • AnyLink 服务端仅在 CentOS 7、Ubuntu 18.04 测试通过,如需要安装在其他系统,需要服务端支持 tun/tap 功能、ip 设置命令。

    • 软件

      • AnyLink Release包 官方下载: Github
      • HTTPS 证书,暂时不支持私有证书
        • 对于测试环境,可以使用 vpn.test.vqilu.cn 绑定host进行测试
        • 首次使用,请在浏览器访问 https://域名:443,浏览器提示安全后,在客户端输入 【域名:443】 即可。

    1.官方服务端(这里使用tun模式,推荐)

    • 官方下AnyLink Release 包之后 解压缩到 /usr/local/anylink-deploy 路径下
    [root@localhost anylink-deploy]# ls
    anylink  bridge-init.sh  conf  LICENSE  log  systemd
    
    • 1
    • 2
    • 生成 后台密码 和 jwt 秘钥
    # 生成后台密码, 123456 自行修改
    [root@localhost anylink-deploy]#./anylink tool -p 123456
    "$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke"
    
    # 生成jwt密钥
    [root@localhost anylink-deploy]#./anylink tool -s
    "abcdef.0123456789.abcdef"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 修改 conf/server.toml配置文件
    • 这里使用 默认数据库,HTTPS 证书需要事先申请
    • 修改
      • issuer = “XX公司VPN”
      • admin_user = “admin”
      • admin_pass = "$2a 10 10 10UQ7C.E
      • jwt_secret = "abcdef
      • ipv4_master = “eth0”
    • 请根据服务器内网ens160 网卡 替换 eth0,其他可以默认
    # 查看网卡
    [root@localhost anylink-deploy]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:50:56:8e:61:92 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.11/24 brd 10.0.0.255 scope global noprefixroute ens160
           valid_lft forever preferred_lft forever
        inet6 fe80::b628:c58b:6675:9d21/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    
    
    [root@localhost anylink-deploy]# vim conf/server.toml
    #示例配置信息
    
    #其他配置文件,可以使用绝对路径
    #或者相对于 anylink 二进制文件的路径
    
    #数据文件
    db_type = "sqlite3"
    db_source = "./conf/anylink.db"
    #证书文件 使用跟nginx一样的证书即可
    cert_file = "./conf/vpn_cert.crt"
    cert_key = "./conf/vpn_cert.key"
    files_path = "./conf/files"
    profile = "./conf/profile.xml"
    #日志目录,为空写入标准输出
    #log_path = "./log"
    log_path = ""
    log_level = "debug"
    pprof = false
    
    #系统名称
    issuer = "XX公司VPN"
    #后台管理用户
    admin_user = "admin"
    #pass 123456
    admin_pass = "$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke"
    jwt_secret = "abcdef.0123456789.abcdef"
    
    
    #服务监听地址
    server_addr = ":443"
    #开启 DTLS, 默认关闭
    server_dtls = false
    server_dtls_addr = ":4433"
    #后台服务监听地址
    admin_addr = ":8800"
    #开启tcp proxy protocol协议
    proxy_protocol = false
    
    link_mode = "tun"
    
    #客户端分配的ip地址池
    ipv4_master = "eth0"
    ipv4_cidr = "192.168.10.0/24"
    ipv4_gateway = "192.168.10.1"
    ipv4_start = "192.168.10.100"
    ipv4_end = "192.168.10.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
    
    #session过期时间,用于断线重连,0永不过期
    session_timeout = 3600
    auth_timeout = 0
    audit_interval = -1
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88

    • 服务器设置(tun设置)
      • 开启服务器转发
    # [root@localhost anylink-deploy]# vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    
    # 执行如下命令
    [root@localhost anylink-deploy]# sysctl -w net.ipv4.ip_forward=1
    
    # 查看设置是否生效
    [root@localhost anylink-deploy]# cat /proc/sys/net/ipv4/ip_forward
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 设置 nat 转发规则
    [root@localhost anylink-deploy]# systemctl stop firewalld.service
    [root@localhost anylink-deploy]# systemctl disable firewalld.service
    
    # 查看网卡
    [root@localhost anylink-deploy]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:50:56:8e:61:92 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.11/24 brd 10.0.0.255 scope global noprefixroute ens160
           valid_lft forever preferred_lft forever
        inet6 fe80::b628:c58b:6675:9d21/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    
    
    # 请根据服务器内网ens160 网卡 替换 eth0
    [root@localhost anylink-deploy]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
    
    
    # 如果执行第一个命令不生效,可以继续执行下面的命令
    # iptables -A FORWARD -i eth0 -s 192.168.10.0/24 -j ACCEPT
    
    
    # 查看设置是否生效
    iptables -nL -t nat
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 最后 使用 AnyConnect 客户端连接即可

    2.Macvtap 配置

    参考:macvtap

    3.tap 配置

    参考:tap

    4. Systemd 配置开机启动

    # 目录结构
    [root@localhost anylink-deploy]# ls
    anylink  bridge-init.sh  conf  LICENSE  log  systemd
    
    
    # anylink 程序目录 /usr/local/anylink-deploy
    [root@localhost anylink-deploy]# pwd
    /usr/local/anylink-deploy
    
    
    # 将 systemd/anylink.service 脚本放入:
    # centos: 
    [root@localhost anylink-deploy]# cp systemd/anylink.service /usr/lib/systemd/system/
    # ubuntu: 
    [root@localhost anylink-deploy]# cp systemd/anylink.service  /lib/systemd/system/
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 启动 anylink 并加入到 开机自启
    启动: systemctl start anylink
    停止: systemctl stop anylink
    开机自启: systemctl enable anylink
    
    • 1
    • 2
    • 3

    5. 配置客户端互通

    • 登录
      在这里插入图片描述
    • 进入用户组 、用户组列表
      在这里插入图片描述
    • 增加 anyconnect 客户端的网段(版本==0.74,0.8新版本界面稍有不同)在这里插入图片描述
      若客户端无法互通, 检查:
      • 查看设置是否生效 iptables -nL -t nat
    [root@local anylink-deploy]# iptables -nL -t nat
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination         
    DOCKER     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
    
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    DOCKER     all  --  0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL
    
    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination         
    MASQUERADE  all  --  172.17.0.0/16        0.0.0.0/0           
    MASQUERADE  all  --  10.0.0.0.0/24      0.0.0.0/0           
    
    Chain DOCKER (2 references)
    target     prot opt source               destination         
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0  
    
    # 可能是 docker 的 iptables 设置冲突
    #  flush 清除所有的已定规则
    [root@local anylink-deploy]# iptables -F 
    # delete 删除所有用户“自定义”的链(tables)
    [root@local anylink-deploy]# iptables -X 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 登录 anylink:8800 web管理界面,查看是否填写了客户端网段
      在这里插入图片描述
    • 本地网络 是什么?
      在这里插入图片描述

    用户组中的 本地网络 指的是:
    运行 Anyconnect 客户端的PC 所在的的网络,既本地路由网段。

    点开后,PC本地路由网段的数据就不会走隧道链路转发数据了。




    引用

  • 相关阅读:
    【洛谷 P3743】kotori的设备 题解(二分答案+递归)
    Serverless Devs 重大更新,基于 Serverless 架构的 CI/CD 框架:Serverless-cd
    “因遭勒索软件攻击,我被认定工作失职开除,并被老东家索赔 21.5 万元”
    我想设计一套游戏的奖励系统,有什么值得注意的?
    pgsql查询分组中某个字段最大或者最小的一条数据
    聊聊Hystrix的源码
    做自媒体短视频是如何赚钱的呢?
    SSM学习——springboot整合ssm(15)
    行政管理专业如何选择合适的毕业论文题目?
    linux操作Vim
  • 原文地址:https://blog.csdn.net/sedbz/article/details/126768002