Skip to main content

ocserv VPN 配置

概述

OpenConnect VPN Server 是一个兼容Cisco VPN的服务端,属于SSL VPN服务范畴。
Cisco Secure Client,之前的名称是:AnyConnect,官方下载需要有账号。 MacOS用户可以在apple store中下载。或者自己从网上找找三方的下载链接。
OpenConnect Server 基本不存在因DNS、WebRTC和UDP导致的IP地址泄露问题

安装

这里下载源代码,或者直接克隆源代码仓库并切换到最新的稳定发布分支:
https://gitlab.com/openconnect/ocserv/

依赖安装

参照代码仓库的说明文件安装依赖包。

编译按照

尽管主流的Linux发行版仓库中都有安装包,但是版本通常都比较旧,所以推荐使用从源代码编译安装
照着源代码仓库中的说明编译安装即可,编译过程中如果缺少相应的依赖组件,根据提示信息安装完整。
安装完成后,执行ocserv -v 看看是否支持PAM身份验证,否则无法使用Linux用户验证身份。

ocserv -v
OpenConnect VPN Server 1.4.0

Compiled with: PAM, PKCS#11, AnyConnect
GnuTLS version: 3.7.9

生成证书

按照源代码仓库的说明文件生成证书,使用certtool 工具。 注意只生成ca,server.crt就行,不使用客户端证书验证身份,以简化配置和使用。

配置

示例配置文件在:doc/sample.config,复制出来并改名:ocserv.conf
配置项非常的丰富,注释也很完整。根据实际情况修改证书路径,IP地址段,路由等信息。

# 开启PAM,使用Linux用户进行身份验证
auth = "pam[gid-min=1000]"

# 服务监听端口号
tcp-port = 443
udp-port = 443

# 设置ca证书和服务器证书
ca-cert = /root/network/ocsrv/ca-cert.pem
server-cert = /root/network/ocserv/server-cert.pem
server-key = /root/network/ocserv/server-key.pem

# 设置DNS
dns = 8.8.8.8
dns = 1.1.1.1

# 设置VPN网段
ipv4-network = 100.100.100.0
ipv4-netmask = 255.255.255.0

# 设置路由,哪些IP地址或者地址段走VPN,默认是全部都走VPN出网,即:default
#route = 10.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

# 不走VPN的网段,感觉注释好像写错了,应该是below,不是above,具体效果没有实际测试过。
# Subsets of the routes above that will not be routed by
# the server.

#no-route = 192.168.5.0/255.255.255.0

启动

先在Linux操作系统中创建用于登录VPN的用户。
必须添加:--no-chdir 参数,否则客户端无法连接,具体原因可能与编译时的configure参数有关系。

ocserv -c ocserv.conf --no-chdir
tip

因为使用了“自己签发的野证书”,客户端连接的时候会报证书相关的警告或者错误,自行在客户端软件设置中忽略或者信任证书。