githubixx.peervpn

role-peervpn

このAnsibleロールは、Kubernetes the not so hard way with Ansible (at Scaleway) - Part 3 - PeerVPN で使用されます。Ubuntu 16.04/18.04のためにPeerVPNを設定するためのもので、基本的にはsystemdを使用するすべてのLinux OSに対応しています。PeerVPNを使うと、データセンターを越えたノード間で完全なメッシュVPNを簡単に設定できます。少なくとも1つの公開アクセス可能なインターフェースを持つホストが必要です(デフォルトはポート 7000、プロトコル UDP)。シンプルな設定例として、この公開ホストを peervpn_conf_initpeers の設定に使うことができます。他のホストはPeerVPNにより自動的に見つけ出されます。

PeerVPNは、その目的のために独自のTAPインターフェースをインストールします。そのTAPインターフェースのデフォルト名は tap0 です。名前を変更するには、peervpn_conf_interface 変数に異なる値を指定してください。

PeerVPNの事前共有キーのために強力な秘密のパスワードを生成するには、以下のコマンドを使用できます:

openssl rand -base64 382 | tr -d '\n' && echo

これは事前共有キーなので、このキーはPeerVPNをインストールするすべてのホストで使用し、同じネットワーク名である必要があります。そうでないと接続は機能しません。デフォルトの事前共有キーは default で、もちろん変更する必要があります ;-)

バージョン

私はすべてのリリースにタグを付け、セマンティックバージョニングに従うよう努めています。ロールを使用したい場合は、最新のタグを確認することをお勧めします。マスターブランチは基本的に開発用で、タグは安定したリリースを示します。しかし、一般的にマスターも良好な状態を保つようにしています。タグ 1.0.0+r044 は、このロールのリリース 1.0.0 で、PeerVPN r044 を使用していることを意味します。ロール自体が変更されると、X.Y.Z が増加します。PeerVPNのバージョンが変更されると、rXXX が増加し、ロールのパッチレベルも増加します(例: 1.0.01.0.1)。これによって、バグ修正や新しいメジャーバージョンをタグ付けしながら特定のPeerVPNリリースのために開発を続けることができます。

要件

ファイアウォールルールがインストールされている場合、ポート7000プロトコルUDP(デフォルト)でトラフィックを許可してください。また、peervpn_conf_initpeers 変数を追加する必要があります。この変数にはデフォルトがありません!IPv6はデフォルトで有効です。使用しない場合は、変数 peervpn_conf_enableipv6: no を追加してください。

ロール変数

基本的には、非常に少数の変数を変更する必要があります(以下を参照)。ただし、変数の完全な説明と例については templates/etc/peervpn/peervpn.conf.j2 を確認してください。

デフォルト値のない変数:

peervpn_conf_initpeers
peervpn_conf_engine
peervpn_conf_ifconfig6
peervpn_conf_upcmd
peervpn_conf_chroot

デフォルト値のある変数:

peervpn_version: "peervpn-0-044"
peervpn_install_directory: "/opt/{{peervpn_version}}"
peervpn_dest: "/usr/local/sbin"
peervpn_conf_networkname: "peervpn"
peervpn_conf_psk: "default"
peervpn_conf_enabletunneling: "yes"
peervpn_conf_interface: "tap0"
peervpn_conf_local: "0.0.0.0"
peervpn_conf_port: 7000
peervpn_conf_ifconfig4: "10.0.0.1/24"
peervpn_conf_sockmark: 0
peervpn_conf_enableipv4: "yes"
peervpn_conf_enablenat64clat: "no"
peervpn_conf_enablerelay: "no"
peervpn_conf_enableprivdrop: "yes"
peervpn_conf_user: "nobody"
peervpn_conf_group: "nogroup"

PeerVPNを利用するには、peervpn_conf_initpeers 変数に値を指定する必要があります(Ansibleの host_vars ディレクトリの各ホストごと、または group_vars ディレクトリのホストグループごとに)。たとえば、peervpn_conf_initpeers: "host.example.net 7000" と指定すると、PeerVPNはポート 7000 を介してUDPで host.example.net に接続し続けます。

少なくとも以下の変数は変更すべきです:

  • peervpn_conf_initpeers: PeerVPNがVPNに参加するために接続するホスト名とポート。
  • peervpn_conf_networkname: VPNの名前。
  • peervpn_conf_psk: 事前共有キー。良い事前共有キーのパスワードの生成方法は上記のイントロダクションを参照してください。
  • peervpn_conf_ifconfig4: ノードのIPアドレスとCIDR表記のサブネット。この変数はホストごとに指定する必要があります。

例Playbook

- hosts: webservers
  roles:
    - peervpn

ライセンス

GNU GENERAL PUBLIC LICENSE Version 3

著者情報

http://www.tauceti.blog

プロジェクトについて

Installes PeerVPN on a node

インストール
ansible-galaxy install githubixx.peervpn
ライセンス
gpl-3.0
ダウンロード
142
所有者
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)