商用VPNがポート5432を遮断する?選択肢を比較する
VPN をオンにしている間だけ失敗するデータベースやメールクライアントは、ファイアウォールではなくプロバイダーのフィルターに当たっています。ポートを検証してから対処法を選びましょう。
そのアプリケーションは毎日オフィスからデータベースと通信していた。ところが誰かが同じノートPCで商用 VPN クライアントを有効にすると、ハンドシェイクの後に接続がリセットされ始めた。アプリケーション側は何も変わっておらず、トンネルは正常を報告し、あなたが管理するファイアウォールにも遮断ルールはない。変わったのは出口の経路だ。プロバイダーのサーバーは共有された高トラフィックの端点であり、プロバイダーは悪用を減らすために外向きポートをフィルタリングしている。データベースとメール送信のポートがその大半を占めるのは、匿名のアドレスプールからのスキャンやスパムを引き寄せるのがまさにこれらのポートだからだ。
フィルタリングを他のすべてから切り分ける五分間のテスト
同じマシンから、開いているはずのポートと失敗するポートを同じホストに対して、トンネルをオンにした状態とオフにした状態で調べる。両方とも同じコマンドを使い、唯一の変数がトンネルになるようにする。
Test-NetConnection db.example.com -Port 443
Test-NetConnection db.example.com -Port 5432
nc -vz -w3 db.example.com 5432四つの結果でほぼすべてのケースを説明できる。443 が通り 5432 がトンネルをオンにしたときだけ失敗するなら、出口経路でのポートフィルタリングだ。トンネルをオンにすると両方失敗し、オフにすると両方通るなら、問題はポートポリシーではなくルーティングか DNS だ。両方のポートが接続するのにアプリケーションが失敗するなら、到達性ではなく認証か TLS の問題だ。そしてプロバイダーの一つのサーバーロケーションだけが失敗するなら、それはサーバー単位のポリシーなので、設定に触れる前に別のロケーションを試す。
選択肢一:データベースのサブネットをスプリットトンネルにする
ノートPCが商用 VPN を別の目的でしか必要としないなら、データベースのアドレス範囲をトンネルから除外し、トラフィックが共有の出口にまったく入らないようにする。二つの経路が本当に交わる必要がない場合に最もクリーンな選択肢で、文書化できるルーティングルール以外にコストはかからない。トレードオフは、スプリットトンネリングが二つ目のポリシー面を導入するという点だ。トンネルから除外するものは意図的であるべきで、後から誰かが追加したサブネットの副作用であってはならない。
データベースが VPN の届くべきネットワークの内側にある瞬間に機能しなくなるので、採用する前に確認すること。
選択肢二:自前の端点、自前の出口
VPS 上で小さな VPN 端点を動かせば、出口ポリシーを自分で制御でき、共有プールは関与しない。商用クライアントと正直に比較する価値があるのはこの選択肢だ。予測可能な送信元アドレスを得る代わりに、プロバイダーの世界的な拠点と手軽さを失う。データベースとメールのポートを一日中必要とするチームでは、通常このトレードオフは端点の所有に傾く。障害の形が他人の悪用ポリシーではなく、自分自身の設定ミスになるからだ。
送信元アドレスの安定性、あなたのトラフィックを誰が読めるか、端点のプロバイダーが自らのフィルタリングを変える日に何が起きるか、この三点で両者を比較する。
選択肢三:ノートPCを経路から外す
CI ジョブ、スケジュールされたコンテナ、許可されたネットワーク内の踏み台ホストは、人のトンネル状態に依存しない。すでに許可されているホストから SSH トンネルでデータベースに到達すれば、ノートPCがポートと直接話すことはない。複数の人が同じ制限に当たったときに拡張でき、問題を回避するのではなく取り除く選択肢だ。
スプリットトンネルのルールより事前の手間はかかり、今すぐ対話的なセッションを必要とする一人には役立たない。
プロバイダーのアドレスを許可リストに入れるのが誤った比較である理由
プロバイダーの出口アドレスをデータベースの許可リストに加えるのは機能するが、その瞬間にそのアドレスを共有している他のすべての加入者にもアクセスを与えてしまう。狭く付与されたアプリケーションアカウントの背後にある読み取り専用レプリカなら、一日程度の露出は許容できるかもしれない。書き込み可能なものには名前を付ける価値もない取引であり、出口アドレスが回転するとさらに悪化する。サーバーが変わるたびにルールは破られ、保守のたびに広い CIDR エントリを招いて許可リストの意味が失われる。
専用または固定アドレスは、プロバイダーが販売している場合に限り、これが拡張できる唯一の形だ。許可リストは自分だけのアドレスに紐づけるか、まったく紐づけないこと。
何を選んでも、経路と理由を書き残すこと。次の人は同じリセットされる接続に出会い、アプリケーションを疑い始めるだろう。