31.2. 使用 vpn RHEL 系统角色创建带有 IPsec 的 opportunistic mesh VPN 连接
您可以使用 vpn
系统角色来配置机会主义网格 VPN 连接,该连接通过在控制节点上运行 Ansible playbook 来使用证书进行身份验证,这将配置清单文件中列出的所有受管节点。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。 -
/etc/ipsec.d/
目录中的 IPsec 网络安全服务(NSS)加密库包含必要的证书。
步骤
创建包含以下内容的 playbook 文件,如
~/playbook.yml
:- name: Mesh VPN hosts: managed-node-01.example.com, managed-node-02.example.com, managed-node-03.example.com roles: - rhel-system-roles.vpn vars: vpn_connections: - opportunistic: true auth_method: cert policies: - policy: private cidr: default - policy: private-or-clear cidr: 198.51.100.0/24 - policy: private cidr: 192.0.2.0/24 - policy: clear cidr: 192.0.2.7/32 vpn_manage_firewall: true vpn_manage_selinux: true
通过在 playbook 中定义
auth_method: cert
参数来配置用证书进行身份验证。默认情况下,节点名称用作证书的昵称。在本例中,这是managed-node-01.example.com
。您可以使用清单中的cert_name
属性来定义不同的证书名称。在本例中,控制节点是您运行 Ansible playbook 的系统,与两个受管节点(192.0.2.0/24)共享相同的无类别域间路由(CIDR)数,并且 IP 地址 192.0.2.7。因此,控制节点属于为 CIDR 192.0.2.0/24 自动创建的私有策略。
为防止在操作期间出现 SSH 连接丢失,控制节点的清晰策略包含在策略列表中。请注意,在策略列表中还有一个项 CIDR 等于 default。这是因为此 playbook 覆盖了默认策略中的规则,以使其为私有,而非私有或清晰。
因为
vpn_manage_firewall
和vpn_manage_selinux
都被设为true
,因此vpn
角色使用firewall
和selinux
角色来管理vpn
角色使用的端口。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.vpn/README.md
file -
/usr/share/doc/rhel-system-roles/vpn/
directory