セキュアなIPv6近隣探索
IPv6トラフィックのセキュアネイバー探索(SEND)プロトコルは、ブロードキャストセグメントにアクセスできる攻撃者がNDPまたはARPを悪用してホストを騙し、攻撃者にトラフィックを送信させる(ARPポイズニングと呼ばれる技術)を防ぎます。
セキュアなIPv6近隣探索について
IPv6近隣探索プロトコル(NDP)の機能の1つは、ネットワーク層(IP)アドレスをリンク層(イーサネットなど)アドレスに解決することです。これはIPv4においてアドレス解決プロトコル(ARP)によって実行される機能です。セキュア近隣探索(SEND)プロトコルは、ブロードキャスト セグメントにアクセスできる攻撃者が NDP または ARP を悪用してホストを騙し、攻撃者にトラフィックを送信させる(ARP ポイズニングと呼ばれる手法)ことを防止します。
NDP 機能に対する ARP ポイズニングやその他の攻撃から保護するために、ブロードキャスト セグメントへのアクセスを防止できない場合に SEND を展開する必要があります。
SEND は、RFC 3972「 Cryptographically Generated Addresses (CGA)」で定義されているように、RSA キー ペアを使用して暗号的に生成されたアドレスを生成します。これにより、NDP メッセージの要求された送信元が、要求されたアドレスの所有者であることが保証されます。
例:セキュアな IPv6 近隣探索の設定
この例では、IPv6 Secure Neighbor Discovery(SEND)を設定する方法を示しています。
必要条件
この例には、次の要件があります。
Junos OS リリース 9.3 以降
ネットワークに導入されたIPv6
RSA キー ペアを生成またはインストールしていない場合は、インストールする必要があります。
新しいRSAキーペアを生成するには、以下のコマンドを入力します。
user@host> request security pki generate-key-pair type rsa certificate-id certificate-id-name size size
概要
SEND を設定するには、以下のステートメントをインクルードします。
protocols {
neighbor-discovery {
onlink-subnet-only;
secure {
security-level {
(default | secure-messages-only);
}
cryptographic-address {
key-length number;
key-pair pathname;
}
timestamp {
clock-drift number;
known-peer-window seconds;
new-peer-window seconds;
}
traceoptions {
file filename <files number> <match regular-expression> <size size> <world-readable | no-world-readable>;
flag flag;
no-remote-trace;
}
}
}
}
default を指定して、セキュアおよび非セキュア両方の近隣探索プロトコル(NDP)パケットを送受信します。セキュアな NDP メッセージのみを受け入れ、セキュアでないメッセージをドロップするように SEND を設定します。secure-messages-only を指定します。
secure-messages-only オプションを使用する場合は、セグメント上のすべてのノードを SEND で設定する必要があります。これは、保護を強化する必要があるデバイスのごく一部でない限り、推奨されます。すべてのノードに SEND を構成しないと、接続が失われる可能性があります。
位相幾何学
構成
プロシージャ
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit] 階層レベルのCLIにコマンドをコピー&ペーストしてください。
set protocols neighbor-discovery secure security-level secure-messages-only set protocols neighbor-discovery secure cryptographic-address key-length 1024 set protocols neighbor-discovery secure cryptographic-address key-pair /var/etc/rsa_key set protocols neighbor-discovery secure timestamp
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
セキュアなIPv6近隣探索を設定するには:
セキュリティレベルを設定します。
[edit protocols neighbor-discovery secure] user@host# set security-level secure-messages-only
(オプション)キーの長さを有効にします。
デフォルトのキー長は 1024 です。
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-length 1024
(オプション)暗号化アドレスに対して生成される公開/秘密キー ファイルのディレクトリ パスを指定します。
ファイルのデフォルトの場所は /var/etc/rsa_key ディレクトリです。
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-pair /var/etc/rsa_key
(オプション)要請およびリダイレクトメッセージが再生されないようにタイムスタンプを設定します。
[edit protocols neighbor-discovery secure] user@host# set timestamp
業績
設定モードから、 show protocols コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@host# show protocols
neighbor-discovery {
secure {
security-level {
secure-messages-only;
}
cryptographic-address {
key-length 1024;
key-pair /var/etc/rsa_key;
}
timestamp;
}
}
デバイスの設定が完了したら、設定モードから コミット を入力します。
検証
設定が正常に機能していることを確認します。
IPv6ネイバーキャッシュの確認
目的
IPv6ネイバーに関する情報を表示します。
アクション
動作モードから、 show ipv6 neighbors コマンドを入力します。
意味
IPv6では、アドレス解決プロトコル(ARP)はNDPに置き換えられました。IPv4コマンド show arp は、IPv6コマンド show ipv6 neighborsに置き換えられました。このコマンドで表示される重要な情報は、IPアドレス、MAC(リンク層)アドレス、およびインターフェイスです。
ネイバー探索イベントのトレース
目的
SEND をトレースして、追加の検証を実行します。
アクション
トレース操作を構成します。
[edit protocols neighbor-discovery secure] user@host# set traceoptions file send-log user@host# set traceoptions flag all
show logコマンドを実行します。user@host> show log send-log Apr 11 06:21:26 proto: outgoing pkt on idx 68 does not have CGA (fe80::2a0:a514:0:14c), dropping pkt Apr 11 06:26:44 proto: sendd_msg_handler: recv outgoing 96 bytes on idx 70 with offset 40 Apr 11 06:26:44 dbg: sendd_proto_handler: Modifier (16) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Apr 11 06:26:44 cga: snd_is_lcl_cga: BEFORE overriding cc, cc:0, ws->col:0 Apr 11 06:26:44 proto: outgoing pkt on idx 70 does not have CGA (fe80::2a0:a514:0:24c), dropping pkt Apr 11 06:26:47 proto: sendd_msg_handler: recv outgoing 96 bytes on idx 68 with offset 40 Apr 11 06:26:47 dbg: sendd_proto_handler: Modifier (16) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
意味
出力では、パケットに暗号で生成されたアドレスがないため、パケットが破棄されたことを示しています。