mawalu.wireguard_private_networking

AnsibleとWireGuardによるプライベートサーバー間ネットワーク

Ansible Role

この役割は、複数のサーバー間に速くて安全、そしてプロバイダーに依存しないプライベートネットワークを展開することを可能にします。これは、プライベートネットワークを提供しないプロバイダーにとって便利で、また複数の地域やプロバイダーに分散したサーバーを接続したい場合にも役立ちます。

方法

この役割は、DebianまたはUbuntuにWireGuardをインストールし、すべてのサーバーをピアとして追加することで、すべてのサーバー間にメッシュを作成し、wg-quickのsystemdサービスを設定します。

インストール

インストールはAnsible Galaxyを使用して行えます:

$ ansible-galaxy install mawalu.wireguard_private_networking

設定

この役割をインストールし、ネットワークに参加する各ホストにvpn_ip変数を割り当てて役割を実行します。ファイアウォールでVPNポート(デフォルトは5888)が許可されていることを確認してください。以下は簡単な設定の例です:

オプションで、各ホストにpublic_addrを設定できます。このアドレスは、インベントリ内のアドレスの代わりにWireGuardのピアに接続するために使用されます。WireGuardが使用しているネットワークとは異なるネットワークから設定する場合に役立ちます。例えば、AnsibleがLAN経由でピアに接続する場合などです。

# インベントリホストファイル

wireguard:
  hosts:
    1.1.1.1:
      vpn_ip: 10.1.0.1/32
      public_addr: "example.com" # オプション
    2.2.2.2:
      vpn_ip: 10.1.0.2/32
# プレイブック

- name: WireGuardメッシュの構成
  hosts: wireguard
  remote_user: root
  roles:
    - mawalu.wireguard_private_networking
# プレイブック(クライアント設定あり)
- name: WireGuardメッシュの構成
  hosts: wireguard
  remote_user: root
  vars:
    client_vpn_ip: 10.1.0.100
    client_wireguard_path: "~/my-client-config.conf"
  roles:
    - mawalu.wireguard_private_networking

追加設定

上書き可能な小数の役割変数があります。

wireguard_port: "5888" # サーバー間接続に使用するポート
wireguard_path: "/etc/wireguard" # WireGuardの設定ファイルの場所

wireguard_network_name: "private" # 設定ファイルとwg-quickのために使用する名前

wireguard_mtu: 1500 # wg-quickファイルに設定するオプションのMTU。デフォルトでは設定されていません。ホストごとに設定できます。

debian_enable_backports: true # DebianマシンにDebianバックポートリポジトリを追加するかどうか

# Raspberry Pi Zeroサポート
# カーネルヘッダーとWireGuardの手動コンパイルが必要、フラグでオプトイン、`community.general`コレクションをインストール
# 注意:再起動を引き起こす可能性があります。
allow_build_from_source: true

wireguard_sources_path: "/var/cache" # 手動ビルドが必要な場合にWireGuardのソースをクローンする場所

client_vpn_ip: "" # 設定すると、ローカルホストの指定したパスに追加のWireGuard設定ファイルが生成されます
client_wireguard_path: "~/wg.conf" # ローカルホストにクライアント設定を書き込むパス、client_vpn_ipが設定されている場合

# 各サーバーに追加されるピアのリスト
wireguard_additional_peers:
  - comment: martin
    ip: 10.2.3.4
    key: your_wireguard_public_key
  - comment: other_network
    ip: 10.32.0.0/16
    key: their_wireguard_public_key
    keepalive: 20 
    endpoint: some.endpoint:2230 

wireguard_post_up: "iptables ..." # PostUpフックコマンド
wireguard_post_down: "iptables"   # PostDownフックコマンド

テスト

この役割にはmoleculeを使用して作成される小さなテストセットアップがあります。テストを実行するには、moleculeのインストールガイドに従い、マシンでDockerデーモンが実行されていることを確認し、molecule testを実行してください。

参加する

問題を見つけたり改善案があれば、自由に問題を報告したりMRを作成してください。特に、追加のオペレーティングシステムやより多くのテストをサポートするMRを歓迎します。

プロジェクトについて

Build your own multi server private network using wireguard and ansible

インストール
ansible-galaxy install mawalu.wireguard_private_networking
ライセンス
mit
ダウンロード
12.7k
所有者
Webdev, DevOps & Security. Btw I use Arch and Nix