ポートセキュリティで「決まった機器しかつなげない」ようにし、ACLで「決まった相手としか通信できない」ようにできたら、ネットワークの安全性はどう変わるでしょうか?
ポートセキュリティは「物理ポートの入口」を、ACLは「通信そのものの許可・拒否」を制御します。守っている対象のレイヤーが違う、という点を意識しながら読み進めてください。
この演習でできるようになること
- アクセスポートに
switchport port-securityを設定し、sticky学習と violation モードを使い分けられる - わざと違反を起こして err-disabled 状態を再現し、復旧手順を実行できる
- 標準ACLで特定ネットワークからの通信のみを許可・拒否できる
使用トポロジ
スイッチ1台に、PCを2台(PC0・PC1)とルーター1台を接続した構成です。PC0はスイッチのFastEthernet0/1に、PC1はFastEthernet0/2に接続し、ルーターはFastEthernet0/3経由で別ネットワーク(サーバーPC2を想定)に接続します。
準備
- Switch 2960 を1台、PC-PT を3台(PC0、PC1、PC2)、Router 2911 を1台配置します。
- PC0とスイッチ、PC1とスイッチはそれぞれストレートケーブルで接続します。
- スイッチとルーターもストレートケーブル(スイッチ⇔ルーターは異なる機器種別のため)で接続します。
- ルーターの先にPC2を接続し、別ネットワーク(例:192.168.2.0/24)のセグメントを用意します。
手順
まずPC0が接続されているポートにポートセキュリティを設定します。
Switch> enable
Switch# configure terminal
Switch(config)# interface FastEthernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 1
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)# switchport port-security violation shutdown
Switch(config-if)# exit
maximum 1 でこのポートに許可するMACアドレスを1台に限定し、mac-address sticky でPC0のMACアドレスを自動的に学習・固定します。violation shutdown はデフォルトのモードで、違反時にポートをerr-disabledにします。
次に、PC0をいったん外して別のPC(例えばPC1を一時的に差し替える想定、あるいはPacket Tracerの「デスクトップ > MACアドレス変更」で疑似的に別端末を再現)をFastEthernet0/1に接続し、違反を発生させます。ポートの状態を確認しましょう。
Switch# show port-security interface FastEthernet0/1
Port Security : Enabled
Port Status : Secure-shutdown
Violation Count : 1
Secure-shutdown と表示されていれば、意図どおり違反が検知されてポートが無効化されています。復旧させるには次のコマンドを実行します。
Switch(config)# interface FastEthernet0/1
Switch(config-if)# shutdown
Switch(config-if)# no shutdown
続いて、ルーターに標準ACLを設定し、PC1が所属するネットワーク(例:192.168.1.0/24のうちPC1側)からサーバー方向(PC2)への通信だけを拒否してみます。
Router> enable
Router# configure terminal
Router(config)# access-list 10 deny 192.168.1.0 0.0.0.255
Router(config)# access-list 10 permit any
Router(config)# interface FastEthernet0/1
Router(config-if)# ip access-group 10 out
標準ACLは送信元アドレスしか判断できないため、宛先に近いインターフェースのout方向に適用するのが原則です。ここではPC2側のインターフェースのoutに適用しています。
確認
ポートセキュリティの学習結果は次のコマンドで確認します。
Switch# show port-security address
Vlan Mac Address Type Ports
---- ----------- ---- -----
1 0050.0001.0001 SecureSticky Fa0/1
ACLの動作は、PC0(正規のPC0であれば192.168.1.0/24に所属していないシナリオ、または別ネットワークのPCから)からPC2へのpingで確認します。
C:\> ping 192.168.2.10
Request timed out.
Request timed out.
192.168.1.0/24からのpingが拒否されていれば成功です。逆に、ACLの対象外のネットワークからのpingは正常に通ることも確認しておきましょう。
合格チェックリスト
- Fa0/1にポートセキュリティが設定され、
show port-security interfaceでEnabledと表示される - 未許可のMACアドレスを接続すると、ポートがSecure-shutdown(err-disabled)になる
shutdown→no shutdownでポートが復旧する- 標準ACL(10)が正しい方向・インターフェースに適用されている
- 192.168.1.0/24からPC2へのpingが拒否される
- ACL対象外のネットワークからの通信は正常に許可される
つまずきポイント
switchport mode accessの設定忘れ:デフォルトのダイナミックモードのままだとポートセキュリティ自体が設定できないことがあります。先にアクセスモードへ固定しておきましょう。- 標準ACLの設置場所ミス:送信元に近い側に置いてしまうと、本来通したい他の通信まで巻き添えで止めてしまうことがあります。標準ACLは宛先に近い場所が原則です。
ip access-groupの方向指定ミス:inとoutを逆にすると、意図した通信を止められません。どちら向きのトラフィックを制御したいのか、矢印を紙に書いて確認する癖をつけましょう。
FastEthernet0/1に switchport port-security violation shutdown を設定した状態で、maximum台数を超えるMACアドレスからのフレームを受信しました。ポートはどうなり、復旧にはどんな操作が必要でしょうか?
答えを見る
ポートはerr-disabled(Secure-shutdown)状態になり、通信が完全に停止します。復旧するには該当インターフェースで shutdown を実行した後に no shutdown を実行する必要があります。
ポートセキュリティで「誰をつなげるか」、ACLで「誰と通信させるか」を制御する、レイヤーの違う2つの防御を実機で体験できたね。err-disabledになったときに慌てずshutdown→no shutdownで直せるようになれば安心だよ。次はワイヤレス、無線LANの世界に入っていくよ。