danielcrisap.ansible_pritunl_vpn

Pritunl VPN 的 Ansible 角色

构建状态

该角色将安装 Pritunl VPN。

**

什么是 Pritunl

Pritunl 是一个开源的 VPN 服务器和管理面板。它为用户提供了 OpenVPN 协议的强大功能,同时使用直观的网页界面。

要求


这个应用程序需要在 Linux 服务器上运行,可以在 CentOS、Amazon Linux、Debian 和 Ubuntu 上使用。

Pritunl 使用 MongoDB 作为数据库,因此您应该有一些 MongoDB 服务器。

数据库设置

当 Pritunl 首次启动时,网页服务器将在 443 端口显示数据库设置提示。数据库设置将提示输入设置密钥和 MongoDB URI。要获取设置密钥,请通过 SSH 登录到服务器并运行命令 sudo pritunl setup-key,这将返回设置密钥。默认情况下,MongoDB URI 将填写为本地主机 MongoDB 服务器的 URI。当 MongoDB 服务器与 Pritunl 实例在同一服务器上运行时,应保持此设置。如需了解企业集群的相关信息,请参考 MongoDB 文档中的 连接字符串 URI 格式。您也可以直接在 /etc/pritunl.conf 文件中设置 MongoDB URI 或使用 CLI 命令,关于 CLI 命令的更多信息,请查看 命令 部分。一些 MongoDB 服务器在 admin 数据库上进行身份验证,因此 URI 中需要包含选项 authSource=admin

关于订阅

订阅可以通过首页或正在运行的 Pritunl 服务器的 Web 控制台购买。信用卡信息通过网络浏览器安全地直接发送到 Stripe,从不存储或转移到其他服务器上。Pritunl 服务器可以随时升级,并且在升级到订阅时无需重新配置。

许可证密钥

在创建订阅后,许可证密钥将通过电子邮件发送到结账时使用的电子邮件地址。许可证密钥不需要在用于创建订阅的同一服务器上使用。高级订阅只能用于一台服务器,而企业许可证只能用于一个集群。集群是连接到同一 MongoDB 数据库的一组 Pritunl 服务器。为了进行测试,许可证密钥可以重复使用,但在多台服务器上持续使用许可证密钥将导致订阅被取消。

发票和长期订阅

一些公司需要完整格式的发票和年度订阅。这仅在企业订阅中提供,年度订阅没有折扣。要请求企业订阅的年度发票,请将账单信息发送至 contact@pritunl.com,并提供接收发票和许可证密钥的电子邮件地址。

教育折扣

公共学校可享受 50% 的折扣。此折扣可应用于现有的月度订阅或年度订阅。要获得月度订阅的折扣,请先开始试用,然后将用于创建订阅的电子邮件地址发送到 contact@pritunl.com;对于年度订阅,请遵循上述说明。

**

认证

Pritunl 中的 WireGuard 身份验证使用已在客户端配置文件中的密钥。这允许在不需要用户重新导入其配置文件的情况下过渡到 WireGuard。许多管理员不配置有效的 HTTPS 证书,并且 HTTPS 不被依赖或要求用于提供安全的身份验证。身份验证通过三把密钥提供多层加密和授权。

  • 客户端 SHA512-HMAC 密钥(授权)
    客户端将使用 SHA512-HMAC 密钥对每个连接请求进行签名。服务器也将使用此密钥对响应进行签名,以允许客户端验证连接响应。这是用于授权客户端配置同步的相同身份验证系统,配置同步会同步主机地址和服务器端口的配置更改(私钥从不同步)。

  • 客户端/服务器 NaCl 非对称密钥(授权 + 加密)
    客户端在配置文件中使用服务器的 NaCl 公钥。这提供了从客户端到服务器连接请求的非对称加密。服务器将使用客户端的 NaCl 公钥加密响应,从而实现响应的加密。客户端还将使用服务器的 NaCl 公钥验证服务器响应。这是用于提供在 OpenVPN 连接中使用密码和两步代码的附加加密和授权的相同身份验证系统。

  • 客户端 RSA-4096 非对称密钥(授权)
    客户端的 RSA 证书和密钥用于签署每个连接请求。服务器将使用此证书验证客户端连接请求。这是用于验证 OpenVPN 连接的相同证书。

每个 WireGuard 连接使用新的 WireGuard 密钥。这是为了提供最高级别的安全性,但在用户返回已休眠计算机时可能会延迟网络连接。 WireGuard 私钥存储在 Pritunl 客户端后台服务的内存中,也存储在 WireGuard 配置文件中。由于 WireGuard 具有无连接设计,因此即使使用多因素身份验证,此私钥也可能被攻击者用于劫持连接。在高安全性环境中,需要考虑到使用多因素身份验证的 OpenVPN 连接不会有这些弱点。因此,服务器会迅速撤销处于非活动状态的客户端的 WireGuard 密钥,以限制这种情况的发生。服务器还会验证密钥未被重复使用。

一旦客户端连接,它将每 10 秒向服务器发送一次 ping 请求。此请求允许客户端快速检测到下行链接并在约 13 秒内故障转移。如果服务器在 6 分钟内未收到 ping 请求,则将断开用户连接并撤销公共密钥。

角色变量

pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'

pritunl_mongodb_uri 用于 Pritunl 连接数据库的 MongoDB URI。

示例剧本

包含如何使用您的角色的示例(例如,作为参数传递的变量)对于用户来说也很不错:

    - hosts: servers
      vars:
        pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
      roles:
         - { role: danielcrisap.ansible-pritunl-vpn }

许可证

MIT ©

作者信息

此集合由 Daniel Cristian 于 2020 年创建。

关于项目

setup pritunl vpn

安装
ansible-galaxy install danielcrisap.ansible_pritunl_vpn
许可证
Unknown
下载
81
拥有者
I'm a Site Reliability Engineer and I love what I do.