これまで、ルータ/スイッチの基本的な初期設定から、VLANやルーティングプロトコルの基本などを解説してきた本連載も、取りあえず今回で最終回となる。今回は、ルータの特定のインターフェイスからパケットの許可・拒否を行うことができるアクセスリストについて解説する。
Q1) アクセスリストに関する次の記述のうち、正しいものはどれですか。
Q2)次のうち、正しい標準アクセスリストはどれですか。
アクセスリストを使用すると、パケットをフィルタリングすることができる。そこでまず、アクセスリストで可能なパケットのフィルタリングについて解説する。
アクセスリストとは、パケットの許可・拒否を決定する条件文である。インターフェイスにアクセスリストを適用すると、許可したパケットのみを転送し、拒否したパケットを破棄する。このため、特定のパケットのみを転送の対象とすることができる。これは、主にセキュリティを確保するために使用する。例えば、インターネット(外部)からきたパケットのうち、Webサーバへのパケットは転送するが、ファイルサーバへのパケットはフィルタリングするといったような構成が可能である。
アクセスリストには、標準アクセスリストと、拡張アクセスリストの2種類がある。違いは次の表1のとおりである。
標準 | 拡張 | |
---|---|---|
判断基準 | 発信元IPアドレス | 発信元・送信先IPアドレス プロトコル番号 発信元・送信先ポート |
アクセスリスト番号 | 1〜99 | 100〜199 |
用途 | 特定のホスト、ネットワークからの アクセスをフィルタリングする |
ホストやネットワークだけでなく、 アプリケーションを特定してフィルタリングする |
表1 標準アクセスリストと拡張アクセスリストの違い |
図1は、標準アクセスリストの例である。標準アクセスリストは、発信元のIPアドレスしかチェックできない。ところが、拡張アクセスリストは、発信元・送信先IPアドレスだけでなく、IPヘッダ内のプロトコル番号や、TCP・UDPヘッダ内の発信元・送信先ポート番号もチェックできる。このため、あるホストからのHTTPアクセスは許可するが、Telnetアクセスは拒否するといった使い方ができる。
さて、アクセスリストを作成する場合、適用するインターフェイスと方向が重要なポイントとなる。
インバウンドアクセスリストは、そのインターフェイスが着信したパケットをフィルタリングする。アウトバウンドアクセスリストは、そのインターフェイスから発信するパケットをフィルタリングする(図2)。
ただし、イvンターフェイスが3つ以上存在する場合は、その動作が変わる。図3は、左側のコンピュータからのパケットを拒否するアクセスリストを作成し、適用するインターフェイスと方向を変えた例である。もし「e0インターフェイス」にインバウンドアクセスリストを適用した場合、残りの2台のコンピュータへの通信は一切できなくなる。しかし、「e2インターフェイス」にアウトバウンドアクセスリストを適用した場合、右側のコンピュータへの通信はできないが、上のコンピュータへの通信はできる。このように、作成したアクセスリストが同じでも、適用するインターフェイスと方向が変われば動作も変わる。
アクセスリストの作成だが、ここでは標準アクセスリストの作成方法についてのみ解説する。アクセスリストを使用したパケットフィルタリングを構成する順番は、次のとおりである。
(1)アクセスリストを作成する
まず、転送するパケットを許可、フィルタするパケットを拒否するアクセスリストを作成する。コマンドは次のとおりである。
Router(config)#access-list アクセスリスト番号 permitまたはdeny 条件
アクセスリスト番号は、この後の手順でアクセスリストを適用するときに指定する番号である。標準アクセスリストの場合、1〜99の番号を使用する。続いて、条件に合致したパケットを許可する場合はpermitを、条件に合致したパケットを拒否する場合はdenyとする。最後に、条件を指定する。条件の指定方法は、大きく3種類ある。
(A)特定のネットワークを指定する
特定のネットワークを指定する場合、ネットワーク番号に続いてワイルドカードマスクを指定する。ワイルドカードマスクは、チェックの対象とするビットを「0」、チェックしないビットを「1」にする。例えば、「10.0.0.0/8」ネットワークからのパケットを許可するアクセスリスト1を作成するコマンドは、次のとおりである。
Router(config)#access-list 1 permit 10.0.0.0 0.255.255.255
(B)特定のホストを指定する
特定のホストを指定する場合、「host」というキーワードを使用することでワイルドカードマスクを省略できる。例えば、「10.0.0.1」からのパケットを許可するアクセスリスト1を作成するコマンドは、次のとおりである。
Router(config)#access-list 1 permit host 10.0.0.1
(C)すべて許可ないし拒否する
すべてのホストを指定する場合、「any」というキーワードを使用することでIPアドレスとワイルドカードマスクを省略できる。例えば、すべてのホストからのパケットを許可するアクセスリスト1を作成するコマンドは、次のとおりである。
Router(config)#access-list 1 permit any
アクセスリストを作成するに当たって、注意する点が3つある。1点目は、アクセスリストは上から順番にチェックし、条件に合致した時点でチェックは終了するという点である。従って、次のようなアクセスリストを作成した場合、すべてのパケットが拒否される。
Router(config)#access-list 1 deny any
Router(config)#access-list 1 permit host 10.2.2.2
2点目は、どの条件にも合致しなかった場合、拒否となる点である。従って、どこかにpermitとなっているアクセスリストを作成しないと、すべてのパケットが拒否されることになる。例えば、次のようなアクセスリストを作成した場合、すべてのパケットが拒否される。
Router(config)#access-list 1 deny host 10.1.1.1
Router(config)#access-list 1 deny host 10.2.2.2
3点目は、アクセスリストは最後に追加することはできるが、途中に挿入したり、1行だけ削除することができない。従って、アクセスリストの作成を誤った場合、「no access-list」コマンドを使用して、すべてのアクセスリストを削除した後、改めてアクセスリストを作成しなければならない。
(2)インターフェイスにアクセスリストを適用する
アクセスリストを作成したら、次にインターフェイスに適用する。コマンドは次のとおりである。
Router(config-if)#ip access-group アクセスリスト番号 in または out
まずは、アクセスリストを適用するインターフェイスを指定して、インターフェイスコンフィグモードに移行する。続いて、アクセスリスト番号と方向を指定して、アクセスリストを適用する。例えば、「ethernet 0」インターフェイスに10番のアウトバウンドアクセスリストを適用するコマンドは、次のとおりである。
Router(config)#interface ethernet 0
Router(config-if)#ip access-group 10 out
Q1: C
Q2: A
Copyright © ITmedia, Inc. All Rights Reserved.