セキュリティ : Cisco ASA 5500-X シリーズ次世代型ファイアウォール

基本的な ASA NAT コンフィギュレーション: ASA バージョン 8.3 以降の DMZ の Web サーバ

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2013 年 7 月 1 日) | 英語版 (2015 年 8 月 22 日) | フィードバック

概要

このドキュメントでは、発信と着信の接続を許可する目的で、NAT とアクセス コントロール リスト(ACL)を ASA ファイアウォールで設定する方法について、簡単な例を提供します。 この資料は ASA コードバージョン 9.1(1) を実行する ASA 5510 ファイアウォールを使用して書かれていましたこれは他のどの ASA ファイアウォール プラットフォームにも容易に適用できます。 物理インターフェイスの代わりに VLAN を使用する ASA 5505 などのプラットフォームを使用する場合は、適切なインターフェイス タイプに変更する必要があります。

シスコ TAC エンジニア、マグナス・モーテンセン寄稿。

前提条件

要件

このドキュメントに関する特別な要件はありません。

使用するコンポーネント

この文書に記載されている情報は ASA コードバージョン 9.1(1) を実行する ASA 5510 ファイアウォールに基づいています。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

概要

目標

この例のコンフィギュレーションでは、ASA ファイアウォールの DMZ 内の Web サーバへの着信アクセス、および内部ホストと DMZ ホストからの発信接続を許可するために設定する必要がある、NAT とアクセス コントロール リストのコンフィギュレーションについて説明します。 これは、次の 2 つの目的に集約できます。

  1. 内部および DMZ のホストに、インターネットへの発信接続を許可する。
  2. インターネットのホストに、IP アドレスが 192.168.1.100 である DMZ の Web サーバへのアクセスを許可する。

この 2 つの目標を達成するために必要なステップの説明を始める前に、ASA コードの新しいバージョン(バージョン 8.3 以降)のアクセス リストと NAT の動作方法について簡単に説明します。

アクセス コントロール リストの概要

アクセス コントロール リスト(短縮してアクセス リストまたは ACL)は、ASA ファイアウォールがトラフィックを許可するか拒否するかを決定する方法です。 デフォルトで低いセキュリティ レベルから高いレベルへのトラフィックの通過は拒否されます。 これは、低いセキュリティ インターフェイスに ACL を適用することで上書きできます。 また、デフォルトで ASA は、高いセキュリティ インターフェイスから低いインターフェイスへのトラフィックを許可します。 この動作も ACL で上書きできます。

ASA コードの以前のバージョン(8.2 以前)では、ASA は着信接続または着信パケットを、最初にパケットの逆変換を行わずにインターフェイスの ACL と比較します。 つまり ACL では、インターフェイスでキャプチャした状態のパケットを許可する必要がありました。 8.3 以降のコードでは、ASA はインターフェイスの ACL を確認する前にパケットを逆変換します。 つまり、8.3 以降のコード、そしてこのドキュメントでは、ホストの変換された IP ではなく、ホストの実際の IP へのトラフィックが許可されます。

本 2設定アクセス規則セクションを参照して下さい: Cisco ASA シリーズ ファイアウォール CLI コンフィギュレーション ガイド、アクセスコントロール アクセス・コントロール・リストに関する詳細については 9.1

NAT の概要

バージョン 8.3 および それ 以降の ASA の NAT はオート NAT (オブジェクト NAT)および手動 NAT (二度 NAT)として 2 つのタイプに確認します分けられます。 1 つめの Object NAT は、ネットワーク オブジェクトの定義の中で設定されます。 この例については、この後このドキュメントで説明します。 この NAT 方法の主な利点の 1 つは、競合を避けるために ASA によって自動的に処理するルールの順序が並べ替えられることです。 この方法は NAT の最も簡単な形式ですが、この簡明さによってコンフィギュレーションの詳細度は制限されます。 たとえば、2 種類目の NAT である Manual NAT では可能な、パケットの宛先に基づいた変換の決定ができません。 Manual NAT は詳細度については優れていますが、正しい動作を得るためには各行を正しい順序で設定する必要があります。 これによりこの NAT タイプは複雑になるため、このページのコンフィギュレーション例では使用しません。

本 2NAT セクションについての情報を参照して下さい: Cisco ASA シリーズ ファイアウォール CLI コンフィギュレーション ガイド、NAT に関する詳細については 9.1

設定

: このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool登録ユーザ専用)を使用してください。

はじめに

基本的な ASA 設定のセットアップでは、3 つのネットワーク セグメントに接続された 3 つのインターフェイスがあります。 ISP ネットワーク セグメントは Ethernet0/0 インターフェイスに接続され、セキュリティ レベル 0 の outside のラベルが付けられます。 内部ネットワークは Ethernet0/1 に接続され、セキュリティ レベル 100 の inside のラベルが付けられます。 Web サーバが存在する DMZ セグメントは Ethernet0/2 に接続され、セキュリティ レベル 50 の dmz のラベルが付けられます。

この例のインターフェイスのコンフィギュレーションと IP アドレスは次のようになります。

interface Ethernet0/0
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Ethernet0/2
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1

ASA の inside インターフェイスは IP アドレスが 192.168.0.1 に設定されていることがわかります。これが内部ホストのデフォルト ゲートウェイです。 ASA の outside インターフェイスは ISP から入手した IP アドレスで設定されています。 ネクスト ホップを ISP のゲートウェイに設定するデフォルト ルートが設定されています。 DHCP を使用する場合、これは自動的に提供されます。 dmz インターフェイスは IP アドレスが 192.168.1.1 に設定されています。これが DMZ ネットワーク セグメント上のホストのデフォルト ゲートウェイです。

トポロジ

ケーブル接続と設定を次に図示します。

asa-config-dmz-01.gif

ステップ 1 -ホストがインターネットに出かけるように NAT を設定して下さい

この例では Object NAT、別名 AutoNAT を使用します。 最初に設定するのは、inside および dmz セグメント上のホストのインターネットへの接続を許可する NAT ルールです。 これらのホストはプライベート IP アドレスを使用するので、これをインターネット上でルーティング可能なアドレスに変換する必要があります。 この例では、アドレスが ASA の outside インターフェイスの IP アドレスに見えるように変換します。 外側の IP が(おそらく DHCP によって)頻繁に変更される場合、このセットアップはとても簡単です。

この NAT を設定するには、内側のサブネットを表すネットワーク オブジェクトと、dmz のサブネットを表すネットワーク オブジェクトを作成する必要があります。 これらのオブジェクトでそれぞれ ダイナミック NAT ルールを設定すると、対応するインターフェイスから外側のインターフェイスへ通過する際にこれらのクライアントに対して PAT が行われます。

このコンフィギュレーションは次のようになります。

object network inside-subnet
subnet 192.168.0.0 255.255.255.0
nat (inside,outside) dynamic interface
!
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
nat (dmz,outside) dynamic interface

この時点で実行コンフィギュレーションを見ると(show run の出力)、オブジェクト定義が出力の 2 つの部分に分かれていることがわかります。 最初の部分ではオブジェクトに含まれる内容(ホスト/サブネット、IP アドレスなど)のみが示され、2 番目のセクションでは、そのオブジェクトに結び付けられた NAT ルールが表示されます。 この出力の最初のエントリは次を意味します。

内部インターフェイスから outside インターフェイスに 192.168.0.0/24 サブネット横断を一致させるホストが私達動的に outside インターフェイスにそれらを変換したいと思う時

ステップ 2 -インターネットから Webサーバにアクセスするために NAT を設定して下さい

内側および dmz インターフェイスのホストがインターネットに到達できるようになったので、次にインターネット上のユーザが Web サーバの TCP ポート 80 にアクセスできるようにコンフィギュレーションを変更する必要があります。 この例では、ISP から提供された、別途所有する追加の IP アドレスに、インターネット上のユーザが接続できるようにセットアップします。 この例では 198.51.100.101 を使用します。 このコンフィギュレーションによって、インターネット上のユーザは 198.51.100.101 の TCP ポート 80 にアクセスすることで DMZ の Web サーバに到達できます。 ASA はこのタスクに Object NAT を使用し、Web サーバ(192.168.1.100)の TCP ポート 80 が外側の 198.51.100.101 の TCP ポート 80 に見えるように変換します。 同様に、オブジェクトを定義し、オブジェクトの変換ルールを定義します。 さらに、このホストの変換先の IP を表す 2 番目のオブジェクトを定義します。

このコンフィギュレーションは次のようになります。

object network webserver-external-ip
host 198.51.100.101
!
object network webserver
host 192.168.1.100
nat (dmz,outside) static webserver-external-ip service tcp www www

この例の NAT ルールの内容をまとめると次のようになります。

dmz セグメントの IP アドレス 192.168.1.100 と一致するホストが TCPポート 80 (www からソースをたどられる接続を確立し、時その接続は outside インターフェイス出かけます、outside インターフェイスTCPポート 80 (www)ですためにおよび 198.51.100.101 才であるためにその IP アドレスを変換するようにそれを変換したいと思います

これは多少奇妙に思えます。 「TCP ポート 80(www)を送信元とする」とありますが、Web トラフィックはポート 80 を宛先にします。 これらの NAT ルールは本質的に双方向であることを理解することが重要です。 このため、用語を反転させてこの文を言い換えることができます。 変換した結果はより理解しやすくなります。

外部のホストが宛先TCP ポート 80 (www)198.51.100.101 への接続を確立する場合、192.168.1.100 であるために宛先 IP アドレスを変換し、宛先ポートは TCPポート 80 (www)で、それを dmz 送信 します

このように表現した方がより理解しやすくなります。 次に ACL を設定する必要があります。

ステップ 3 - ACL を設定して下さい

NAT が設定され、今回のコンフィギュレーションの終了に近づきました。 ASA の ACL によって次のようなデフォルトのセキュリティ動作を上書きできることを思い出してください。

  • セキュリティの低いインターフェイスから送信されたトラフィックがセキュリティの高いインターフェイスへ送信される場合は拒否されます。
  • セキュリティの高いインターフェイスから送信されたトラフィックがセキュリティの低いインターフェイスへ送信される場合は許可されます。

このため、コンフィギュレーションに ACL を何も追加しない場合、この例では次のトラフィックが許可されます。

  • 内側(セキュリティ レベル 100)のホストは DMZ(セキュリティ レベル 50)のホストに接続できます。
  • 内側(セキュリティ レベル 100)のホストは外側(セキュリティ レベル 0)のホストに接続できます。
  • DMZ(セキュリティ レベル 50)のホストは外側(セキュリティ レベル 0)のホストに接続できます。

一方、次のトラフィックは拒否されます。

  • 外側(セキュリティ レベル 0)のホストは内側(セキュリティ レベル 100)のホストに接続できません。
  • 外部のホスト(セキュリティレベルは dmz (50) セキュリティレベルのホストに 0)接続できません
  • dmz のホスト(セキュリティレベルは内部(100) セキュリティレベルのホストに 50)接続できません

現在のコンフィギュレーションでは、外側から DMZ ネットワークへのトラフィックは ASA によって拒否されるため、ステップ 2 で NAT の設定をしたにもかかわらず、インターネット上のユーザは Web サーバに接続できません。 このトラフィックを明示的に許可する必要があります。 8.3 以降のコードでは、変換された IP ではなくホストの実際の IP を ACL で使用する必要があります。 つまり、コンフィギュレーションでは、宛先が 198.51.100.101 のポート 80 のトラフィックではなく、宛先が 192.168.1.100 のトラフィックを許可する必要があります。 単純化するために、ステップ 2 で定義したオブジェクトを ACL に使用することもできます。 ACL を作成したら、それを外側のインターフェイスの着信に適用する必要があります。

これらのコンフィギュレーション コマンドは次のようになります。

access-list outside_acl extended permit tcp any object webserver eq www
!
access-group outside_acl in interface outside

この access-list 行は次を意味します。

any(任意の場所)から webserver オブジェクト(192.168.1.100)で表されるホストのポート 80 へのトラフィックを許可します。

ここで any キーワードを使用することが重要です。 Web サイトに到達するクライアントの送信元 IP アドレスはわからないため、「任意の IP アドレス」を意味する any を指定します。

DMZ セグメントから内部ネットワーク セグメントのホスト宛のトラフィックについてはどうすればよいでしょうか。 たとえば、内部ネットワークのサーバに接続する必要のあるホストが DMZ 上に存在する場合です。 ASA が DMZ から内部サーバ宛の特定のトラフィックのみを許可し、それ以外は内部セグメント宛のトラフィックをすべてブロックするにはどうすればよいでしょうか。

この例では、内部ネットワークに IP アドレス 192.168.0.53 の DNS サーバがあり、DNS 解決のために DMZ 上のホストがアクセスする必要があると仮定します。 DMZ インターフェイスに着信するトラフィックに対して、前述したデフォルトのセキュリティ動作を ASA が上書きできるように、必要な ACL を作成して DMZ インターフェイスに適用します。

これらのコンフィギュレーション コマンドは次のようになります。

object network dns-server
host 192.168.0.53
!
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
access-group dmz_acl in interface dmz

この ACL は、DNS サーバの UDP ポート 53 へのトラフィックを単純に許可するよりも複雑です。 最初の 'permit' 行だけにした場合、DMZ からインターネット上のホストへのすべてのトラフィックはブロックされます。 ACL の最後には暗黙の 'deny ip any any' があるためです。 その結果、dmz ホストはインターネットに出かけられませんでした。 DMZ から外側へのトラフィックがデフォルトで許可されていても、DMZ インターフェイスに ACL を適用することによって DMZ インターフェイスのデフォルトのセキュリティ動作は無効となり、インターフェイスの ACL でトラフィックを明示的に許可する必要があります。

ステップ 4 -パケット トレーサー機能との設定をテストして下さい

コンフィギュレーションが完了したので、動作を確認する必要があります。 最も簡単な方法は実際のホストを使用することです(自分が所有するネットワークの場合)。 しかし、コマンド ラインからのテストと ASA のツールの一部を紹介するために、パケット トレーサーを使用してテストを行い、必要な場合は発生した問題をデバッグします。

パケット トレーサーは、一連のパラメータに基づいてパケットを模倣し、ワイヤから取り出した実際のパケットのようにそのパケットをインターフェイスのデータパスに挿入します。 このパケットには、ファイアウォールを通過するパケットに対して実施される数多くのチェックや処理が行われ、パケット トレーサーはその結果を記録します。 インターネット上のホストに送信しようとしている内部ホストのシミュレーションを行います。 次のコマンドはファイアウォールに次の内容を指示します。

内側のインターフェイスに到着した、IP アドレス 192.168.0.125 の送信元ポート 12345 から IP アドレス 203.0.113.1 のポート 80 宛の TCP パケットをシミュレートします。

ciscoasa# packet-tracer input inside tcp 192.168.0.125 12345 203.0.113.1 80

Phase: 1
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list

Phase: 2
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:Additional Information:
in 0.0.0.0 0.0.0.0 outsidePhase: 3
Type: NAT
Subtype:
Result: ALLOW
Config:
object network inside-subnet
nat (inside,outside) dynamic interface
Additional Information:
Dynamic translate 192.168.0.125/12345 to 198.51.100.100/12345

Phase: 4
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:

Phase: 5
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 6
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:

Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 8
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1, packet dispatched to next module

Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow

最終結果ではこのトラフィックが許可されており、これはコンフィギュレーションの NAT と ACL チェックを通過して外側の出力インターフェイスから送信されたことを意味します。 パケットはフェーズ 3 で変換されており、ヒットしたルールがこのフェーズの詳細に表示されていることに注目してください。 ホスト 192.168.0.125 はコンフィギュレーションに従って動的に 198.51.100.100 に変換されています。

次に、インターネットから Web サーバへの接続を実行します。 インターネット上のホストは外側のインターフェイスの 192.51.100.101 に接続することによって Web サーバにアクセスすることを思い出してください。 このコマンドは次のように翻訳できます。

外側のインターフェイスに到着した、IP アドレス 192.0.2.123 の送信元ポート 12345 から IP アドレス 198.51.100.101 のポート 80 宛の TCP パケットをシミュレートします。

ciscoasa# packet-tracer input outside tcp 192.0.2.123 12345 98.51.100.101 80

Phase: 1
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
Additional Information:
NAT divert to egress interface dmz
Untranslate 98.51.100.101/80 to 192.168.1.100/80

Phase: 2
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group outside_acl in interface outside
access-list outside_acl extended permit tcp any object webserver eq www
Additional Information:

Phase: 3
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:

Phase: 4
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 5
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
Additional Information:

Phase: 6
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:

Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 8
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 3, packet dispatched to next module

Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: dmz
output-status: up
output-line-status: up
Action: allow

結果は再びパケットが許可されています。 ACL がテストされ、コンフィギュレーションが正しいことがわかったので、インターネット上(外部)のユーザは外部 IP を使用して Web サーバにアクセスできます。

確認

確認 手順はステップ 4 に含まれています-パケット トレーサー機能との設定のテスト。

トラブルシューティング

現在のところ、この設定に関する特定のトラブルシューティング情報はありません。

結論

基本的な NAT を行う ASA のコンフィギュレーションはそれほど大変な作業ではありません。 このドキュメントの例は、上記のサンプル コンフィギュレーションで使用されている IP アドレスとポートを変更することによって特定のシナリオに適用できます。 コンフィギュレーションをまとめると、この例の最終的な ASA の設定は、ASA 5510 に対しては次のようになります。

ASA Version 9.1(1)
!
interface Ethernet0/0
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Ethernet0/2
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
object network inside-subnet
subnet 192.168.0.0 255.255.255.0
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
object network webserver
host 192.168.1.100
object network webserver-external-ip
host 198.51.100.101
object network dns-server
host 192.168.0.53

!
access-list outside_acl extended permit tcp any object webserver eq www
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
object network inside-subnet
nat (inside,outside) dynamic interface
object network dmz-subnet
nat (dmz,outside) dynamic interface
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
access-group outside_acl in interface outside
access-group dmz_acl in interface dmz
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1 1

たとえば ASA 5505 であれば、インターフェイスが前の説明と同様に接続されている場合(Ethernet0/0 に接続された外部ネットワーク、Ethernet0/1 に接続された内部ネットワーク、Ethernet0/2 に接続された DMZ)、次のようになります。

ASA Version 9.1(1)
!
interface Ethernet0/0
description Connected to Outside Segment
switchport access vlan 2
!
interface Ethernet0/1
description Connected to Inside Segment
switchport access vlan 1
!
interface Ethernet0/2
description Connected to DMZ Segment
switchport access vlan 3
!
interface Vlan2
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Vlan1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Vlan3
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
object network inside-subnet
subnet 192.168.0.0 255.255.255.0
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
object network webserver
host 192.168.1.100
object network webserver-external-ip
host 198.51.100.101
object network dns-server
host 192.168.0.53



!
access-list outside_acl extended permit tcp any object webserver eq www
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
object network inside-subnet
nat (inside,outside) dynamic interface
object network dmz-subnet
nat (dmz,outside) dynamic interface
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
access-group outside_acl in interface outside
access-group dmz_acl in interface dmz
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1 1

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


Document ID: 115904