OT-OSM.openvpn

Ansibleロール: OpenVPN

CircleCI

Opstree Solutions
Opstree Solutions

OpenVPNサーバーをインストールおよび設定するためのAnsibleロールです。

バージョン履歴

日付 バージョン 説明 変更者
2018年8月16日 v.1.0.0 初版 Yashvinder Hooda
2018年9月8日 v.1.0.0 Debian用ロールを追加 Sudipt Sharma
2018年10月9日 v.1.0.0 READMEの更新 Sudipt Sharma
2018年11月13日 v.1.0.0 RHEL用に更新 Sudipt Sharma
2019年2月28日 v.1.0.0 GitLab-CIを追加 Mahesh Kumar
2019年5月31日 v.1.0.0 モレキュールテストケースを追加 Ekansh Jain
2020年1月13日 v.1.0.0 AMAZON用に更新 Sudipt Sharma
2020年2月11日 v.1.0.0 クライアント作成と取り消し用のタグを追加 Sudipt Sharma
2020年4月18日 v.1.0.0 CircleCIを統合 Sudipt Sharma

主な特徴

  • このロールはOpenVPNを使用してVPNの設定を自動化します。 このロールは2つのメタファイルで構成されています。
  • clientlist: 追加したいクライアントの名前を入力します。
  • revokelist: 取り消したいクライアントの名前を入力します。

注意:

  • ソース/宛先チェックを無効にしてください。

    インスタンスのリストからVPNインスタンスを選択し、次にネットワーキング -> ソース/宛先を変更します。 ドロップダウンメニューから選択し、「はい、無効にする」をクリックします。これを行わないと、VPN
    サーバーは他のEC2インスタンスに接続できません。

サポートされているOS

  • CentOS:7
  • CentOS:6
  • Ubuntu:bionic
  • Ubuntu:xenial
  • Amazon AMI

依存関係

  • なし :)

ディレクトリ構成

osm_openvpn
.
├── clientlist
├── defaults
│   └── main.yml
├── files
│   └── make_config.sh
├── handlers
│   └── main.yml
├── media
│   ├── add_connection.png
│   ├── addvpn.jpg
│   ├── client.png
│   ├── import_file.png
│   ├── save_key.png
│   ├── select_file.png
│   └── vpn.jpg
├── meta
│   └── main.yaml
├── molecule
│   └── default
│       ├── Dockerfile.j2
│       ├── INSTALL.rst
│       ├── molecule.yml
│       ├── playbook.yml
│       └── tests
│           ├── test_default.py
│           └── test_default.pyc
├── README.md
├── revokelist
├── tasks
│   ├── client_keys.yaml
│   ├── config.yaml
│   ├── easy-rsa.yaml
│   ├── firewall.yaml
│   ├── install.yaml
│   ├── main.yaml
│   ├── revoke.yaml
│   └── server_keys.yaml
└── templates
    ├── before.rules.j2
    ├── client.conf.j2
    └── server.conf.j2
10のディレクトリ、31のファイル

ロール変数

変数 デフォルト値 説明 タイプ
server_name server OpenVPNサーバーの名前 任意
PROTOCOL udp サーバーが動作するプロトコル 必須
PORT udp サーバーが動作するポート 必須
openvpn_server_network 10.8.0.0 VPNネットワークに割り当てられたCIDR範囲 任意
base_directory /etc/openvpn OpenVPNサーバーの設定パス 任意
easy_rsa_url url Easy RSAをダウンロードするためのURL 任意
block_all_connection false OpenVPNクライアントのすべての通信をブロックする 任意
port_list [80,443] OpenVPNクライアント用に特定のポートを許可(block_all_connection == trueの場合のみ有効) 任意

例のプレイブック

---
- name: OpenVPNのセットアップを自動化します
  hosts: server
  become: true
  roles:
    - role: osm_openvpn
...

$ ansible-playbook site.yml -i inventory
  • クライアントキーを生成するため
$ ansible-playbook site.yml -i inventory --tags "generate_client_keys"
  • クライアントキーを取り消すため
$ ansible-playbook site.yml -i inventory --tags "revoke_client_keys"

インベントリ

インベントリは次のように見えるべきです:-

[server]                 
192.xxx.x.xxx    ansible_user=ubuntu 

クライアントキー

クライアントキーは、ローカルホストの/tmp/{{client_name}}.ovpnに生成されます。

クライアント設定

OpenVPNをインストールします。

   apt-get install openvpn -y

Ubuntu 18.04 bionic beaver用のOpenVPN GUIをインストールします。

   apt install network-manager-openvpn-gnome -y

インストール後、ネットワーク設定に移動します。

ネットワーク設定にVPNを追加します。

次にVPN設定でclient.ovpnをブラウズして追加します。

client

Ubuntu 16.04 xenial用のOpenVPN GUIをインストールします。

   apt install network-manager-openvpn-gnome -y

インストール後、ネットワーク設定に移動します。

add_connection

ネットワーク設定に.ovpnファイルを追加します。

import_file

次に.client.ovpnファイルを選択します。

select_file

次にclient.ovpnファイルを保存します。

save_key

今後の提案された変更

  • ベアメタルで実行するようにロールを修正

参考文献

ライセンス

  • MIT / BSD

作者情報

貢献者

Sudipt Sharma
Sudipt Sharma

プロジェクトについて

OpenVpn ansible role for creating a secure tunnel to your private infra.

インストール
ansible-galaxy install OT-OSM.openvpn
ライセンス
Unknown
ダウンロード
219
所有者