前回は、「LANとインターネットの境界」ではなく「LAN内部」においてアクセス制御を行う必要性と、そのための手段について考察した。そして、MACアドレスやIPアドレスを利用する方法が使いやすく、管理面の負担が少ないという結論を導き出した。
そこで今回はそれを具現化する手段として、ネットギア製のスイッチ製品を使用する設定の具体例について取り上げよう。これはACL(Access Control List)の設定作業ということになるのだが、MACアドレスを使用するMAC ACLと、IPアドレスを使用するIP ACLについて、概要を紹介する。
今回使用した製品と、ACLによって実現できること
今回、ACL設定について紹介するために使用したのが、「スタティックルーティング機能搭載48ポートL2ギガビットフルマネージスイッチ」と呼ばれる製品の「GSM7248v2」。
実はこの製品、単なるレイヤー2スイッチではなく、VLAN(Vitrual LAN)ごとに異なるネットワークアドレスを割り当ててVLAN間でルーティングを行う、レイヤー3スイッチと同様の機能を備えている。ただし、今回はACLがテーマなので、VLANやVLAN間ルーティングの機能は使用していない。
では、MAC ACLやIP ACLでは、どういう設定を行い、どういうことができるのだろうか。
MAC ACLはMACアドレス、IP ACLはIPアドレス(IPv4とIPv6のいずれにも対応)を条件に使用するのだが、いずれも、設定できる動作は「許可(permit)」と「拒否(deny)」の両方がある。つまり「通過の許可」も「通過の拒否」も設定可能である。この辺は、ルータのパケットフィルタ機能と同じである。
MAC ACLについては、常に送信元だけでなく宛先アドレスを条件に指定できる。だから、「特定のPCが送出するトラフィック」だけでなく「特定のPCに宛てたトラフィック」を許可、あるいは遮断できる。特定の社員にしかアクセスさせたくない機微情報を扱っているサーバに対して、物理的にアクセス制限をかけるような場面で使えそうだ。
一方、IP ACLは事情が異なり、基本のIP Basic ACLでは送信元アドレスの指定のみである。拡張版のIP Extended ACLでは宛先の指定も可能だ。どちらを使用するかは、ACL作成の際に指定する。
IP ACLはIPトラフィックが対象だから、IPアドレスだけでなくポート番号の情報を併用して、特定のIPアプリケーションだけをアクセス制御の対象にすることもできる。もちろん、IPアドレス指定の際には特定の単一IPアドレスだけでなく、ネットマスクの情報を併用してネットワークアドレス単位で指定することもできる。
実は、これはMAC ACLも同じで、マスク指定によるMACアドレスのグループ化が可能である。48ビットの長さを持つMACアドレスのうち、上位24ビットのOUI(Organizationally Unique Identifier)はネットワーク機器のベンダごとに固有の値を割り当てるので、同一ベンダのLANアダプタであれば、マスク設定によって一括指定できる理屈である。
MAC ACLもIP ACLも、複数のルールを登録することができる。その場合、複数のルールを順番に適用して、上位ルールの対象から外れたものについて別ルールを適用していく形になるので、ルールの設定と並び順には注意が必要だ。もっとも、考え方はルータのパケットフィルタで複数のルールを登録するときと似ているから、そちらの経験があれば、さほど違和感はないかもしれない。
本題に入る前に、これから取り上げる各項目に共通する、追加・削除・変更の操作について先に述べておこう。
設定画面で文字列や値の入力、あるいは選択を行った後に[ADD]をクリックすると「登録」、一覧で対象項目のチェックボックスをオンにしてから[DELETE]をクリックすると「削除」、一覧でチェックボックスをオンにして内容を修正してから[APPLY]をクリックすると「変更」である。
MAC ACLの設定例
まず、MAC ACLの設定から取り上げよう。作業手順の概略は以下のようになる。
- [MAC ACL]画面で、ACL IDを設定する
- [MAC Rules]画面で、ACL作成のためのルールを設定する
- [MAC Binding Configuration]画面で、ACL IDを割り当てるポートを指定する
- こうして設定した内容は、[MAC Binding Table]画面で確認できる
まず[MAC ACL]画面は、Webブラウザでスイッチの設定画面にアクセスして、[Security]タブ以下の[ACL]→[Basic]→[MAC ACL]とたどることで表示する。ここで[Name]にMAC ACLの名前を入力する。名前に使用できる文字は、英数字・ハイフン・スペース・アンダースコアで、アルファベットで始まる名前にする必要がある。
MAC ACLを必要な数だけ登録したら、MAC Rulesの設定に移る。[MAC ACL]画面では、登録したACLの名前がハイパーリンクになっているので、それをクリックするとMAC Rulesの設定が可能になる。また、[Security]タブ以下の[ACL]→[Basic]→[MAC Rules]とたどる方法でも表示できる。
MAC Rulesの主な設定項目は以下の通りである。ひとつのACLに複数のルールを登録することができ、それらはID番号で識別する。
・ID : ルールごとの識別番号(1~12)
・Action : 通過(permit)または拒否(deny)
・Match Every : すべてのフレームに適用するかどうかを決める。Falseを選択すると、以下のMACアドレス指定が可能になる
・Source MAC : 送信元MACアドレス
・Source MAC Mask : 送信元MACアドレスに対するマスク指定。「xx:xx:xx:xx:xx:xx」形式で記述する。たとえば、単一のMACアドレスなら「00:00:00:00:00:00」、上位24ビットで括るのであれば「00:00:00:ff:ff:ff」となる
・Destination MAC : 宛先MACアドレス
・Destination MAC Mask : 宛先MACアドレスに対するマスク指定
・Logging : ログ記録の有無
MAC Ruleを必要な数だけ登録したら、Binding Configurationの設定に移る。[MAC Binding Configuration]画面は、[Security]タブ以下の[ACL]→[Basic]→[MAC Binding Configuration]とたどることで表示する。
ここでは、[ACL ID]メニューで登録済みのMAC ACLをリストボックスから選択して、優先順位付けを意味するシーケンス番号と、割り当て対象になるポートを指定する。
このうちポートの指定は、[Port Selection Table]以下の[Unit 1]左側にあるチェックをオンにして、さらにその左側にある三角形をクリックすると展開するポート一覧で指定する。その状態ではすべてのポートにチェックが入っているので、対象外にしたいポートのチェックをオフにすればよい。([Unit 1]左側のチェックをオフにしたままポート一覧を展開してもよいが、そうするといちいちオンにする必要がある。適用対象となるポートの多寡に応じて使い分けると良いだろう)
最後に[APPLY]をクリックすると、設定を反映する。その結果は、画面下部の[Interface Binding Status]以下に現れる。
こうして登録した情報を確認するための[Binding Table]画面は、[Security]タブ以下の[ACL]→[Basic]→[Binding Table]とたどることで表示する。ここでは、登録したMAC ACLについて、割り当て対象のインタフェース、アクセス制御対象になるトラフィックの向き、ACL IDなどの情報を確認できる。
IP ACLの設定例
IP ACLの設定も、操作手順はIP ACLと似ている。しかし、設定する項目や、その際の制約事項には違いがある。作業手順の概略は以下のようになる。
- [IP ACL]画面で、ACL IDを設定する
- [IP Rules]画面で、ACL作成のためのルールを設定する
- [IP Binding Configuration]画面で、ACLのIDを目的のポートに割り当てる
- こうして設定した内容は、[IP Binding Table]画面で確認できる
[IP ACL]画面は、Webブラウザでスイッチの設定画面にアクセスして、[Security]タブ以下の[ACL]→[Advanced]→[IP ACL]とたどることで表示する。
ここで[Name]にIP ACLの名前を入力する。1~99の範囲の数字を入力するとIP Basic ACL、100~199の範囲の数字はIP Extended ACL、英数文字列はNamed IP ACL、と自動的に識別してタイプを決定する。Named IP ACLの名前に使用できる文字は英数字だけで、アルファベットで始める必要がある。
つまり、宛先IPアドレスやポート番号の指定を行うには、100~199の範囲の数値、あるいは文字列の名前を指定する必要があることになる。送信元IPアドレスの指定だけでよければ、1~99の範囲の数値を指定する方が簡便だ。
IP ACLを必要な数だけ登録したら、IP Ruleの設定に移る。IP ACL画面から移動する場合、それぞれのACLの名前がハイパーリンクになっているので、それをクリックすればよい。
また、[Security]タブ以下の[ACL]→[Advanced]→[IP Rules]あるいは[IP Extended Rules]とたどることで、[IP Rules]あるいは[IP Extended Rules]画面を表示する方法もある。この場合、[IP Rules]以下の[ACL ID/NAME]で、まず設定変更の対象となるACLを選択する必要がある。
これらの操作に続いて画面右下の[ADD]をクリックすると、設定画面を表示する仕組みだ。MAC ACLとは操作手順が異なるので注意したい。
IP ACL用のルール(IP Rule)における、主な設定項目は以下の通りである。
・Action : 転送(permit)または拒否(deny)
・Logging : ログ記録の有無
・Source IP Address : 送信元IPv4アドレス (IP Basic ACLのみ)
・Source IP Mask : 送信元IPv4アドレスに対するマスク指定。一般的なサブネットマスクの記述方法とは逆である(IP Basic ACLのみ)
・Src IP Address : 送信元IPv4アドレス (IP Extended ACLのみ)
・Src IP Mask : 送信元IPv4アドレスに対するマスク指定。一般的なサブネットマスクの記述方法とは逆である(IP Extended ACLのみ)
・Dst IP Address : 宛先IPv4アドレス (IP Extended ACLのみ)
・Dst IP Mask : 宛先IPv4アドレスに対するマスク指定。一般的なサブネットマスクの記述方法と同じである(IP Extended ACLのみ)
・Dst L4 Port : 宛先ポート。DOMAIN、ECHO、FTP、FTPDATA、HTTP、SMTP、SNMP、TELNET、TFTP、WWWのいずれか (IP Extended ACLのみ)
・Mirror Interface : 別のインタフェースにパケットを複製する
・Redirect Interface : 別のインタフェースにパケットをリダイレクトする
登録が終わると[IP Rules]あるいは[IP Extended Rules]画面に戻る。この状態では、[Rule ID]がハイパーリンクになっているので、それをクリックすることで設定変更が可能である。
IP Ruleを必要な数だけ登録したら、Binding Configurationの設定に移る。[IP Binding Configuration]画面は、[Security]タブ以下の[ACL]→[Advanced]→[IP Binding Configuration]とたどることで表示する。ここでは、[ACL ID]メニューで登録済みのIP ACLを選択して、優先順位付けを意味するシーケンス番号と、割り当て対象になるポートを指定する。設定の容量は、MAC ACLのときと同じだ。
こうして登録した情報を確認するための[IP Binding Table]画面は、[Security]タブ以下の[ACL]→[Advanced]→[IP Binding Table]とたどることで表示する。ここでは、登録したIP ACLについて、割り当て対象のインタフェース、アクセス制御対象になるトラフィックの向き、ACL IDなどの情報を確認できる。こちらも、操作手順はMAC ACLと同じ要領である。
プロテクトポートにも注目
ACLの話からは外れるので最後に言及することにしたが、「GSM7248v2」は特定のポート同士のトラフィックを遮断する機能もある。たとえば、マンションやホテルの客室でインターネット接続サービスを提供する場合、個々の部屋とインターネットの間のトラフィックは通す一方で、部屋同士のトラフィックは遮断する必要がある。そういった場面で役に立つ機能だ。
この機能には、隣接するポート同士の通信遮断だけでなく、ブロードキャストドメインを分割する使い方も考えられる。最大で3つのグループを定義できるようになっている。
そこで注意しないといけないのは、「同一グループに分類したポート同士では通信できなくなる」「異なるグループに分類したポート同士では通信できる」という点である。うっかり逆の解釈をして、設定ミスにつながらないように用心しなければならない。
この機能は、[Security]タブ以下の[Traffic Control]→[Protected Port]で設定する。[Group ID]は0~2の3種類を選択できる。その状態で[APPLY]をクリックすると、グループの登録ができる。
続いて、その下の[Unit 1]をクリックすると、ポート一覧画面が現れるので、そこで設定中のグループに所属させたいポートをクリックして、チェックをオンにする。最後に[APPLY]をクリックすれば設定完了だ。
なお、[Group Name]で任意の名前を定義しておくと、ポートを割り当てるグループの対象が分かりやすくなるので便利だろう。部署名や場所、フロアなどを利用する形が考えられる。