如何在Ubuntu 22.04上安装OpenConnect VPN服务器

更新时间

本教程将向您展示如何通过在Ubuntu 22.04上安装OpenConnect VPN服务器(ocserv)来运行您自己的VPN服务器。OpenConnect VPN服务器是Cisco AnyConnect VPN协议的开源实现,这种协议在企业和大学中被广泛使用。AnyConnect是一种基于SSL的VPN协议,允许用户连接到远程网络。

为什么要设置自己的VPN服务器?

  • 隐私保护:如果您不信任VPN服务提供商的无日志政策,那么自托管是一个不错的选择。
  • 网络安全:您可以使用VPN实施网络安全政策。例如,如果您运行自己的邮件服务器,可以通过在防火墙中创建IP地址白名单,要求用户仅从VPN服务器的IP地址登录,从而增强邮件服务器的安全性。
  • 探索VPN工作原理:或许您只是想了解VPN服务器的工作原理。

OpenConnect VPN服务器的特点

  • 轻量且快速:在我的测试中,使用OpenConnect VPN可以观看4K的YouTube视频,而YouTube在我所在的国家(中国)是被封锁的。
  • 兼容性:可以在Linux和大多数BSD服务器上运行。
  • Cisco AnyConnect客户端兼容:支持多种客户端软件,包括Linux、MacOS、Windows和OpenWRT,Android和iOS可以使用Cisco AnyConnect客户端。
  • 认证方式:支持密码认证和证书认证。
  • RADIUS计费支持:支持RADIUS计费功能。
  • 虚拟主机支持:支持多个域名的虚拟主机。
  • 易于设置:相较于其他VPN技术,OpenConnect VPN对终端用户非常友好。
  • 抗深度包检测(DPI):能够抵御深度包检测。

安装要求

要跟随本教程,您需要一个可以自由访问被封锁网站的VPS(虚拟私人服务器)。我推荐使用Kamatera VPS,其特点包括:

  • 30天免费试用
  • 最低4美元/月(1GB RAM)。
  • 高性能KVM基础的VPS
  • 全球9个数据中心,包括美国、加拿大、英国、德国、荷兰、香港和以色列。

请按照以下链接的教程创建您的Linux VPS服务器:如何在Kamatera上创建Linux VPS服务器

在Ubuntu 22.04上安装OpenConnect VPN服务器的步骤

步骤1:安装OpenConnect VPN服务器

登录到您的Ubuntu 22.04服务器。然后使用apt从默认的Ubuntu存储库安装ocserv包:

bash sudo apt update sudo apt install ocserv

安装完成后,OpenConnect VPN服务器会自动启动。您可以使用以下命令检查其状态:

bash systemctl status ocserv

如果没有运行,可以使用以下命令启动它:

bash sudo systemctl start ocserv

默认情况下,OpenConnect VPN服务器监听TCP和UDP的443端口。如果该端口被Web服务器占用,VPN服务器可能会启动失败。稍后我们会看到如何在OpenConnect VPN配置文件中更改端口。

如果您的服务器上运行着防火墙,您需要打开80和443端口。例如,如果您使用UFW,请运行以下命令:

bash sudo ufw allow 80,443/tcp

步骤2:在Ubuntu 22.04服务器上安装Let’s Encrypt客户端(Certbot)

与ocserv一起安装的gnutls-bin包提供了创建您自己的CA和服务器证书的工具,但我们将获取并安装Let’s Encrypt证书。使用Let’s Encrypt证书的好处是它是免费的,易于设置,并且被VPN客户端软件信任。

运行以下命令从默认的Ubuntu存储库安装Let’s Encrypt客户端(certbot):

bash sudo apt install certbot

检查版本号:

bash certbot --version

步骤3:从Let’s Encrypt获取受信任的TLS证书

我建议使用独立插件或webroot插件为ocserv获取TLS证书。

独立插件

如果您的Ubuntu 22.04服务器上没有运行Web服务器,并且您希望OpenConnect VPN服务器使用443端口,则可以使用独立插件从Let’s Encrypt获取TLS证书。运行以下命令。不要忘记为您的域名设置A记录:

bash sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email you

example.com -d vpn.example.com -w /var/www/ocserv

Nginx

如果您使用Nginx,运行:

bash sudo nano /etc/nginx/conf.d/vpn.example.com.conf

将以下内容粘贴到文件中:

```nginx server { listen 80; server_name vpn.example.com;

  root /var/www/ocserv/;

  location ~ /.well-known/acme-challenge {
     allow all;
  }

} ```

保存并关闭文件。然后创建Web根目录:

bash sudo mkdir -p /var/www/ocserv sudo chown www-data:www-data /var/www/ocserv -R

重新加载Nginx:

bash sudo systemctl reload nginx

创建并启用虚拟主机后,运行以下命令以使用webroot插件获取Let’s Encrypt证书:

bash sudo certbot certonly --webroot --agree-tos --email you@example.com -d vpn.example.com -w /var/www/ocserv

总结

通过以上步骤,您可以在Ubuntu 22.04上成功安装和配置OpenConnect VPN服务器。无论您是为了个人隐私还是企业安全,拥有自己的VPN服务器都将大大增强您的网络安全性。

更新时间