ITの教科書検索
入門・発展ページ読了 約10分

ポートセキュリティとは ― MACアドレスの制限

ポートセキュリティとは、スイッチのポートに接続してよいMACアドレスを制限する機能です。知らない機器をつながれたときに止める仕組みと、登録方法・違反時の動作・防げる攻撃が分かります。

目次
  1. ポートセキュリティとは
  2. なぜMACアドレスを制限するのか
  3. MACアドレスの登録方法
  4. 1ポートに登録できる数
  5. 違反時の3つの動作
  6. err-disabled状態と復旧
  7. 防げる攻撃・防げない攻撃
  8. 練習問題

ポートセキュリティとは、ポートに接続を許可するMACアドレスを制限する機能

ポートセキュリティとは、スイッチのポートごとに、接続を許可するMACアドレスの数と相手を制限する機能です。登録した数を超えるMACアドレスのフレーム(イーサネットで送るデータの単位)が届くと、違反として扱います。

空いているポートに知らない機器をつながれても、通信させずに止められます。登録のしかた、違反したときの動作、防げる攻撃と防げない攻撃を順に説明します。

なぜMACアドレスを制限するのか

スイッチは、受信したフレームの送信元MACアドレスと、受信したポートの組を、MACアドレステーブルに記録します。この学習の仕組みは、ハブ・スイッチ・ルータの違いの記事で説明しています。

通常、1つのポートで学習するMACアドレスの数に上限はありません。ただし、テーブル全体に記録できる数には限りがあります。悪意のある機器が、送信元MACアドレスを次々に変えたフレームを大量に送ると、テーブルが満杯になります。

満杯になると、スイッチは新しいMACアドレスを学習できなくなります。宛先がテーブルにないフレームは、受信したポート以外の全ポートへ転送(フラッディング)されます。その結果、本来は届かない相手にも通信を読まれるようになります。このようにテーブルをあふれさせる攻撃を、MACアドレスフラッディング攻撃と呼びます。

ポートセキュリティなし:ポートごとの上限が無い送信元MACを次々変えるポート1学習MACアドレステーブルaa:01aa:02aa:03aa:04満杯まで増えるあふれると全ポートへフラッディングポートセキュリティあり(最大2):上限を超えると違反になるPC1・PC2(登録済み)3台目(登録外)×ポート1学習MACアドレステーブルPC1PC2上限2で止まる違反として扱う(動作は下で比較)
1つのポートについて、ポートセキュリティのなし・ありを比べます。上段のなしでは、送信元MACアドレスを次々に変えたフレームが届くたびに、テーブルが満杯になるまで学習が増えます。満杯になると、スイッチは宛先がテーブルにないフレームを、受信したポート以外の全ポートへフラッディングします。これがMACアドレスフラッディング攻撃です。下段のあり(最大2)では、登録済みの2台分までは同じように学習します。3台目の登録外MACアドレスが届くと、上限を超えるため学習せず違反として扱います。違反時の実際の動作は、後の節で説明します。

ポートセキュリティは、ポートごとに学習できるMACアドレスの数に上限を設けて、テーブルがあふれるのを防ぎます。

MACアドレスの登録方法:スタティック・ダイナミック・スティッキー

ポートに接続を許可するMACアドレスは、3つの方式のどれかで登録します。

方式登録のしかた再起動後
スタティック管理者が、MACアドレスを1つずつ手動で入力する残る(設定の一部として保存されている)
ダイナミックスイッチが、通常のMACアドレステーブルと同じように自動で学習する消える(アドレステーブルだけに残り、設定には残らない)
スティッキーダイナミックと同じように自動で学習するが、学習結果を設定に書き加える残る(設定を保存していれば)

スティッキーは、ダイナミックと同じように自動で学習しますが、学習した内容を設定に書き加える点が違います。設定を保存すれば、スイッチを再起動してもそのMACアドレスは残ります。管理者が1台ずつ入力する手間を省きながら、設定として確定させたい場合に使います。

1ポートに登録できるMACアドレスの数

1ポートに登録できるMACアドレスの数には上限があります。既定値は1台で、管理者が変更できます。

1つのポートの先に複数の機器をつなぐ構成では、上限をその台数に合わせて増やします。設定できる上限の最大値は、スイッチの機種によって異なります。

ポートセキュリティを設定できるのは、VLANを固定したアクセスポートとトランクポートだけです。接続先に応じてVLANが自動で決まるポートには設定できません。

違反時の3つの動作:protect・restrict・shutdown

上限を超えるMACアドレスからのフレームが届くと、ポートセキュリティは違反として扱います。違反が起きたときの動作は、3つのモードから選べます。

モード登録外MACのフレームポートの状態通知
protect破棄する変わらないしない
restrict破棄する変わらないする(ログ・SNMPトラップ・違反カウンタ)
shutdown
(既定値)
破棄し、ポート全体も止めるerr-disabled状態になる違反カウンタを増やす

既定値はshutdownです。protectとrestrictは、登録外のフレームを破棄するだけでポートは止まりません。2つの違いは通知の有無だけです。shutdownは、ポート全体を止める点がほかの2つと大きく異なります。

表のSNMPトラップは、機器が異常を管理用のサーバへ自分から知らせる通知です。仕組みはSNMPの記事で説明しています。

次の図では、同じ場面で3つのモードを切り替えて違いを比べられます。

場面:ポート1は最大1台のMACアドレスだけを許可していて、すでにPC1を学習しています。そこへ、登録外のPC2がフレームを1つ送ってきました。

登録済みのPC1からの通信
届かない。ポートごと止まるため
登録外のPC2からの1フレーム
破棄される。さらに、このフレームがきっかけでポート全体が止まる
ポートの状態
err-disabled状態になり、通信そのものが止まる
管理者への通知
記録される。違反カウンタを1増やす。ポートが止まるため、異常にも気付ける
元に戻すには
手動でshutdownしてno shutdownするか、errdisable recoveryの自動復旧を設定しておく必要がある

err-disabled状態と復旧方法

shutdownモードで違反が起きると、ポートはerr-disabledという状態になります。リンクが切断された状態になり、そのポートを通る通信はすべて止まります。

既定では、err-disabled状態は、違反の原因を取り除いても自動的には戻りません。管理者がそのポートをいったん無効にしてから有効にし直して、手動で復旧させます。一定時間後に自動で復旧する設定もあり、あらかじめ設定しておけば、管理者が毎回操作しなくても済みます。

ポートセキュリティで防げる攻撃・防げない攻撃

ポートセキュリティで防げるのは、ここまで説明したMACアドレスフラッディング攻撃です。送信元MACアドレスを次々に変える攻撃を、台数の上限で止めます。

一方、防げない攻撃もあります。ポートセキュリティが見ているのは、届いたフレームの送信元MACアドレスが登録と一致するかどうかだけだからです。

1つはMACアドレスのなりすましで、登録を許可された機器のMACアドレスを偽って名乗る攻撃です。MACアドレスが登録と一致するので、ポートセキュリティは通してしまいます。

2つ目はARPスプーフィング(偽のARP応答で通信を横取りする攻撃)です。ポートセキュリティは送信元MACアドレスだけを見ており、ARPの中身までは確認しません。ARPスプーフィングの仕組みはARPの記事で説明しています。

3つ目として、不正なDHCPサーバからの応答も、ポートセキュリティでは防げません。防ぐには、DHCPスヌーピングという別の仕組みが必要です。

練習問題(全5問)

Q1ポートセキュリティの説明として正しいものは?
Q2MACアドレスの登録方式のうち、「ダイナミック」の説明として正しいものは?
Q3Ciscoのスイッチにおける、ポートセキュリティの既定値として正しい組み合わせは?
Q4違反時の動作のうち、「restrict」が「protect」と違う点は?
Q5ポートセキュリティで防げない攻撃として正しいものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す