自前のVPNサーバーを置く前に決めておくこと
サーバーのバイナリは簡単な部分です。導入前に、終端、クライアントの識別情報、アドレス範囲、そして戻る道を決めておきましょう。
サーバーソフトの導入は自前VPNのいちばん短い部分で、しかも多くの人が最初に手を付ける工程です。導入が機能するかどうかは、クライアントが終端に届くか、そのクライアントがその後どこまで行けるか、そして壊れたのがトンネルそのものだったときにどう戻るかで決まります。三つとも、パッケージマネージャーを走らせる前に決めておきましょう。
二つは設計上の判断で、三つ目は運用の習慣です。どれも、障害の最中より紙の上のほうが安く直せます。
クライアントが何に届くべきかを決める
リモートアクセス型のサーバーには、自分が広告するプライベートネットワークへの経路と、応答を返すための戻り経路が要ります。つまりそれは、単なる待ち受けではなく、そのネットワークのルーターになります。インターネット出口型のサーバーには、転送に加えてアドレス割り当てか変換の仕組みが要り、ハンドシェイクが完了しただけではどちらも得られません。トポロジーより先に役割を決めてください。二つの設計は、ルーティング、ファイアウォール規則、そしてクライアントがトンネルに流す内容で違います。両方を求められるサーバーには、両方の規則セットと、クライアントの既定ルートの対応する分割が要ります。
トンネル用とLAN用の範囲は、クライアントがすでに使っているネットワークと衝突しえないものを選びます。192.168.1.0/24 をすでに持つノートPCは、同じプレフィックスを配るトンネルではなく、その経路を使い続けるからです。IPv4 と IPv6 は別々に確認してください。多くの人が前者を正しくして、後者に気づかないまま終わります。サーバーが別のルーターの背後にある場合は、一つのポート転送がすべての層を説明すると信じず、外側からの到達性を確かめます。
識別情報、鍵、そして戻る道
ソフトが対応しているところでは、端末ごとに別の識別情報を発行します。ノートPCをなくしても、サーバーを作り直すのではなく、ピアを一つ取り消せば済むからです。秘密鍵は保護された保管場所に置き、チャットに貼られたプロファイルには決して入れません。復旧経路は、多くの人が飛ばす部分です。コンソール接続、シリアルコンソール、あるいはトンネルに依存しない帯域外の管理インターフェースです。それがなければ、まずいファイアウォール規則が小さな変更を現地訪問に変えてしまいます。
登録手順と同時に、削除手順も書いておきます。端末の取り消しは遅かれ早かれ必要になる操作で、設定が新しいうちに書くほうが簡単です。
終端は自宅か、借りるか
自宅で置くか小さなインスタンスを借りるかは、三つの条件で決まります。第一は内向きの接続がそもそも自分のネットワークに届くかです。通信事業者側で変換された上り回線や、制限の厳しい建物のネットワークでは、その選択肢が消えます。第二は、出口を自分の街以外に出す必要があるかどうかで、これを変えられるのは借りた終端だけです。第三は、二つ目の信頼関係を受け入れられるかです。ホスティング事業者がモデルに加わり、通信を読めなくても終端を観察できるからです。
第一の条件が満たされ、第二が無関係なら、自宅で置くほうが短い道です。借りた終端が買うのは位置と可用性であって、それ自体がプライバシーなのではありません。
クライアント一つと再起動一回で確かめる
クライアントを一つ立ち上げ、届くべき資源に届くことを確かめ、届くべきでないものに届かなくなったことを確かめます。下のコマンドは、ピアの状態、サーバーが入れた経路、転送が有効かどうかを表示します。ほかの人を登録する前に実行してください。
wg show
sysctl net.ipv4.ip_forward
ip route get 10.8.0.2
ss -lunp | grep -E ':(51820|1194)'
最近ハンドシェイクしたピアはつながっており、ハンドシェイクのないピアは一度も交渉していません。これは別種の故障です。転送が切ってあると、トンネルは上がるのに何も運びません。だからクライアントを責める前にサーバーを見ます。待ち受けがないなら、サービスは思っている設定では起動していません。そのうえで意識してサーバーを再起動し、一連の確認をもう一度やり直します。再起動までしか動かないトンネルは、順調な道だけを試したときのよくある結果です。
終端、ピア、範囲、復旧方法を一枚にまとめます。その一枚は、いちばん都合の悪い瞬間に読む手順書になります。