Red Hat Training
A Red Hat training course is available for RHEL 8
7.2. 使用 vpn 系统角色创建与 IPsec 的 opportunistic mesh VPN 连接
您可以使用 vpn
系统角色来配置机会主义网格 VPN 连接,该连接通过在控制节点上运行 Ansible playbook 来使用证书进行身份验证,它将配置清单文件中列出的所有受管节点。
通过在 playbook 中定义 auth_method: cert
参数来配置用证书进行身份验证。vpn
系统角色假设 IPsec 网络安全服务(NSS)加密库(在 /etc/ipsec.d
目录中定义)包含必要的证书。默认情况下,节点名称用作证书的昵称。在本例中,这是 managed_node1
。您可以使用清单中的 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 覆盖了默认策略中的规则,以使其为私有,而非私有或清晰。
前提条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。 - 要在其上运行此 playbook 的受管节点或受管节点组列在 Ansible 清单文件中。
流程
创建一个包含以下内容的 playbook 文件,如
~/mesh-vpn-playbook.yml
:- name: Mesh VPN hosts: managed_node1, managed_node2, managed_node3 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
注意因为
vpn_manage_firewall
和vpn_manage_selinux
都被设为true
,因此vpn
角色使用firewall
和selinux
角色来管理vpn
角色使用的端口。-
可选: 您可以根据您的喜好修改变量。详情请查看
/usr/share/doc/rhel-system-roles/vpn/README.md
文件。 验证 playbook 语法:
# ansible-playbook ~/mesh-vpn-playbook.yml --syntax-check
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
# ansible-playbook ~/mesh-vpn-playbook.yml