gavika.openvpn

gavika.openvpn

安装和配置OpenVPN。构建和管理您自己的OpenVPN服务器。

https://www.techchorus.net/blog/run-your-own-openvpn-server/

此外,查看examples目录。

要求

此角色应与gavika.easy_rsa一起使用。

角色变量

变量 默认值 描述 是否必需
easy_rsa_local_pool_directory /tmp/ca_openvpn_pool 用于存储证书请求、证书等的临时目录。
openvpn_client_users [] OpenVPN客户端用户名列表。建议仅使用字母数字字符。
openvpn_port 1194 OpenVPN服务器运行的端口
openvpn_protocol 默认: udp 选项: tcp或udp 使用的网络协议
openvpn_server_ip_address OpenVPN服务器的IP地址 在生成的客户端证书中使用的值
openvpn_generated_configurations_local_pool false. 布尔值。 是否将生成的客户端配置复制到本地(执行ansible-playbook的控制机器)池目录。
openvpn_route_all_traffic True. 布尔值。 通过OpenVPN服务器路由所有互联网流量
openvpn_use_opendns_public_dns True. 布尔值。 将OpenDNS DNS服务器推送给客户端
openvpn_additional_configs [] 额外的OpenVPN服务器配置。字典列表。每个列表项是一个键值对。例如
openvpn_additional_configs:
- push: "topology subnet"
- push: "route 192.168.4.5 255.255.255.255"
openvpn_default_firewalld_zone public Firewalld配置中使用的区域名称。仅对EL相关

要使用gavika.easy_rsagavika.openvpn构建CA服务器和OpenVPN服务器,您需要根据需求多次执行角色。您负责按所需次数和顺序执行角色。文档中提供了示例。通常,您需要执行open-vpn-playbook.yml两次,easy-rsa-playbook.yml一次。

Playbook执行流程: Playbook执行流程 完整流程图

以下是执行playbooks的示例:

# openvpn: 设置本地池目录,安装openvpn,创建服务器请求,
# 创建客户端请求
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
# easy_rsa: 构建CA服务器,导入和签署请求,获取CA证书
ansible-playbook -i my-inventory.yml easy-rsa-playbook.yml
# openvpn: 使用已签名请求,设置openvpn,生成客户端配置
ansible-playbook -i my-inventory.yml openvpn-playbook.yml

依赖项

gavika.openvpn角色依赖于gavika.easy_rsa

以下集合是必需的:

  • community.aws

需要boto3 Python库。

角色gavika.openvpn应与gavika.easy_rsa一起使用。

设置CA服务器的示例playbook: easy-rsa-playbook.yml

---
- hosts: ca_server
  become: true
  vars:
    easy_rsa_req_country: "IN"
    easy_rsa_req_province: "KA"
    easy_rsa_req_city: "Bangalore"
    easy_rsa_req_org: "Gavika"
    easy_rsa_req_email: "[email protected]"
    easy_rsa_req_ou: "Gavika"
    easy_rsa_local_pool_directory: /tmp/ca_openvpn_pool # 无尾斜杠 /
    easy_rsa_server_request_to_import: "server.req"
    easy_rsa_ca_server_mode: true
  roles:
    - role: gavika.easy_rsa

安装OpenVPN服务器的示例playbook: openvpn-playbook.yml

---
- hosts: openvpn_server
  become: true
  vars:
    openvpn_client_users:
      - janedoe
      - johndoe
    easy_rsa_req_country: "IN"
    easy_rsa_req_province: "KA"
    easy_rsa_req_city: "Bangalore"
    easy_rsa_req_org: "My Organization"
    easy_rsa_req_email: "[email protected]"
    easy_rsa_req_ou: "My Organization Unit"
  roles:
    - role: gavika.easy_rsa
    - role: gavika.openvpn

示例清单: my-inventory:

all:
  hosts:
    placeholder
  children:
    ca_server:
      hosts:
        dev-ca-01.example.com:
          ansible_become: true
          ansible_user: ubuntu
          ansible_host: 192.168.3.5
          easy_rsa_ca_server_mode: true
          ansible_python_interpreter: /usr/bin/python3
    openvpn_server:
      hosts:
        dev-vpn-01.example.com:
          ansible_python_interpreter: /usr/bin/python3
          ansible_become: true
          ansible_user: ubuntu
          ansible_host: 192.168.3.6
          openvpn_server_ip_address: 192.168.3.6

许可证

Apache许可证,版本2.0

作者信息

Sudheera Satyanarayana

关于项目

Role to install and configure OpenVPN server and generate client configurations

安装
ansible-galaxy install gavika.openvpn
许可证
other
下载
278