WireGuard: 基本設定を超えて
(sloonz.github.io)-
基本設定
- OpenVPNをWireGuardに置き換えようとした試みの経験共有。
- 基本設定の要約:
- サーバーとクライアントそれぞれの鍵ペアを生成。
- VPNネットワークとIPアドレスを指定。
- サーバーとクライアントの設定ファイルを作成して実行。
- ネットワーク名前空間を使ってVPNとインターネット接続を分離可能。
-
NAT
- NATの背後で動作しない一部アプリケーションの問題を解決。
- UPnPを使ってNATの問題を解決可能。
- WireGuardはデフォルトでUPnPをサポートしていないため、手動設定が必要。
miniupnpdのインストールと設定によりUPnP機能を追加可能。
-
IPv6
- NATの問題を解決するより良い方法は、NATを使わないこと。
- IPv6を使うことで、NATなしで公開ルーティング可能なアドレスを割り当てられる。
- サーバーとクライアントにIPv6アドレスを割り当てることで、NATなしでも通信可能。
- IPv6設定により、UPnPなしでも公開インターネットからアクセス可能。
1件のコメント
Hacker News の意見
個人サーバーを設定し、Web からアクセス可能なサービスを提供しようとしている。Caddy を使ってサブドメインをサービスにマッピングすることには成功したが、Tailscale Magic DNS はサブドメインをサポートしていない。これを解決するために pihole を設定して個人用 DNS サーバーを作りたいと考えている。これが WireGuard の制限なのか気になっている
WireGuard の設定時に役立つサイトを見つけた: Procustodibus Wireguard Topologies
動的 DNS レコードを設定してホスト名をホームネットワークの動的 IP にマッピングすれば、個人用 VPN を利用できるようになる。これにより、外部インターネットに公開せずともローカルサービスへリモートからアクセスできる
WireGuard の利用には NAT が必須だという誤解がある。実際には、宛先ホストが WireGuard サーバーをゲートウェイとして認識していれば、通常のサブネットルーティングは問題なく機能する。デフォルトルーターに静的ルートを設定するだけで十分だ
WireGuard の原理、実装、設定を扱った良い本があるのか気になっている。IPSEC 関連の本は多いが、WireGuard のものは少ないという
WireGuard で特定の IP を除いてすべてのトラフィックをトンネリングする簡単な方法がないことを不思議に思っている。特定の IP を除いたすべての CIDR の一覧をプログラムで生成しなければならない
RBAC 機能がないのが残念だ。WireGuard は OpenVPN より高速だが、RBAC が必要なため、従業員や契約者には OpenVPN を使わなければならない
WireGuard と IPv6 を使っているが、IPv6 プレフィックス委任機能が動作しない。通常の Ethernet サブネットのように、デバイスが自分でアドレスを選択して変更できるようにしたい
WireGuard でポートフォワーディングをマスカレードなしで正しく動作させられない。送信元 IP を維持するには AllowedIPs に 0.0.0.0/0 を追加する必要があるが、これはアプリケーションの応答が送信元に戻ることを妨げてしまう
IPv6 を基盤としてインフラを構築している。WireGuard のモダンな暗号化とステートレス設計を活用しつつ、WireGuard のアドレス体系を採用せずに IPv6 のアドレス体系を維持したい