ポートセキュリティとは
ポートセキュリティとは、インターフェース(ポート)に対してMACアドレスを基にしたセキュリティ機能を提供する機能です。ポートセキュリティを使用すると、特定のポートに接続できるデバイス(MACアドレス)を制限し、許可されたMACアドレス以外からの通信をブロックしたり、セキュリティ違反として対応することが可能です。この機能は、ネットワークへの不正なアクセスを防ぎ、セキュリティを強化するために使用されます。
ポートセキュリティの主な機能
- 特定のMACアドレスを許可:
- 特定のポートに接続できるMACアドレスの数を制限し、許可されたデバイスのみが通信できるようにします。これにより、不正なデバイスがネットワークに接続しようとした場合に、即座に検出して対応することができます。
- 動的/静的MACアドレスの学習:
- 動的にMACアドレスを学習させることができ、接続された最初のデバイスのMACアドレスを記憶します。また、特定のデバイスを静的に登録することも可能です。静的な登録では、管理者が手動でMACアドレスを設定します。
- セキュリティ違反の対応:
- 許可されていないMACアドレスが検出された場合、以下のような対応を設定できます。
- Protect(プロテクト): 不正なデバイスの通信をブロックするが、違反のログやアラートは出力しない。
- Restrict(リストリクト): 不正なデバイスの通信をブロックし、違反をログに記録し、アラートを生成する。
- Shutdown(シャットダウン): 該当するポートをErrdisable状態にして無効化する。違反のログが記録され、インターフェースが自動的にシャットダウンされます(デフォルト動作)。
- 許可されていないMACアドレスが検出された場合、以下のような対応を設定できます。
- MACアドレスの「スティッキー」機能:
- ポートに接続されたMACアドレスを自動的に学習し、それを保存する機能です。学習したMACアドレスはスイッチの設定に書き込まれるため、再起動後も学習したデバイスを保持できます。
ポートセキュリティの設定
基本構文
インターフェイスでポートセキュリティを有効にします。
Switch(config)#interface interface-id
Switch(config-if)#switchport port-security
セキュアMACアドレスの最大数を設定します。
Switch(config-if)#switchport port-security [maximum value [vlan {vlan-list | {access | voice}}]]
セキュリティ違反が検出されたときに実行されるアクションを設定します。
Switch(config-if)#switchport port-security violation { protect | restrict | shutdown | shutdown vlan}
| コマンド | 内容 |
|---|---|
| protect | 不正なデバイスの通信をブロックするが、ログに記録したり通知を行わない。 |
| restrict | 不正なデバイスの通信をブロックし、違反をログに記録し、アラートを生成する。 |
| shutdown | 該当するポートをErrdisable状態にし、ポートを無効化する。 VLANを指定することでVLANごとにシャットダウンを行う。 |
セキュアMACアドレスを設定します。stickyは動的にMACアドレスを学習してMACアドレステーブルとrunning-configに追加されます。
Switch(config-if)#switchport port-security [mac-address mac-address [vlan { vlan-id | {access | voice}}]
Switch(config-if)#switchport port-security mac-address sticky
設定例

最大接続数を3に設定して、違反したらポートをシャットダウンさせる設定です。
L2SW(config)#interface Gi0/0
L2SW(config-if)#switchport port-security
L2SW(config-if)#switchport port-security maximum 2
L2SW(config-if)#switchport port-security violation shutdown
設定完了後、クライアント3を接続させます。
接続後、ポートセキュリティが発動してGi0/0がshutdownされたことを示すログが出力されました。
L2SW(config-if)#
*Sep 23 00:22:34.526: %PM-4-ERR_DISABLE: psecure-violation error detected on Gi0/0, putting Gi0/0 in err-disable state
*Sep 23 00:22:34.526: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 5254.0011.6565 on port GigabitEthernet0/0.
*Sep 23 00:22:35.526: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down
*Sep 23 00:22:36.527: %LINK-3-UPDOWN: Interface GigabitEthernet0/0, changed state to down
オプション設定
ポートエージングを使用してセキュアMACアドレスのエージングタイムを設定できます。
Switch(config)#interface interface-id
Switch(config-if)#switchport port-security aging { static | time time | type { absolute | inactivity} }
| コマンド | 内容 |
|---|---|
| static | 静的に設定されたセキュア アドレスのエージングを有効にします。 |
| time time | ージング時間を指定します。有効な範囲は 0 ~ 1440 分です。 |
| absolute | エージング タイプを絶対エージングとして設定します。 |
| inactivity | エージング タイプを非アクティビティ エージングに設定します。 |