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 Default: udp 選択肢: tcp または udp 使用するネットワークプロトコル はい
openvpn_server_ip_address OpenVPNサーバーのIPアドレス 生成されるクライアント証明書で使われる値 はい
openvpn_generated_configurations_local_pool false (ブーリアン) 生成されたクライアント設定をローカルプールディレクトリにコピーするかどうか はい
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を2回、easy-rsa-playbook.ymlを1回実行する必要があります。

プレイブック実行フロー: プレイブック実行フロー フルサイズのフローチャート

プレイブックの実行例:

# 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サーバーを設定するためのプレイブックの例: easy-rsa-playbook.yml

---
- hosts: ca_server
  become: true
  vars:
    easy_rsa_req_country: "IN"
    easy_rsa_req_province: "KA"
    easy_rsa_req_city: "バンガロール"
    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サーバーをインストールするためのプレイブックの例: 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: "バンガロール"
    easy_rsa_req_org: "私の組織"
    easy_rsa_req_email: "[email protected]"
    easy_rsa_req_ou: "私の組織単位"
  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 License, Version 2.0

著者情報

Sudheera Satyanarayana

プロジェクトについて

Role to install and configure OpenVPN server and generate client configurations

インストール
ansible-galaxy install gavika.openvpn
ライセンス
other
ダウンロード
278