IPv4の高度なACL[拡張ACLの設定ガイドライン]

2015年5月11日(月)
野口 一徳

■ACL設置のガイドライン

●フィルタリングのロジックの誤りを少なくする

フィルタリングの条件をACLで論理的に正しく実装するためには、次の2点に留意します。
 
1つ目はルータの機能ですが、2つ目は誤りを防ぎやすいという意味です。
 
①パケットの評価はACLの1行目から順番に行われる。
②条件の範囲が入れ子になったり重複する場合には、条件の範囲がより狭い具体的な行を先に定義する。
 
標準ACLの例を見てみましょう。10.0.1.0/24のLANからのアクセスは許可し、その中の10.0.1.8のホストからのアクセスだけは拒否したいという場合です。
 
一般的には、次のように条件をより狭く限定する10.0.1.8/32の行を先に記述すると正しく動作します。
 
access-list 1 deny 10.0.1.8 0.0.0.0
access-list 1 permit 10.0.1.0 0.0.0.255
 
次のように、LAN全体を許可する行を先にすると、拒否したいホストまで含めて許可してしまい、2行目のホストの条件を記述した行よりも前に、評価が終了してしまいます。
 
access-list 1 permit 10.0.1.0 0.0.0.255
access-list 1 deny 10.0.1.8 0.0.0.0
 
もう1つの例として、TELNETは拒否し、TCP全体は許可するというACLの例を次に示します。
 
access-list 101 deny tcp any any eq telnet
access-list 101 permit tcp any any
 
より条件の範囲が狭いTELNETを先に記述すると正しく動作しますが、逆に範囲の広いTCPを先に記述した次の例ではTELNETを拒否できません。
 
access-list 101 permit tcp any any
access-list 101 deny tcp any any eq telnet
 

●ACLの配置でネットワークの負荷を低減する

不要なパケットは、送信元から送信先へのルート中の送信元に近い位置にACLを配置することで、パケットをネットワークに流さないようにします。不要なパケットがなくなり、使用するネットワークの帯域幅を少なくでき、レスポンスが良くなります。
 
また、ルータの入り口のインタフェースで不要のパケットを廃棄すると、そのルータでの処理の負荷も軽減されます。
 
拡張ACLを用いたフィルタリングでは、拡張ACLをパケットの送信元にできるだけ近いインタフェースに配置します。
 
また、標準ACLを用いたフィルタリングでは、標準ACLを宛先にできるだけ近いインタフェースに配置します。この場合、ネットワークには負荷がかかります。
 
パケットをフィルタリングするときに、ネットワーク中のどこにACLを配置したら効果的かという問題を図1で考えてみましょう。
 
ACLの配置
図1 ACLの配置
 
図1で、PC1のLANからPC3のLANへのパケットを拒否して、それ以外の通信はすべて許可するというポリシーを実現するとします。ACLは、パケットの通り道になるインタフェースに配置するので、図1の①から④が候補になります。
 
標準ACLを使ったフィルタリングの例では、次のように記述します。
 
access-list 1 deny 10.0.1.0 0.0.0.255
access-list 1 permit any

interface GigabitEthernet0/0 ※図1の①の例
ip access-group 1 in
 
これを配置できるのは図1の④だけになります。標準ACLは、宛先にできるだけ近いインタフェースに配置します。
 
①のインバウンドに配置した場合は、PC1からPC2とPC4に向うパケットも拒否してしまいます。
 
②のアウトバウンド、または、③のインバウンドに配置した場合は、PC1からPC4に向うパケットも拒否してしまいます。
 
④のアウトバウンドに配置すれば、PC1からPC4に向うパケットのみを拒否することができ、正しく動作します。
 
しかし、最終的に廃棄するパケットは、ネットワークの中を経て最後のインタフェースまで通すことになり、ネットワークの帯域幅を無駄に使用します。標準ACLを用いたフィルタリングは効率的とは言えません。
 
拡張ACLは、標準ACLが扱う送信元IPアドレス情報に加えて、宛先IPアドレス情報、プロトコルなどの複雑な条件を指定できます。このため、標準ACLと比べてフィルタリングする条件や配置する場所にも柔軟性があります。
 
拡張ACLを使ったフィルタリングの例では、次のように記述します。
 
access-list 101 deny ip 10.0.1.0 0.0.0.255 10.0.3.0 0.0.0.255
access-list 101 permit ip any any
 
これを配置できるのは図1のパケットの通り道になる①から④の全てになります。
 
拡張ACLでは、送信元IPアドレスに加えて、宛先IPアドレスが指定できます。このため、①のインバウンド、②のアウトバウンド、③のインバウンド、④のアウトバウンド、すべてのインタフェースに配置しても正常に動作します。
 
どこでも正しく動作するのであれば、最適な配置は、性能の視点に移ってきます。
 
不要なパケットを早い段階で廃棄して、ルータやネットワークの負荷を軽減するには、送信元に一番近い①が拡張ACLの最適な配置になります。
 
拡張ACLは、パケットの送信元にできるだけ近いインタフェースに配置します。
 
ルータの入り口のインタフェースで不要のパケットを廃棄すると、ルータでの処理の負荷が軽減されるので②よりは①が適切です。ルータでのパケットの処理は、入力のインタフェースでインバウンドのACL処理、ルーティングテーブルの検索の処理、出力のインタフェースでアウトバウンドのACL処理、という順で行われるので、不要なパケットをインバウンドのACLで廃棄すると効果的です。
 

●デバイスの管理アクセスを制御する

ルータやスイッチにTELNETやSSHでリモートログインできる対象を限定する方法があります。ルータのすべてのインタフェースに拡張ACLを設置して、管理アクセスができる対象を限定することはできますが、スマートな方法とは言えません。
 
仮想回線の設定を利用すれば、ACLを設定することができます。これにより、仮想回線の入り口で管理アクセスの制御が可能になります。
 
設定の例を次に示します。
 
まずは、アクセスを制限するACLを作成します。これを仮想回線の設定の中で、access-classコマンドで設置します。パスワードの設定方法などは特に変わりありません。
 
R1(config)#access-list 2 permit 10.0.1.0 0.0.0.255

R1(config)#line vty 0 4
R1(config-line)#password vty2"paSS
R1(config-line)#login
R1(config-line)#access-class 2 in
 
ここでは、10.0.1.0/24のLANからのアクセスを許可する番号付き標準ACLを作成します。これにより、vtyの仮想回線に入ってくるパケットをACLで制限できます。
 
ACLについては他のタイプのACLも使用可能です。名前付き標準ACLの例を次に示します。
 
R1(config)#ip access-list standard ACL-VTY
R1(config-std-nacl)#permit 10.0.1.0 0.0.0.255

R1(config)#line vty 0 4
R1(config-line)#access-class ACL-VTY in
 
今回は、ACLを設定するときの留意点として、論理的なミスを出しにくくするための構成順番、ネットワークやルータの負荷を軽減するためのACLの配置について、仮想回線へのアクセスを含めて解説しました。
 
この記事で紹介した書籍
シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J

Wendell Odom 著/株式会社クイープ 訳
価格:4,400円+税
発売日:2014年03月05日発売
ISBN:978-4-8443-3553-5
発行:インプレスジャパン

シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J

本書は、シスコ技術者認定のうち、CCENT/CCNAの認定を目指す人のための公式ガイドブックです。2013年に改訂されたICND1の試験内容に対応しています。新ICND1は、旧ICND1からトピックの削除と追加が行われています。ICND1の合格により、CCENT認定を受ければ、CCNA認定への最初のステップをクリアしたことになります。本書を携えつつCiscoプロフェッショナル認定試験突破に向けて大きな一歩を踏み出しましょう。

Amazon詳細ページへImpress詳細ページへ

 
ネットワークやデータベースなどのIT関係科目について、大学と専門学校で講師を務める。情報処理技術者試験やベンダー系の実技を伴うネットワークとセキュリティの受験指導、情報リテラシや情報工学の試験問題の作成など。技術士(情報工学)、情報処理技術者各種スペシャリスト、職業訓練指導員、CCAI Ciscoインストラクタ。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています