Cisco IOS Layer2 – Port Securityの設定

スポンサーリンク

Port Securityは各ポートが受信可能なMACアドレスを管理し、管理外の端末がスイッチに接続される事を防ぐ機能です。

コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Switch(config)# interface <interface>
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum <num>
Switch(config-if)# switchport port-security mac-address [{ <mac_address> | sticky }]
Switch(config-if)# switchport port-security aging time <min>
Switch(config-if)# switchport port-security aging type [{ absolute | inactivity }]
Switch(config-if)# switchport port-security violation [{ protect | restrict | shutdown }]

Switch(config)# errdisable recovery cause psecure-violation
Switch(config)# errdisable recovery interval <sec>

Router(config)# interface <interface>
Router(config-if)# standby ip <addr>
Router(config-if)# standby use-bia

構成図

以下の環境で動作確認を行います。

         f0/0    f0/1
 +--------+.1      +--------+
 |   R1   +--------+   SW1  |
 +--------+        +--------+
        155.10.146.0/24
 [R1]
interface FastEthernet0/0
 ip address 155.10.146.1

 [SW1]
interface FastEthernet0/1
 switchport access vlan 146
!
vlan 146

設定全文は下記ファイルです。詳細設定は下記を参照ください。

R1
hostname Rack10R1
!
enable password cisco
!
ip subnet-zero
no ip domain-lookup
!
interface Loopback0
 ip address 150.10.1.1 255.255.255.0
!
interface FastEthernet0/0
 no shutdown
 ip address 155.10.146.1 255.255.255.0
 no shutdown
!
interface Serial0/0
 no shutdown
 encapsulation frame-relay
 ip address 155.10.0.1 255.255.255.0
 no frame-relay inverse-arp
 frame-relay map ip 155.10.0.5 105 broadcast
 frame-relay map ip 155.10.0.4 105
 frame-relay map ip 155.10.0.3 105
 frame-relay map ip 155.10.0.2 105
 ip split-horizon
 no shutdown
!
interface Serial0/1
 no shutdown
 ip address 155.10.13.1 255.255.255.0
 no shutdown
 clock rate 64000
!
ip classless
!
router rip
 version 2
 no auto-summary
 timers basic 10 40 30 60
 network 150.10.0.0
 network 155.10.0.0
 exit
!
line con 0
 exec-timeout 0 0
 logging synchronous
 privilege level 15
line aux 0
 exec-timeout 0 0
 privilege level 15
line vty 0 4
 password cisco
 login
!
end
SW1
hostname Rack10SW1
!
vtp mode transparent
vlan 7,67,146,79,9,22,10,43,5,58,8
!
enable password cisco
!
ip subnet-zero
no ip domain-lookup
!
interface FastEthernet0/3
 no shutdown
 no switchport
 ip address 155.10.37.7 255.255.255.0
!
!   (((range FastEthernet0/ 13 - 21)))
!   ((( switchport mode dynamic desirable)))
interface FastEthernet0/13
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/14
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/15
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/16
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/17
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/18
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/19
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/20
 no shutdown
 switchport mode dynamic desirable
!
interface FastEthernet0/21
 no shutdown
 switchport mode dynamic desirable
!
interface Vlan7
 ip address 155.10.7.7 255.255.255.0
!
interface Vlan67
 ip address 155.10.67.7 255.255.255.0
!
interface Vlan79
 ip address 155.10.79.7 255.255.255.0
!
interface Loopback0
 ip address 150.10.7.7 255.255.255.0
!
interface FastEthernet0/1
 no shutdown
 switchport access vlan 146
!
interface FastEthernet0/5
 no shutdown
 switchport access vlan 58
 switchport mode access
!
ip classless
!
ip routing
!
router rip
 version 2
 no auto-summary
 timers basic 10 40 30 60
 network 150.10.0.0
 network 155.10.0.0
 exit
!
line con 0
 exec-timeout 0 0
 logging synchronous
 privilege level 15
line vty 0 15
 password cisco
 login
!
end

仕様説明

基本設定

最低限の設定は以下の通りです。”switchport port-security”コマンドでport-securityを有効にする事ができます。
また、port-securityは”access port”のみ有効にする事ができます。

Switch(config)# interface <interface>
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security

MACアドレス管理

以下のコマンドで接続可能な送信元MACアドレス数を定義する事ができます。

Switch(config-if)# switchport port-security maximum <num>

以下のコマンドで接続可能なMACアドレスを静的に設定する事ができます。また、stickyキーワードを使用すると、現在接続されているMACアドレスが自動的に静的に登録されます。

Switch(config-if)# switchport port-security mac-address [{ <mac_address> | sticky }]

port-securityは各ポート毎に接続可能なMACアドレスを管理します。管理されたMACアドレスは一定時間で削除されますが、そのtimeout時間を決めるのが以下のコマンドです。

aging type 挙動
absolute(default) ホストが接続された時点からの時間を計測する
inactivity ホストが切断された時点からの時間を計測する
Switch(config-if)# switchport port-security aging time <min>
Switch(config-if)# switchport port-security aging type [{ absolute | inactivity }]

violation

MACアドレス上限に達した時の挙動を以下のコマンドで定義する事ができます。

violation action パケット遮断 メッセージ出力 error disable
protect × ×
restrict ×
shutdown
Switch(config-if)# switchport port-security violation [{ protect | restrict | shutdown }]

error disableからの自動復旧

port-securityも含め、error disableになってしまったポートはshut/no shutコマンドを投入する事によって復旧します。もし、shut/no shutの手作業を省略したい場合は、以下のようなコマンドでerror disableからの自動復旧を実装する事ができます。

Switch(config)# errdisable recovery cause psecure-violation
Switch(config)# errdisable recovery interval <sec>

HSRPとの併用

HSRP, VRRPなどのゲートウェイ冗長化プロトコルと併用する場合は注意が必要です。これらのプロトコルは、グループ番号に基づく仮想MACアドレスを使用します。使用するMACアドレス数が増える事によって、port-security違反が発生する可能性があります。

このport-security違反を解消するひとつの方法が、MACアドレス数の上限を増やす方法です。

Switch(config-if)# switchport port-security maximum 2

また、以下のように”use-bia”コマンドを使用する事でも回避可能です。このコマンドを使用する事により、HSRPが物理MACアドレスによるhelloを送るようになります。

Router(config)# interface <interface>
Router(config-if)# standby ip <addr>
Router(config-if)# standby use-bia

基本設定

設定投入

以下のコマンドをSW1に投入し、port-securityを実装します。

 [SW1]
interface FastEthernet0/1
 switchport access vlan 146
 switchport mode access
 switchport port-security
 switchport port-security violation restrict

動作確認

以下HSRP設定をR1に投入し、port-security違反を再現します。

 [R1]
interface FastEthernet0/0
 standby ip 155.10.146.254

SW1のログよりport-security違反を検知している事が確認できます。

 [SW1]
Rack10SW1#
*Mar  1 00:22:50.815: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1.
Rack10SW1#
*Mar  1 00:22:56.788: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1.
Rack10SW1#
Rack10SW1#
Rack10SW1#show port-security interface FastEthernet 0/1
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 000d.6584.6be0:146
Security Violation Count   : 12

Rack10SW1#

error disableからの自動復旧

設定投入

以下のコマンドをSW1に投入し、error disableから自動復旧する様子を観察します。

 [SW1]
interface FastEthernet0/1
 switchport port-security vi shutdown
!
errdisable recovery cause psecure-violation
errdisable recovery interval 30

動作確認

しばらく待つと、error disableに遷移した旨と、error disableから自動復旧した旨のログを確認する事ができます。

 [SW1]
Rack10SW1#
*Mar  1 00:28:01.706: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/1, putting Fa0/1 in err-disable state
Rack10SW1#
*Mar  1 00:28:01.722: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1.
Rack10SW1#
*Mar  1 00:28:02.721: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
Rack10SW1#
*Mar  1 00:28:03.719: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to down
Rack10SW1#
*Mar  1 00:28:31.720: %PM-4-ERR_RECOVER: Attempting to recover from psecure-violation err-disable state on Fa0/1
Rack10SW1#
*Mar  1 00:28:35.386: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up
*Mar  1 00:28:36.393: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Rack10SW1#
*Mar  1 00:28:57.893: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/1, putting Fa0/1 in err-disable state
Rack10SW1#
*Mar  1 00:28:57.901: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1.
Rack10SW1#
*Mar  1 00:28:58.908: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
Rack10SW1#
*Mar  1 00:28:59.906: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to down
Rack10SW1#

HSRPとの併用

設定投入

R1に以下のコマンドを投入し、HSRPとport securityを併用する環境を構築します。

 [R1]
interface FastEthernet0/0
 standby ip 155.10.146.254
 standby use-bia

動作確認

SW1がerror disableになった旨のログが出力されない事から、HSRPとport securityが併用できている事を確認します。

MACアドレス管理

設定投入

以下のコマンドをSW1に投入し、許容するMACアドレスを静的に定義します。また、MACアドレスはホストが切断されてから5分間管理するようにします。

 [SW1]
interface FastEthernet0/1
 switchport port-security mac-address sticky
 switchport port-security aging time 5
 switchport port-security aging type inactivity

動作確認

showコマンドにより設定を確認します。

 [SW1]
Rack10SW1#show run int f0/1
Building configuration...

Current configuration : 216 bytes
!
interface FastEthernet0/1
 switchport access vlan 146
 switchport mode access
 switchport port-security
 switchport port-security mac-address sticky
 switchport port-security mac-address sticky 000d.6584.6be0
 switchport port-security aging time 5
 switchport port-security aging type inactivity
end

Rack10SW1#
Rack10SW1#
Rack10SW1#show port-security interface FastEthernet 0/1
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Shutdown
Aging Time                 : 5 mins
Aging Type                 : Inactivity
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 1
Last Source Address:Vlan   : 000d.6584.6be0:146
Security Violation Count   : 0

Rack10SW1#
タイトルとURLをコピーしました