ACLの条件文の書き出しとなる語句です。番号付きACLの場合には必ず「access-list」から条件文が始まりますが、名前付きACLの場合には、「access-list」とその次のACL番号は省略され、パケットに対する処置(permitまたはdeny、remark)の語句から始まります。
ACLの条件文そのものを区別する為の番号です。1〜99、100〜199とACLの種類により使用できる値は異なります。詳細は連載第25回をご覧ください。
条件に合致したパケットに対する処置を決定します。パケットを通過させるときには「permit」、パケットを破棄させたいときには「deny」と記述します。ACLに対する説明文、コメント文を明記するときには「remark」と記述します。
パケットの種類を限定します。TCPやUDP、IP、ICMPなどが代表的です。これ以外にも、暗号化されたパケットであるESP、ルーティングプロトコルのOSPFやEIGRPも指定できます。
特定の送信元アドレスからのSSHだけを許可したい場合に指定すべきプロトコルは、TCPとなります。より多くの種類のパケットを包含するIPを指定することも可能ですが、選別するパケットの種類を限定するために、できるだけ「OSI参照モデル」の上位レイヤのプロトコルを指定します。100種類あるパケットからSSHパケットを選別するのと、10種類から選別するのとでは、後者の方が選別にかかる処理時間が短くて済むためです。
送信元アドレス、宛先アドレスの順に記述します。一般的には、アドレスとワイルドカードマスクをセットで使用することで、アドレスの「範囲」を指定します。ワイルドカードマスクでアドレスのホスト部を「チェックしない(マスクのビットを1とする)」ことで、ネットワークのホストアドレス全てをACLの条件に合致させることができます。
ワイルドカードマスクを省略することも可能ですが、その場合は「0.0.0.0」という値のワイルドカードマスクを記述したと解釈されます。特定のホストアドレスを条件にしたことになりますが、単にホストアドレスだけを記述するよりは、明示的に「host 12.34.56.78」と、hostオプションを記述した方が、誰にでも分かりやすい記述となります。
また、特定のホストアドレスを指定する「host」オプションの他に、「全てのアドレス」を意味する「any」オプションがあることも一緒に覚えておきましょう。
一般的に送信元ポート番号は自動的に設定されますが、「どのサービスを使用するのか」を区別するため、「宛先ポート番号」については特定の値を設定してパケットを送信します。
ACLではSSHやFTPなどのサービスに対するパケットを制御することができますが、これはポート番号を条件とすることで実現しています。特定のサービスであれば、イコールの「eq」、特定サービス“以外”という指定ならば、ノットイコールの「ne」というキーワードをポート番号とセットで使用します。このとき、よく知られているサービス(wwwの80番ポート)のように、ポート番号ではなく「www」というキーワードでポート番号(サービス名)を記述することもできます。
ちなみに、LinuxベースのOSでは「/etc/services」というファイルにポート番号の一覧が記載されています。Windowsでは、「WINDOWS」フォルダー配下の下記の場所に同様のファイルが存在します。
C:\WINDOWS\System32\drivers\etc\services
※隠しフォルダーなので直接指定できない場合があります
ACLの条件文を宣言するときには、access-listというキーワードを使用しました。宣言したACL文をインターフェースに適用することで、パケットフィルタリングの機能を動作させることができます。このインターフェースに適用するときに使用するキーワードが「access-group」となります。
「access-class」というキーワードも、ACL文を適用するときに使用します。こちらは、ACL文を適用する対象が仮想回線(CONSOLE回線、VTY回線)のときに使用するキーワードです。
Copyright © ITmedia, Inc. All Rights Reserved.