自宅へのアクセスは単一のプライベートなサービスであり、第二のインターネット出口ではありません。WireGuard はルーターの後ろにある Linux マシンで終端し、ルーターは既存の役割を保ち、ノート PC は自宅のプレフィックスだけをトンネル経由で送ります。どちらの機器が転送し、どちらが終端するかが、以後のすべてのルールの前提となる決定です。この分担を誤ると、意図しなかった NAT のデバッグをすることになります。

どちらが転送し、どちらが終端するかを決める

公開の入口はルーターが持ち、ルーターは UDP パケットを受け取って Linux ホストへ渡します。そのホストが WireGuard のリスナーと LAN への転送判断を持ちます。実際には、マッピングが UDP 51820 を 192.168.50.10 へ送り、アプリケーション自身のポートは閉じたままです。役割を分けておくとファイアウォールは短く保てます。

インターフェースを作る前にアドレス計画を書きます。ルーター 192.168.50.1、ゲートウェイ 192.168.50.10、サービス 192.168.50.20、トンネル 10.77.0.0/24(ゲートウェイ .1、ノート PC .2)。トンネルの範囲は、ノート PC がすでに到達できるネットワークと重なってはならず、重なると 宛先が曖昧になります。キャリアグレード NAT や上流のルーターは着信アクセスを遮断することがあり、ローカルのポート転送では直りません。

鍵を交換し、次に AllowedIPs の大きさを決める

端点ごとに別の鍵ペアを作り、検証済みの経路で公開鍵だけを運びます。ゲートウェイの peer エントリが許可するのはノート PC のトンネル送信元だけで、自宅の LAN はノート PC の後ろではなくゲートウェイの後ろにあります。そこに LAN を書くと、構築していないトポロジーを記述することになります。

[Interface]
Address = 10.77.0.2/32
PrivateKey = LAPTOP_PRIVATE_KEY_BASE64

[Peer]
PublicKey = HOME_PUBLIC_KEY_BASE64
Endpoint = home-vpn.example.com:51820
AllowedIPs = 192.168.50.0/24, 10.77.0.1/32

AllowedIPs は自宅のプレフィックスとゲートウェイのトンネルアドレスであり、決して 0.0.0.0/0 ではないので、通常のブラウジングはローカルの経路を保ちます。設定の所有者はひとりにし、同じインターフェースを第二のネットワークマネージャーに決してつながないでください。

戻り経路こそ、人が飛ばしがちな部分です

この設計はノート PC の送信元 10.77.0.2 をゲートウェイとしてマスカレードせずに保つので、自宅の機器はその宛先へ返す方法を知っている必要があります。自宅ルーターに 10.77.0.0/24 への静的経路を追加し、次ホップを 192.168.50.10 にして、wg-quick が AllowedIPs から何を導くかを リファレンス で読んでください。その経路がなければ、完了したハンドシェイクと、決して届かないアプリケーションの応答が同居します。

ルーターがその経路を持てないなら、文書化された戻り経路の設計を選びます。黙って NAT を足すのは、いま書いた送信元モデルを変えることになります。

許可するのは単一のサービスであり、サブネットではありません

ゲートウェイで IPv4 転送を有効にし、ファイアウォールの責務を三つに分けたままで、WireGuard のリスナーを通し、ノート PC の送信元を 192.168.50.20 にだけ転送し、自宅ネットワークの残りはその peer に対して閉じたままにします。ルールは、すでに使っているファイアウォールマネージャーに統合し、フラッシュはしません。自宅プレフィックス全体への経路は、その中のすべての機器を使う許可ではありません。

アプリケーション自身の認証とホストのファイアウォールは別の関門です。ルールセットが許可するサービスを名指しし、次のレビュー担当者が意図した作業と照合できるようにします。

外から試し、その後はきれいに撤去する

プロファイルは所有者の手順で立ち上げ、ハンドシェイクを確認したうえで、承認された外部ネットワークから目的のアプリケーションを動かし、応答を確認します。許可のルールは何かが使うまで見えないので、拒否されたままであるべき自宅サービスも試してください。HTTPS では証明書の名前を使って検証を走らせ、生のアドレスを打ち込んで警告を抜けるやり方が経路について何も証明しないことを押さえます。PersistentKeepalive は任意で、アイドル後の NAT 配下の peer には役立ちますが、欠けた経路でも権限の修正でもありません。

動的な公開アドレスには DNS の更新が必要で、ノート PC は変更後に端点を再解決する必要があり、新しい DNS レコードは設定済みの端点を動かしません。ノート PC は、保存済みと稼働中の設定から peer を外して撤去し、ノート PC のプロファイルを消すだけではゲートウェイの認可は取り消されません。

関連記事