コンテンツにスキップ

Cisco ASAの全体像

Cisco ASA は、インターフェース間を通過する通信を状態、ACL、NAT、VPN などに基づいて制御する Cisco のファイアウォールである。

ASA は Cisco IOS / IOS XE ルータと似た形式の CLI を持つが、ASA のソフトウェアは IOS の一種ではない。コマンド名が似ていても、構文や処理が同じとは限らない。仮想アプライアンス版は ASAv と呼ばれる。


ASA には routed mode と transparent mode がある。

モード 動作
routed mode 各データインターフェースに IP アドレスを持ち、Layer 3 でルーティングしながら通信を検査する
transparent mode ネットワーク間に Layer 2 ファイアウォールとして入り、ブリッジ転送する

single contextでは一台のASAを一つのファイアウォールとして扱う。multiple contextでは、一台のASAを複数の論理ファイアウォールへ分割し、contextごとにインターフェース、ポリシー、ルーティングなどを管理する。


インターフェースを構成する要素

Section titled “インターフェースを構成する要素”

ASA の routed interface は、物理または仮想インターフェースに次の情報を設定して使う。

要素 役割
インターフェースID GigabitEthernet0/0など、ポート自体を識別する名前
nameif inside、outsideなど、ASAの各機能から参照する論理名
security-level インターフェースの信頼度を0から100で表す値
IPアドレス routed modeでASAがルーティングに使うアドレス

nameif は単なる説明文ではない。NAT の (inside,outside)、access-group の適用先、crypto map の適用先などでは、インターフェースIDではなく nameif を指定する。

一般的には、内部側をinside、外部側をoutsideと名付ける。security levelの既定値は0である。ただし、nameif insideを設定したインターフェースだけは、security levelを省略すると100になる。outsideという名前が0を設定するわけではない。意図を設定へ明示するため、既定値と同じ値を明示的に指定できる。


security level は0が最も低く、100が最も高い。ACLが適用されていない基本状態では、異なるsecurity level間の通信は次のように扱われる。

通信方向 既定の扱い
高いsecurity levelから低いsecurity level 許可
低いsecurity levelから高いsecurity level 拒否
同じsecurity level同士 拒否

security level は通信ポリシーの初期値であり、ポート番号や個別ホストまで表現する規則ではない。具体的な許可・拒否は extended ACL を access-group でインターフェースへ適用して制御する。同じsecurity levelのインターフェース間を許可する場合は、same-security-traffic permit inter-interface を使用する。

ASA はステートフルに通信を追跡する。許可された TCP や UDP の接続については接続表を作り、その接続に属する戻り通信を対応づける。ACL を往路と復路で機械的に二重定義するのではなく、どちら側から接続を開始できるかを基準に考える。


ASA の ACL には二つの代表的な使われ方がある。

使われ方 permitの意味
access-groupでインターフェースへ適用 パケットの通過を許可する
crypto mapや機能の選択条件として参照 その機能の処理対象に含める

同じ access-list 構文でも、どの機能から参照されるかによって役割が変わる。IPsec の crypto ACL は「暗号化する通信」を選ぶ条件であり、それだけではインターフェースを通過する通信の許可規則にはならない。

ASA の IPv4 ACL でネットワークを指定するときは、IOS / IOS XE の ACL で使うワイルドカードマスクではなく、255.255.255.0 のようなサブネットマスクを使用する。

interface ACLは、access-group ACL-NAME in interface insideのようにnameifへ適用する。inはそのインターフェースからASAへ入る方向、outはASAからそのインターフェースへ出る方向である。通常は接続を開始するパケットを入口のin ACLで制御する。

ACLの末尾には暗黙のdenyがある。ACLを適用した方向では、明示的なpermitに一致しない通信は拒否される。このため、高いsecurity levelから低いsecurity levelへの既定許可をACLで絞り、低いsecurity levelから高いsecurity levelへの通信をACLで明示的に許可できる。

同じsecurity levelのインターフェース間では、ACLより先にsame-securityの可否が検査される。ACLでpermitしていても、インターフェース間通信にはsame-security-traffic permit inter-interfaceが必要である。


ASA がパケットを転送するには、一つの設定だけでなく複数の判断が成立する必要がある。

  • ACLまたはsecurity levelにより通信が許可される
  • NAT規則により、送信元と宛先をどのアドレスとして扱うかが決まる
  • ルーティングテーブルから出力インターフェースとnext hopが決まる
  • 戻り通信がASAへ戻る経路が存在する

NAT は許可規則ではない。静的 NAT を設定しても通信を無条件に許可するわけではなく、ACL や接続状態による判断は別に行われる。一方、ACL で許可していても、意図しない NAT 規則に一致したり戻り経路がなかったりすれば通信は成立しない。

NAT には、network object の中で設定する object NAT と、送信元と宛先を一つの規則で条件にできる twice NAT がある。twice NAT は初期状態では NAT table の Section 1 に入り、上から最初に一致した規則が使われる。VPN の identity NAT では、送信元と対向ネットワークの組み合わせを指定できる twice NAT が使われる。

IKE、NAT-T、ESPなどASA自身がVPNを終端するためのパケットは、既定ではoutsideのinterface ACLへ個別のpermitを追加しなくても受け付けられる。復号後にASAを通過してinsideへ転送されるパケットは別に扱われ、sysopt connection permit-vpnやinterface ACLの設定が関係する。


項目 ASA IOS / IOS XEルータ
ソフトウェア ASA専用のソフトウェア IOSまたはIOS XE
主な役割 ステートフルファイアウォール、NAT、VPN ルーティング、スイッチング、各種ネットワーク機能
インターフェースの論理名 nameif insideなどを各機能から参照する 多くの機能でGigabitEthernet0/0などのIDを直接参照する
信頼度の初期値 security-levelを持つ ASAのsecurity levelに相当する仕組みはない
IPv4 ACLのネットワークマスク サブネットマスク 一般にワイルドカードマスク
拠点間IPsecの例 crypto ACL、crypto map、tunnel-groupを組み合わせる VTI、GRE over IPsec、crypto mapなどを選択できる

IOS / IOS XE のコマンドを ASA へそのまま移すことはできない。たとえば、ASA の IKEv2 policy は、IOS / IOS XE の IKEv2 proposal と policy を分けた構成とは異なる。ASA 固有の IPsec 設定要素は Cisco ASAのIPsec設定要素 を参照する。