はじめに
このドキュメントでは、発信接続と着信接続を許可するために、ASAファイアウォール上でNETWORK Address Translation(NAT;ネットワークアドレス変換)とAccess Control List(Acl;アクセスコントロールリスト)を設定する方法の簡単で簡単な例を提供します。 この資料はadaptive Security Appliance(ASA)5510ファイアウォールと実行ASAコードバージョン9より書かれていました。1(1)、しかしこれは他のどのASAの防火壁のプラットホームにも容易に適用できます。 物理インターフェイスの代わりにVlanを使用するasa5505などのプラットフォームを使用する場合は、必要に応じてインターフェイスタイプを変更する必要
前提条件
要件
このドキュメントには特定の要件はありません。このドキュメントに記載されている情報は、ASAコードバージョン9.1(1)を実行するASA5510ファイアウォールに基づいています。
このドキュメントの情報は、特定のラボ環境のデバイスから作成されたものです。 この資料で使用されるデバイスすべてはクリアされた(デフォルトの)設定と始まりました。 ネットワークが稼働している場合は、コマンドの潜在的な影響を理解していることを確認してください。この設定例では、ASAファイアウォールのDMZ内のwebサーバへの着信アクセスを許可し、内部およびDMZホストからの発信接続を許可するために必要なNATおよ これは二つの目標として要約することができます:
- インターネットへの内部およびDMZの送信接続のホストを許可して下さい。
- インターネット上のホストがIPアドレス192.168.1.100のDMZ上のwebサーバーにアクセスできるようにします。
これら2つの目標を達成するために完了しなければならないステップに得る前にこの資料は方法AclおよびNATをASAコード(バージョン8.3およびそれ以降)
アクセス制御リストの概要
アクセス制御リスト(Access-listsまたはAclの略)は、ASAファイアウォールがトラフィックが許可されるか拒否されるかを判断す デフォルトでは、より低いセキュリティレベルからより高いセキュリティレベルへのトラフィックは拒否されます。 これは、下位のセキュリティインターフェイスに適用されるACLによって上書きできます。 また、ASAは、デフォルトで、より高いセキュリティインターフェイスから低いセキュリティインターフェイスへのトラフィックを許可します。 この動作は、ACLで上書きすることもできます。
以前のバージョンのASAコード(8.2以前)では、ASAは最初にパケットの変換を解除せずに、着信接続またはパケットをインターフェイスのACLと比較しました。 つまり、ACLでは、インターフェイス上でパケットをキャプチャするかのように、パケットを許可する必要がありました。 バージョン8で。3以降のコードでは、ASAはインターフェイスAclをチェックする前にそのパケットの変換を解除します。 つまり、8.3以降のコードおよびこのドキュメントでは、ホストの変換されたIPではなく、ホストの実際のIPへのトラフィックが許可されます。
Aclの詳細については、Book2:Cisco ASA Series Firewall CLI Configuration Guide,9.1の”Configuring Access Rules”セクションを参照してください。バージョン8.3以降のASA上のNATは、自動NAT(オブジェクトNAT)と手動NAT(2回NAT)の2つのタイプに分けられます。 2つのうちの最初のオブジェクトNATは、ネットワークオブジェクトの定義内で設定されます。 この例については、このドキュメントの後半で説明します。 このNAT方式の主な利点の1つは、競合を回避するためにASAが自動的にルールを処理するように指示することです。 これはNATの最も簡単な形式ですが、その簡単さには構成の粒度の制限があります。 たとえば、2番目のタイプのNATである手動Natの場合と同様に、パケット内の宛先に基づいて変換を決定することはできません。 手動NATは粒度がより堅牢ですが、正しい動作を実現できるように、回線を正しい順序で設定する必要があります。 これはこのNATタイプを複雑にし、その結果、この設定例では使用されません。
NATの詳細については、『Book2:Cisco ASA Series Firewall CLI Configuration Guide,9.1』のNATに関する情報の項を参照してください。
Configure
Get Started
基本的なASA設定のセットアップは、三つのネットワークセグメントに接続された三つのインターフェイスです。 ISPネットワークセグメントはEthernet0/0インターフェイスに接続され、セキュリティレベル0で外側にラベル付けされます。 内部ネットワークは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の内部インターフェイスが192.168.0.1のIPアドレスと設定され、それが内部ホストのためのデフォルトゲートウェイであることを見ることがで ASAの外部インターフェイスは、ISPから取得したIPアドレスで設定されます。 既定のルートが設定されており、次ホップがISPゲートウェイになるように設定されています。 DHCPを使用する場合、これは自動的に提供されます。 DMZインターフェイスはIPアドレス192.168.1.1で構成されており、DMZネットワークセグメント上のホストのデフォルトゲートウェイです。
Topology
これがどのようにケーブル接続され、構成されているかを視覚的に見てみましょう:
ステップ1-ホストがインターネットに出て行くことを許可するようにNATを設定して下さい
この例のためにオブジェクトNAT、別名AutoNATは、使用されます。 最初に設定するのは、内部およびDMZセグメント上のホストがインターネットに接続できるようにするNATルールです。 これらのホストはプライベートIPアドレスを使用するため、インターネット上でルーティング可能なものに変換する必要があります。 この場合、アドレスがASAの外部インターフェイスIPアドレスのように見えるように変換します。 外部IPが頻繁に変更される場合(おそらくDHCPのため)、これはこれを設定する最も簡単な方法です。
このNATを設定するには、内部サブネットを表すネットワークオブジェクトとDMZサブネットを表すネットワークオブジェクトを作成する必要があります。 これらの各オブジェクトで、これらのクライアントがそれぞれのインターフェイスから外部インターフェイスに渡すときに、アドレス変換(PAT)をポートする動的nat
この設定は次のようになります:
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 前の出力の最初のエントリを取る場合:
192.168.0.0/24サブネットに一致するホストが内部インターフェイスから外部インターフェイスにトラバースする場合、それらを外部インターフェイスに動的に変換する必要があります。
ステップ2-インターネットからWebサーバーにアクセスするためのNATの設定
内部インターフェイスとDMZインターフェイスのホストがインターネットに出 この例では、インターネット上の人々がISPが提供する別のIPアドレス、つまり私たちが所有する追加のIPアドレスに接続できるように設定します。 この例では、198.51.100.101を使用します。 この構成では、インターネット上のユーザーは198.51.100にアクセスしてDMZ webサーバーにアクセスできます。TCPポート80で101。 このタスクにオブジェクトNATを使用すると、ASAはwebサーバ上のTCPポート80(192.168.1.100)を外部のTCPポート80上の198.51.100.101のように変換します。 以前に行ったことと同様に、オブジェクトを定義し、そのオブジェクトの変換ルールを定義します。 また、このホストを変換する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ルールが何を意味するのかを要約するだけです:
IPアドレス192.168.1と一致するホストの場合。DMZセグメント上の100は、TCPポート80(www)から発信された接続を確立し、その接続が外部インターフェイスに出て行く場合、それを外部インターフェイス上のTCPポー
それは少し奇妙に思えます。.. “TCPポート80(www)から送信されます”が、webトラフィックはポート80に送信されます。 これらのNATルールは本質的に双方向であることを理解することが重要です。 その結果、この文を言い換えるために言葉dingを反転させることができます。 結果はもっと理にかなっています:
外部のホストが宛先TCPポート80(www)で198.51.100.101への接続を確立すると、宛先IPアドレスを192.168.1.100に変換し、宛先ポートをTCPポート80(www)に変換してDMZを送信します。
このように表現すると、これはより理にかなっています。 次に、Aclを設定する必要があります。
ステップ3-Aclの設定
NATが設定されており、この設定の終わりが近くにあります。 ASA上のAclを使用すると、次のデフォルトのセキュリティ動作を上書きできます:
- 低いセキュリティインターフェイスからのトラフィックは、高いセキュリティインターフェイスに行くと拒否されます。
- 上位のセキュリティインターフェイスからのトラフィックは、下位のセキュリティインターフェイスに行くときに許可されます。
そのため、設定にAclを追加しないと、この例のトラフィックは機能します:
- 内部のホスト(セキュリティレベル100)は、DMZのホスト(セキュリティレベル50)に接続できます。
- 内部のホスト(セキュリティレベル100)は外部のホスト(セキュリティレベル0)に接続できます。DMZ上のホスト(セキュリティレベル50)は、外部のホスト(セキュリティレベル0)に接続できます。
ただし、このトラフィックは拒否されます:
- 外部のホスト(セキュリティレベル0)は、内部のホスト(セキュリティレベル100)に接続できません。
- 外部のホスト(セキュリティレベル0)は、DMZのホスト(セキュリティレベル50)に接続できません。
- DMZ上のホスト(セキュリティレベル50)は内部のホスト(セキュリティレベル100)に接続できません。
外部からDMZネットワークへのトラフィックは、現在の設定でASAによって拒否されるため、インターネット上のユーザは、ステップ2のNAT設定にもかかわらず、webサーバに到達することができません。 このトラフィックを明示的に許可する必要があります。 8.3以降のコードでは、変換されたIPではなく、ACLでホストの実際のIPを使用する必要があります。 つまり、構成では、ポート80の198.51.100.101宛てのトラフィックではなく、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
アクセスリスト行の状態:
ポート80上のオブジェクトwebサーバー(192.168.1.100)で表されるホストへのany(where)からのトラフィックを許可します。
ここでは、設定でanyキーワードを使用することが重要です。 クライアントの送信元IPアドレスはwebサイトに到達したときには知られていないため、任意の意味を”任意のIPアドレス”と指定します。
内部ネットワークセグメントのホスト宛てのDMZセグメントからのトラフィックはどうですか? たとえば、DMZ上のホストが接続する必要がある内部ネットワーク上のサーバー。 ASAはどのようにして内部サーバ宛ての特定のトラフィックのみを許可し、DMZから内部セグメント宛ての他のすべてをブロックできますか?この例では、DMZ上のホストがDNS解決のためにアクセスする必要があるipアドレス192.168.0.53の内部ネットワーク上にDNSサーバがあると仮定します。 必要なACLを作成してDMZインターフェイスに適用すると、ASAがそのインターフェイスに入るトラフィックに対して前述したデフォルトのセキュリティ
これらの設定コマンドは次のようになります:
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は、単にUDPポート53上のDNSサーバーへのトラフィックを許可するよりも複雑です。 最初の「許可」行だけであれば、DMZからインターネット上のホストへのすべてのトラフィックがブロックされます。 ACLには、ACLの最後に暗黙的な’deny ip any any’があります。 その結果、あなたのDMZホストはインターネットに出られなくなります。 DMZから外部へのトラフィックはデフォルトで許可されていますが、DMZインターフェイスへのACLの適用では、DMZインターフェイスのデフォルトのセキ
ステップ4-パケットトレーサー機能を使用した設定のテスト
設定が完了したので、動作することを確認するためにテストする必要があります。 最も簡単な方法は、実際のホストを使用することです(これがネットワークの場合)。 ただし、CLIからのこれをテストし、ASAのツールのいくつかを更に探検することのために、検出される問題をテストし、可能性としてはデバッグするためにパ
Packet tracerは、一連のパラメータに基づいてパケットをシミュレートし、そのパケットをインターフェイスのdata-pathに注入することによって動作します。 このパケットは、ファイアウォールを通過するときに行われる無数のチェックとプロセスを通過し、パケットトレーサーは結果を記録します。 インターネット上のホストに出て行く内部ホストをシミュレートします。 以下のコマンドは、ファイアウォールに次のように指示します:
送信元ポート12345のIPアドレス192.168.0.125からポート80のIPアドレス203.0.113.1に宛てられた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サーバーへの接続のためにそれを実行します。 インターネット上のホストは、外部インターフェイス上の198.51.100.101に接続することによってwebサーバーにアクセスします。 繰り返しますが、この次のコマンドは次のように変換されます:
送信元ポート12345のIPアドレス192.0.2.123からポート80のIPアドレス198.51.100.101に宛てられたTCPパケットを外部インターフェイスに送信するシミュレートします。
ciscoasa# packet-tracer input outside tcp 192.0.2.123 12345 198.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 198.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-パケットトレーサー機能を使用した設定のテストに含まれています。
Troubleshoot
現在、この設定で使用できる特定のトラブルシューティング情報はありません。基本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
たとえば、前述のようにインターフェイスが接続されているASA5505では(外部がEthernet0/0に接続され、内部がEthernet0/1に接続され、DMZがEthernet0に接続されています)、/2):
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