本教程将向您展示如何通过在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服务器都将大大增强您的网络安全性。