kravietz.wireguard_vpn

WireGuard_VPN

クライアントからサーバーへの WireGuard VPN サービスを設定し、クライアント構成ファイルを作成します。

説明

この役割は、次の特徴を持つ Linux ボックスで WireGuard ベースの VPN サービスを構成します。

  • すべてのネットワーク構成は systemd-networkd で管理
  • RFC 1918 アドレスと NAT を使用したトンネルの IPv4 ネットワーク
  • 完全にルーティング可能なサブネットと NDP プロキシを使用したトンネルの IPv6 ネットワーク
  • WireGuard プレシェアードキーのサポート
  • wg-quick(8) 用のクライアント .conf ファイルを生成
  • すべての wg-quick(8) 設定オプションをサポート

役割の変数

vpn_interface: wg1

# `wg genkey` で生成 ***ansible-vault で保護してください***
# vpn_private_key: "iP/lnL/zhicPMnAphlT6qAciKusTmR2X5utTAo7u5Ug="  # 必須

# 上記から `wg pubkey` で生成
# vpn_public_key: "OBGsZZxxX0jcehmFJc0L6v7FX3PMnVDFgdgpjJFU0k4="   # 必須

## 公開インターネット上の UDP リスニングポート
# vpn_listen_port: 1194  # 必須

## 内部 VPN トンネルのアドレス
# vpn_address4: "192.168.2.252/24"            # 1 つ以上が必須      
# vpn_address6: '2a05:1111:0:3:8000::252/65'  # 1 つ以上が必須

## IPv6 VPN クライアントのために NDP エントリを設定する必須
# vpn_ndp_config: /etc/systemd/network/eth0.network  # オプション

## VPN 用にクライアントに設定される DNS リゾルバー
# vpn_dns_resolvers: ["9.9.9.9", "2620:fe::fe"]  # オプション 配列

# クライアントの wg-quick ユーティリティ用の .conf ファイルを生成する
# vpn_clients_dir: /root/wireguard  # オプション

# vpn_clients:                                # オプション 配列
#   - name: client1                           # 必須
#     address4: 192.168.2.110/32              # address4 または address6 のいずれかが必須
#     address6: "2a05:1111:0:3:8000::110/80"  # address4 または address6 のいずれかが必須
#     # 生成した .config ファイルにプライベートキーを含める必要がある場合のみ必要
#     # そうでない場合はプレースホルダーが含まれます
#     # `wg genkey` で生成 ***ansible-vault で保護してください***
#     # private_key: "+Noalz2HL9+nYFQpplZF2dYMmc7+MaXGuxMgc/QBbXU="  # オプション
#     # 上記から `wg pubkey` で生成
#     public_key: "RfDKFurwFo/ytXd9Ko5oEy7I7H4hjNBiT1bc1t+V4Wc="              # 必須
#     # クライアント側で設定するトンネルのルート
#     # allowed_ips: ["192.168.2.1/32"]         # オプション
#     # `wg genpsk` で生成 ***ansible-vault で保護してください***
#     # psk: "151ODHNbvmiK/ox+2ndnZbVcfrIMRJjFjHXlb7o3ZeI="  # オプション
#     # mtu, table, preup, postdown - wg-quick(8) に従う

注意: プライベートキーや事前共有された秘密を変数ファイルで保護するには、必ず ansible-vault を使用してください。

例 Playbook

- hosts: vpn
  roles:
    - role: kravietz.wireguard_vpn
      vpn_private_key: "wIfnNpua6YlD4XzVGUvOCVknCo1LzAF6iGkp7Tho43o="
      vpn_public_key: "+RHdC7oc8O/dojCOMf7CtYBZc5pA2DZPiE4dNRHHhlw="
      vpn_listen_port: 1194
      vpn_address4: "192.168.1.1/24"
      vpn_address6: '2a05:1111:0:3:8000::1/65'
      vpn_clients_dir: /root/wireguard
      vpn_clients:
        - name: client1
          address4: 192.168.1.100/32
          address6: "2a05:1111:0:3:8000::100/128"
          private_key: "iJgcqx21xGETtzFIIdKfD/LvMqswJ2LWUiFPKUBLenw="
          public_key: "T4QbCHfGKLYFdmFeXVfDHP5AYpQ2AZapHIw+ZiCDIHs="

ライセンス

GPLv3

著者情報

Paweł Krawczyk https://krvtz.net/

プロジェクトについて

Configure a IPv4/IPv6 Wireguard-based VPN service using `systemd-networkd` and generate client config files.

インストール
ansible-galaxy install kravietz.wireguard_vpn
ライセンス
Unknown
ダウンロード
6.8k
所有者
Information security, DevOps and DevSecOps professional from Poland living in the UK