目次
DHCPスヌーピングとは
DHCPスヌーピングは、レイヤ2スイッチでDHCPメッセージをチェックしてその整合性を確認するための機能です。DHCPスヌーピングによって、DHCPサーバを偽装するDHCPスプーフィングを防止できます。
DHCPスヌーピングの仕組み
DHCPスヌーピングを有効にして、スイッチのインタフェースを次の2つの種類に分けます。
- Trustポート
- Untrustポート
Trustポートは、正規のDHCPサーバが接続されている方向のインタフェースです。Trustポートを設定で明示的に指定します。Trustポート以外のポートはUntrustポートになります。Untrustポートの先にはDHCPサーバが接続されているはずがないということになります。
Trustポートでは、DHCPメッセージのチェックを行いません。Untrustポートで受信したDHCPメッセージをすべてチェックします。DHCPスヌーピングの動作は、以下のように行います。
- Untrustポートで受信するすべてのDHCPメッセージをチェックする
- サーバから送信されるはずのOFFERとACKを破棄する
- クライアントから送信されるDISCOVERのMACアドレスの整合性をチェックする
- DHCPでリースされたIPアドレスとMACアドレスの対応をDHCPスヌーピングバインディングテーブルに保持する
DISCOVERのMACアドレスのチェック
DISCOVERメッセージのMACアドレスの整合性のチェックについてもう少し詳しく見ておきましょう。UntrustポートでDHCPクライアントから送信されるDISCOVERのMACアドレスの整合性をチェックします。イーサネットヘッダの送信元MACアドレスとDISCOVERメッセージのclient hardware address(CHADDR)が一致しているかどうかです。一致していないと攻撃者が不正に作り出したDISCOVERメッセージとみなして破棄します。
DHCPスヌーピングバインディングテーブル
正規のDHCPサーバと正常にDHCPでIPアドレスなどを割り当てられると、レイヤ2スイッチのDHCPスヌーピングバインディングテーブルに割り当てたIPアドレスとMACアドレスの対応を保持します。
DHCPメッセージの制限
通常のレイヤ2スイッチはイーサネットヘッダのみを参照して、イーサネットフレームを転送します。その処理はハードウェア処理です。ところが、DHCPスヌーピングを有効にすると、DHCPメッセージの内容をチェックしなければいけなくなり、スイッチのCPUに負荷をかけてしまいます。多くのDHCPメッセージを送りつけて、スイッチのCPUに過剰な負荷をかける一種のDoS攻撃もあります。こうした過剰なDHCPメッセージに対応するために、受信するDHCPメッセージを制限します。
インタフェースで受信するDHCPメッセージのしきい値を設定します。しきい値を超えるDHCPメッセージを受信するとそのインタフェースをerr-disable状態にして、過剰なDHCPメッセージを受信しないようにできます。
Option82の付加
Cisco Catalystスイッチでは、DHCPスヌーピングの際に、デフォルトでOption82として以下の情報を付加します。
- リモートID
- サーキットID
リモートIDは、スヌーピングしているスイッチのMACアドレスです。サーキットIDはDHCPクライアントが接続されているポート番号とVLAN情報です。リモートIDおよびサーキットIDで、DHCPクライアントがどのスイッチのどのポート(インタフェース)に接続されているかがわかります。つまり、DHCPクライアントを識別しやすくなります。
以下の画像は、DHCPスヌーピングでOption82が付加されたDHCP DISCOVERをWiresharkでキャプチャしたものです。
リンク
Option82のリモートID/サーキットIDのフォーマットについて、以下のWebページが詳しいです。
DHCPサーバによって、DHCPスヌーピングによってOption82が挿入されたDHCPメッセージを破棄することがあります。Cisco IOSをDHCPサーバにしているときには、ip dhcp relay information trust-allコマンドが必要です。
まとめ
ポイント
- DHCPスヌーピングは、レイヤ2スイッチでDHCPメッセージをチェックしてその整合性をチェックする機能です。
- DHCPスヌーピングによって、DHCPサーバのなりすまし(スプーフィング)を防止します。
- 正規のDHCPサーバが接続される方向のインタフェースをTrustとして設定します。
- DHCPで割り当てられたIPアドレスとクライアントのMACアドレスの対応をDHCPスヌーピングバインディングテーブルに保持します。
関連記事
セキュリティの基礎
- SSLとWi-Fiの暗号化の違い
- セキュリティの目的 ~機密性/完全性/可用性~
- セキュリティの脅威と対策の概要
- マルウェア ~ユーザにとって有害なソフトウェア~
- 認証の基礎 ~正規のユーザ/デバイスですか?~
- 覚えやすくて推測されにくい安全なパスワードの作り方
- 暗号化の概要
- ハッシュ関数とは
- SSLとは? ~アクセス先は本物です!データは盗聴/改ざんされません!~
- ファイアウォールの概要 ~正規の通信のみを転送~
- IDS/IPS ~不正アクセス対策~
- Cisco アクセスコントロールリストの概要
- パケットフィルタ ~不正な通信をブロックするCisco ACLの最も多い用途~
- SPI(Stateful Packet Inspection)の概要
- Cisco ACLによるパケットフィルタの設定と確認
- 名前付きACL(Named ACL)
- タイムベース(Time-based)ACL
- Cisco ACLによるパケットフィルタの設定例
- 標準ACLと拡張ACLのパケットフィルタリングをより深く理解するための演習 ~標準ACL~
- 標準ACLと拡張ACLのパケットフィルタリングをより深く理解するための演習 ~拡張ACL~
- リフレクシブ(Reflexive)ACL ~戻りの通信を自動的に許可~
- リフレクシブ(Reflexive)ACLの設定例
- Catalystスイッチのパケットフィルタリング RACL/VACL/PACL
- RACL/VACL/PACLの設定と確認コマンド
- uRPFの設定例
- VTYアクセス制御
- DHCPスプーフィング ~DHCPサーバを偽装~
- DHCPスヌーピング
- Cisco DHCPスヌーピングの設定と確認コマンド
- Cisco DHCPスヌーピングの設定例
- ARPスプーフィング
- Dynamic ARP Inspection
- Cisco Dynamic ARP Inspectionの設定と確認コマンド
- TCPインターセプトの設定例
- WAF(Web Application Firewall)の概要
- 電子メールのセキュリティ