二つのサービス、一つのグローバルアドレス、そしてポートを予約しているように感じられるDNS名。実際には予約していません。ASAでVPNエントリの隣にDMZサーバーを公開する前に、エントリのタプルを書き出し、順番に確認してください。既存のサービスと一致する最初のフィールドが、計画の止まる地点です。以下の内容はすべて、VPNが内部サーバーではなくアプライアンス自身で終端することを前提としています。

コマンドを書く前に五つのフィールドを書き出す

公開エントリごとに、アドレスファミリー、グローバルアドレス、トランスポート、公開ポート、所有者を記録します。所有者はASAローカルのサービスか、変換された内部サーバーのどちらかです。二つのエントリが同じアドレスを共有しながら別のタプルであることも、二つのエントリが図では別に見えてもアプライアンス上で衝突することもあります。

実際のポート、つまり内部サーバーが本当に待ち受けるポート用に二列目を用意します。公開ポートと実際のポートは独立した選択であり、これらを一列にまとめた瞬間、後から自分の変換を読む能力を失います。

Public entryOwnerReal side
TCP 443 on the outside addressASA VPN listenerAppliance-local, no translation
TCP 8443 on the outside addressStatic PATDMZ server TCP 443
UDP 443 on the outside addressCheck the effective listenersPossibly the VPN data path

実際の位置とマッピングされた位置を正しく読む

追加したいサーバーからではなく、すでに手元にあるタプルから始めます。例示的な分割では、承認済みのVPNエントリを公開TCP 443に置いたまま、DMZのHTTPSサーバーを公開TCP 8443に公開し、そのサーバーは443で待ち受け続けます。

Public TCP 443  -> ASA VPN listener
Public TCP 8443 -> DMZ server TCP 443

展開されたコマンドでは、実際のサービスとマッピングされたサービスが固定の位置にあり、入れ替えると壊れた設定ではなく別のマッピングを表します。動作する変換がパズルになる最も一般的な経路がこれです。設定は有効なままで、ただ別の場所を指しているだけです。

CiscoのASA 9.16 NATガイドは、静的PAT、インターフェイスアドレスの使用、実際のポートとマッピングされたポートの意味を解説しています。実際に運用しているリリースの節を読んでください。古いプラットフォームで覚えたコマンドは、完全な現在の設定ではありません。

トランスポートも予約の一部として数える

TCP 443とUDP 443は別のタプルであり、その違いがUDPを無償で与えてくれるわけではありません。VPNがTLS用とDTLS用に別々のリスナーを持つこともあり、他の設定済みサービスが目的のトランスポートをすでに押さえていることもあります。WebページがVPNエントリのすべてだと決めつけず、有効なリスナーとアクセスポリシーを棚卸ししてください。

同じアドレスに解決される二つ目のホスト名も、トランスポート層の衝突を解決しません。DNSは名前からアドレスへのマッピングであり、ポートの仲介者ではなく、PAT経由でサーバーを公開することはVPNリスナーを別のポートへ移すことと同じ操作ではありません。

VPNエントリを本当に移す必要がある場合、四つのものが同時に変わります。クライアントプロファイル、公開URL、上流のフィルタリング、そして配備が使うすべてのトランスポートです。一つずつではなく、一つの作業枠でまとめて行ってください。到達に使うサービスに触れる前に、アプライアンスへの別の管理経路を開けておいてください。二つ目の経路がなければ、移動は外から取り消せない変更になります。

外側から新しい接続で検証する

有効なアクセスポリシーの下で意図したDMZアプリケーションだけを許可し、対応する変換の順序、サーバーの戻り経路、証明書のホスト名を確認します。PATはネットワークの宛先を変えるだけで、アプリケーションへのアクセスを与えず、別のホストを名乗る証明書を修復しません。

許可された外部ホストから新しい接続で両方のサービスを試します。VPNは引き続き確立されるはずで、DMZへの要求は意図したリスナーに届くはずです。確立済みのセッションは以前の状態を保つことがあるため、一分前に変えたマッピングについて何も証明しません。

配備した内容でエントリ台帳を更新してループを閉じます。作成したのではなく発見したリスナーも含めてください。そのアドレスで次にサービスを公開する人はあなたの表から始めます。そこでの誤った行は、ここでの誤ったコマンドより高くつきます。

関連記事