前回学んだCAMテーブル溢れ攻撃は、「1つのポートに、本来つながるはずのない大量のMACアドレスが送られてくる」ことが原因でした。もし「このポートには、決まった台数の機器しかつなげない」と制限できたら、この攻撃は防げるでしょうか?
ポートごとに「接続してよいMACアドレスの数や種類」を制限する、という発想で考えてみてください。
ポートに「利用者名簿」を貼る
前回のCAMテーブル溢れ攻撃、ARPスプーフィングを踏まえて、今回は最も基本的で実践的な対策、ポートセキュリティを扱います。ポートセキュリティは、会議室のドアに「利用者名簿」を貼っておくようなものです。名簿にない人が入ろうとしたら、あるいは定員を超えて人が入ろうとしたら、アラームを鳴らすなり入室を拒否するなり、決めておいたルールで対応します。
switchport port-securityの基本設定
ポートセキュリティは、アクセスポート(スイッチの利用者端末が接続する物理ポート)単位で設定します。
Switch(config)# interface FastEthernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 2
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)# switchport port-security violation shutdown
switchport mode accessでアクセスポートに固定します(ポートセキュリティはトランクポートには基本的に使いません)。switchport port-securityでこのポートのポートセキュリティ機能を有効化します。switchport port-security maximum 2で、このポートで許可する最大MACアドレス数を指定します(省略時は1)。switchport port-security mac-address stickyを指定すると、最初に学習したMACアドレスを設定に自動的に書き込み(スティッキーアドレス)、以後は固定的に許可します。手動で1件ずつmac-addressを指定することもできますが、sticky を使うと運用が楽になります。switchport port-security violation shutdownで、違反時の動作を指定します。
violationの3モード
許可されていないMACアドレスからのフレームを受け取った場合(違反)にどう動作するかは、3つのモードから選べます。
| モード | 通信への影響 | ポートの状態 | ログ・カウンタ |
|---|---|---|---|
| protect | 違反フレームを破棄 | 有効のまま | 記録なし |
| restrict | 違反フレームを破棄 | 有効のまま | 記録あり(違反カウンタが増加) |
| shutdown | 違反フレームを破棄 | err-disabled状態になる | 記録あり、SNMPトラップも送信 |
shutdown はデフォルトのモードで、最も厳格です。違反が起きるとポート自体が err-disabled という無効化状態になり、通信が完全に止まります。運用上は何が起きたか記録が残るため、restrict や shutdown がよく使われます。
err-disabledからの復旧
violation shutdown の設定で違反が発生すると、ポートは自動的に err-disabled になり、shutdown 状態と表示されます。これは自然には復旧しないため、管理者が手動で復旧させる必要があります。
Switch(config)# interface FastEthernet0/1
Switch(config-if)# shutdown
Switch(config-if)# no shutdown
shutdown と no shutdown を順に実行し、インターフェースを一度落としてから再度上げることで、err-disabled状態から復旧します。なお、errdisable recovery コマンドを使うと、一定時間後に自動で復旧させる設定も可能です。
状態の確認
設定と現在の状態は show port-security 系のコマンドで確認します。
Switch# show port-security interface FastEthernet0/1
このコマンドで、そのポートの最大アドレス数、現在の登録数、violationモード、ポートの状態(Secure-up / Secure-shutdownなど)を確認できます。
switchport port-security violation shutdown を設定したポートで違反が発生すると、ポートはどうなるでしょうか?
答えを見る
ポートはerr-disabled状態になり、通信が完全に停止します。自然には復旧しないため、shutdown → no shutdown を実行するか、errdisable recovery を設定して手動または自動で復旧させる必要があります。
試験でのポイント
CCNA試験では、violationの3モード(protect / restrict / shutdown)の違い——特に「ポートがerr-disabledになるのはshutdownのみ」「ログが記録されるのはrestrictとshutdown」という組み合わせが頻出です。表にして整理しておくと迷いません。また、stickyキーワードが「学習したMACアドレスを設定に自動保存する」機能であることも定番です。CAMテーブル溢れ攻撃への直接的な対策がポートセキュリティである、という前回の内容とのつながりも意識しておきましょう。err-disabledからの復旧手順(shutdown→no shutdown)も、実技問題を想定して覚えておくと安心です。
ポートセキュリティのviolationモードのうち、違反フレームを破棄しつつポートは有効なまま維持し、違反の記録(カウンタ)も残すのはどのモードでしょうか?
答えを見る
restrictモードです。protectは記録を残さず、shutdownはポートをerr-disabled状態にしてしまいますが、restrictは通信を止めつつポートを稼働させたまま違反を記録します。
switchport port-security、maximum、sticky、violationの3モード(protect/restrict/shutdown)、err-disabledからの復旧——スイッチのポート単位で不正な接続を防ぐ実践的な設定だよ。名簿にない人は入れない、というシンプルな発想が支えているんだよね。次の章からはACL、通信そのものを許可・拒否するルールを学んでいくよ。