使用Docker快速部署Ocserv 搭建Cisco AnyConnect VPN服务端

58849bbbf8145251

ocserv是Cisco Anyconnect的开源实现,为了降低对系统的依赖和免除linux不同发行版不同的部署体验,建议不论你是新手还是老手,都使用docker(docker-compose)进行快速部署,部署完毕之后,你可以使用自己的配置进行置换。目前的版本为ocserv主线最新版本,内置证书自动部署和密码登录。使用alpine做docker容器的系统,这样整个镜像可以做到22MB。

部署前的准备工作

安装docker

直接按照官方教程进行,以下为Linux安装脚本:

# curl -sSL https://get.docker.com | sh

## ubuntu
# source /usr/share/bash-completion/completions/docker
# cp /usr/share/bash-completion/completions/docker /etc/bash_completion.d/

安装docker-compose

如果你使用较新的Linux发行版,可以直接使用包管理器进行安装,否则一律建议从官方github直接安装二进制版本,如下:

# curl -L "https://github.com/docker/compose/releases/download/v2.11.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose

开始部署

创建docker-compose.yml

version: '3'

services:
  ocserv:
    image: icodex/ocserv
    volumes:
      - ./opt/ocserv:/etc/ocserv:rw
    environment:
      - VPN_DOMAIN=ocserv.eu.org
      - VPN_PORT=443
      - IPV4_NETWORK=10.8.8.0/21
      - IPV6_NETWORK=fda9:4efe:7e3b:03ea::/48
      - VPN_USERNAME=username
      - VPN_PASSWORD=password
    privileged: true
    network_mode: host
    cap_add:
      - NET_ADMIN
    restart: always

使用vim编辑docker-compose.yml,编辑VPN_DOMAINVPN_PORTUSERNAMEPASSWORD这几个值,分别对应了连接使用的域名、端口、用户名、密码等。

然后先运行一次,运行完毕之后即可退出,待进一步配置ssl证书等操作。

# docker-compose up

当屏幕不再滚动时,即可按ctrl+c退出。

进一步配置

替换web ssl证书

在上一步运行之后,会在当前目录下的./opt/ocserv看到当前运行的配置文件,默认镜像中是自签名证书,不带管理web ssl证书的功能,这部分你可以使用acme.sh自动签发,或者购买证书,然后将证书链替换生成的自签名web ssl证书。如果你不介意自签名证书的警告提示,可以忽略这步

所需替换的证书有:

证书文件:./opt/ocserv/certs/server-cert.pem
私钥文件:./opt/ocserv/certs/server-key.pem

注意替换证书文件时,要使用fullchain,即包含中间证书的。

管理用户证书

默认会自动创建用户证书,你可以将./opt/ocserv/certs/client.pfx拷贝到本地设备上,然后在anyconnect导入即可。如果要管理更多用户证书,建议使用xca进行GUI管理,这个软件是跨平台开源软件,可以自己签发ca和管理用户证书。具体使用可以自行搜索。

添加用户密码

如果你不想使用用户证书这种方式登录服务器,可以使用用户密码登录,如新增用户:

docker exec -it $(docker ps -a | grep ocserv | awk '{print $1}') ocpasswd yourname
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片