皆さん、こんにちは。
前回はPacket Tracerを使用してVlanインターフェースの作成と物理ポートのアサイン(作成したVLlanインターフェースにスイッチの物理ポートを割り振ること)を実践してみました。
今回はACLの作成とPortへの適用をPacket Tracerで行っていきたいと思います。
ACLとは?
ACLとは、Access Control Listの略称です。
※サッカーが好きな人だと、アジアチャンピオンズリーグに返還されるかもしれませんが別です。
ACLとは何か?
簡単に言えば、「交通整理のルールブック」です。
自転車、自動車、バイクなどで公道を走る際、ルールが無いと事故が発生したり、目的地にたどり着かないような事態が発生すると思います。
Networkでは、エンドポイントを結ぶ伝送路(道路をイメージ)のため、エンドポイント間でしっかりとデータのやり取りができるようにしなければなりません。
但し、なんでもかんでもデータを通してよい。というわけにはいきません。
(VLANのキホンで説明もしていますが)許可する通信と許可しない通信を明確に記載していきます。
どんなルールが作れるのか?
ACLには以下の内容を記載して通信の許可/拒否を行います。
- 送信元のIPアドレス: どこから来た通信か
- 宛先のIPアドレス: どこへ行きたい通信か
- ポート番号: どのサービス(Webサイト、メール、ファイル共有など)を使おうとしているか
- プロトコル: どんな種類の通信か(Web閲覧のHTTP、メールのSMTPなど)
ACLはなぜ必要なのか?
ACLは主に以下の目的で必要となります。
- セキュリティのため(悪い通信をブロック)
- ネットワークを効率的に使うため(不要な通信を減らす)
※ACLは基本的にルーターのポートやFW(ファイアウォール)等で使用するため、以下の考え方で使用されます。
- 外部ネットワーク(例えば社外からの通信)から社内のネットワークに怪しい通信が来た場合、問答無用でブロックする。
- 社内のとある部署からデータを送る必要のない部署にデータが流れないようにブロックする。
ではACLの作成と適用を実際にやっていきます。
今回の構成(トポロジー)
簡単な構成ですが、PC3台、L3Switch1台、Server1台の構成です。
各設定
以下の通り設定しました。
※今回もIPアドレスなどはAIに考えてもらいました。(ノンフィクション情報です)
既にVLANを4つ作成し、ポートアサイン、アクセスモード設定を行いました。
※上記については前回の記事で実践した内容を記載しているため割愛します。
ACLの作成
ではACLを作成していきます。
各VLANに設定するACLの定義などの情報は以下の通りです。
※以下の内容もノンフィクション情報です。
以下のポリシーに合うACLを作成します。ポリシーが3つあるのでそれぞれ記載します。
①Guest-PC (VLAN 30) からは、Shared Server (VLAN 40) へのアクセスのみ許可し、他のVLAN (Sales, HR) へのアクセスは拒否する。
今回はL3Switchに各ACLを作成し、インターフェースに適用していきます。
※今回の構成では、L3Switch以外に作成と適用できるデバイスはありませんが。
以下コマンド
Switch(config)# ip access-list extended ACL_GUEST_OUT
※まずはACL自体に「ACL_GUEST_OUT」という名前を付けます。
※上から順にルールを書いていく。
Switch(config-ext-nacl)# permit ip 192.168.30.0 0.0.0.255 192.168.99.0 0.0.0.255
→Guest-PCからSharedServerへの通信を許可する。
Switch(config-ext-nacl)# deny ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255
→Guest-PCからSales-PCへの通信を拒否
Switch(config-ext-nacl)# deny ip 192.168.30.0 0.0.0.255 192.168.20.0 0.0.0.255
→Guest-PCからHR-PCへの通信を拒否
Switch(config-ext-nacl)# exit
※ACLを作成したら、作成したACLを適用するインターフェースに入る。
Switch(config)# interface Vlan30
Switch(config-if)# ip access-group ACL_GUEST_OUT in
→作成したACL名と適用方向を指定。
Switch(config-if)# end
続いてHR-PCからの通信に関するACLを作成します。
ポリシー↓
②HR-PC (VLAN 20) からは、Sales-PC (VLAN 10) へのPingを拒否するが、Sales-PCへの他のトラフィックは許可する。
Switch(config)# ip access-list extended ACL_HR_OUT
Switch(config-ext-nacl)# deny icmp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
→HR-PCからSales-PCからのpingを拒否
Switch(config-ext-nacl)# permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
→HR-PCからSales-PCへのその他のIPトラフィックを許可
Switch(config-ext-nacl)# exit
Switch(config)# interface Vlan20
Switch(config-if)# ip access-group ACL_HR_OUT in
Switch(config-if)# end
③Sales-PC (VLAN 10) からは、HR-PC (VLAN 20) へのHTTPS (ポート443) のアクセスのみ許可する。
Switch(config)# ip access-list extended ACL_SALES_OUT
Switch(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255 eq 443
→Sales-PCからHR-PCへのHTTPS許可(といっても何も表示されないけど)
Switch(config-ext-nacl)# exit
Switch(config)# interface Vlan10
Switch(config-if)# ip access-group ACL_SALES_OUT in
Switch(config-if)# end
上記の通り3つのACLを作成し各VLAN(10,20,30)にin方向(トラフィックが入ってくる方向)に適用しました。
※out(インターフェースから送出される方向)に適用することもできますが、基本的にデータを送った場合、何かしらの形でデータが戻ってくるのでin方向に適用しています。
(in方向に適用するのが基本でもある)
疎通確認とACL動作テスト
最後に疎通確認とACL動作テストを実施しました。
以下の結果となりました。
-
Sales-PCからShared ServerへPingが通ることを確認
※他2台のPCからShared-Serverのpingが成功したことも確認済み。 -
HR-PCからSales-PCへPingが通らないことを確認
※通ったらACLの内容が間違っていることになります。
「unreachble=未到達」なので通らないことを確認。 -
HR-PCからSales-PCへ他のトラフィック(例: HTTPなど、存在しないサービスでも良いのでアクセスを試みる)が通ることを確認
HTTPで確認しましょう。
Sales-PCがサーバーモードではないのでこのように表示されますが通信はできています。(普通このような確認はしませんが)
作成したACLの内容やヒット数を確認するコマンド
ACLの内容を確認する際のコマンドは主に以下の2つあります。
デバイス#show access-lists
デバイス#show ip interface [interface_name]
※インターフェースを指定したい場合のみ
長くなりましたが、ACLの作成と適用を実践してみました。
次回もネットワークに関する内容を投稿する予定です。