ポートセキュリティとは ― MACアドレスの制限
ポートセキュリティとは、
ポートセキュリティとは、ポートに接続を許可するMACアドレスを制限する機能
ポートセキュリティとは、スイッチのポートごとに、接続を許可するMACアドレスの数と相手を制限する機能です。登録した数を超えるMACアドレスのフレーム(イーサネットで送るデータの単位)が届くと、違反として扱います。
空いているポートに知らない機器をつながれても、通信させずに止められます。登録のしかた、違反したときの動作、防げる攻撃と防げない攻撃を順に説明します。
なぜMACアドレスを制限するのか
スイッチは、受信したフレームの送信元MACアドレスと、受信したポートの組を、MACアドレステーブルに記録します。この学習の仕組みは、ハブ・スイッチ・ルータの違いの記事で説明しています。
通常、1つのポートで学習するMACアドレスの数に上限はありません。ただし、テーブル全体に記録できる数には限りがあります。悪意のある機器が、送信元MACアドレスを次々に変えたフレームを大量に送ると、テーブルが満杯になります。
満杯になると、スイッチは新しいMACアドレスを学習できなくなります。宛先がテーブルにないフレームは、受信したポート以外の全ポートへ転送(フラッディング)されます。その結果、本来は届かない相手にも通信を読まれるようになります。このようにテーブルをあふれさせる攻撃を、MACアドレスフラッディング攻撃と呼びます。
ポートセキュリティは、ポートごとに学習できるMACアドレスの数に上限を設けて、テーブルがあふれるのを防ぎます。
MACアドレスの登録方法:スタティック・ダイナミック・スティッキー
ポートに接続を許可するMACアドレスは、3つの方式のどれかで登録します。
| 方式 | 登録の | 再起動後 |
|---|---|---|
| スタティック | 管理者が、MACアドレスを1つずつ手動で入力する | 残る(設定の一部として保存されている) |
| ダイナミック | スイッチが、通常のMACアドレステーブルと同じように自動で学習する | 消える(アドレステーブルだけに残り、設定には残らない) |
| スティッキー | ダイナミックと同じように自動で学習するが、学習結果を設定に書き加える | 残る(設定を保存していれば) |
スティッキーは、ダイナミックと同じように自動で学習しますが、学習した内容を設定に書き加える点が違います。設定を保存すれば、スイッチを再起動してもそのMACアドレスは残ります。管理者が1台ずつ入力する手間を省きながら、設定として確定させたい場合に使います。
1ポートに登録できるMACアドレスの数
1ポートに登録できるMACアドレスの数には上限があります。既定値は1台で、管理者が変更できます。
1つのポートの先に複数の機器をつなぐ構成では、上限をその台数に合わせて増やします。設定できる上限の最大値は、スイッチの機種によって異なります。
違反時の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フレーム
- 破棄される。フレームだけが捨てられる
- ポートの状態
- 変わらない。ポートはupのまま動き続ける
- 管理者への通知
- 記録されない。ログもSNMPトラップも送られない
- 元に戻すには
- 対応は不要。登録外のMACアドレスが送り続けても、破棄され続けるだけ
- 登録済みのPC1からの通信
- 届く。これまでどおり転送される
- 登録外のPC2からの1フレーム
- 破棄される。フレームだけが捨てられる
- ポートの状態
- 変わらない。ポートはupのまま動き続ける
- 管理者への通知
- 記録される。ログを残し、SNMPトラップを送り、違反カウンタを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問)
正解:スイッチの
ポートセキュリティは、
正解:スイッチが
ダイナミックは、
正解:最大MACアドレス数は
Ciscoの
正解:違反を
protectと
正解:登録を
ポートセキュリティが
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
