特定のネットワークトラフィックをマッチングする際、より正確にするために拡張アクセスリストが使用されます。 拡張アクセスリストは、標準アクセスリストよりも設定が難しく、より多くのプロセッサ時間を必要としますが、より詳細なレベルの制御を可能にします。
- 送信元および送信先IPアドレス
- TCP/IPプロトコルの種類(TCP、UDP、IP…)
- 送信元および送信先ポート番号
拡張アクセスリストを設定するには、2ステップ必要です:
1.
(config) access list NUMBER permit|deny IP_PROTOCOL SOURCE_ADDRESS WILDCARD_MASK DESTINATION_ADDRESS WILDCARD_MASK PROTOCOL_INFORMATION
2.
(config) ip access-group ACL_NUMBER in | out
拡張アクセスリスト番号は100~199および2000~2699の範囲です。
拡張アクセスリストの概念をよりよく理解するために、次の例を考えてみましょう:
管理者のワークステーション (10.0.0.1/24) から Server (192.168.0.1/24) への無制限のアクセスを可能にしたいと思います。 また、ユーザーのワークステーション (10.0.0.2/24) から Server へのいかなる種類のアクセスも拒否します。
最初に、管理者のワークステーションから Server へのアクセスを許可するステートメントを作成します:
次に、ユーザーのワークステーションから Server へのアクセスを否定するステートメントを作成する必要があります。
最後に、R1 の Fa0/0 インタフェースにアクセスリストを適用する必要があります:
これにより、ルータは Fa0/0 に入るすべてのパケットの評価を強制されることになります。 管理者がServerにアクセスしようとすると、最初のステートメントにより、トラフィックは許可されます。 しかし、UserがServerにアクセスしようとすると、2番目のACLステートメントにより、トラフィックは禁止されます。
各アクセスリストの最後には、明示的にすべての拒否ステートメントがあるので、2番目のACLステートメントは実際には必要ではありませんでした。 アクセス リストの適用後、明示的に許可されていないすべてのトラフィックは拒否されます。
右側には、ポート 80 で待ち受ける、Web サーバーとして機能するサーバーがあります。 S1 (ポート 80) 上の Web サイトへのアクセスをユーザーに許可する必要がありますが、他のタイプのアクセスも拒否する必要があります。
まず、ユーザーからサーバーのポート 80 へのトラフィックを許可する必要があります。
tcp キーワードを使用すると、送信元と送信先のポートでパケットをフィルタリングすることができます。 上記の例では、10.0.0.2 (ユーザーのワークステーション) から 192.168.0.1 (サーバー) へのポート 80 のトラフィックを許可しています。 文の最後の部分、eq 80 は、宛先ポート 80 を指定します。
各アクセスリストの最後には、暗黙の deny all 文があるため、これ以上文を定義する必要はありません。 アクセスリストの適用後、10.0.0.2 から 192.168.0.1, 80 番ポートに向かうトラフィック以外はすべて拒否されます。 たとえば、ping は失敗します。
ポート 21 への Telnet は失敗します。
ただし、ブラウザーを使用してポート 80 のサーバーにアクセスすることはできます。