Sichere IPv6 Neighbor Discovery
Das Secure Neighbor Discovery (SEND)-Protokoll für IPv6-Datenverkehr verhindert, dass ein Angreifer, der Zugriff auf das Broadcast-Segment hat, NDP oder ARP missbraucht, um Hosts dazu zu bringen, den Angreifer Datenverkehr zu senden, der für eine andere Person bestimmt ist. Diese Technik wird als ARP-Poisoning bezeichnet.
Understanding Secure IPv6 Neighbor Discovery
Eine der Funktionen des IPv6 Neighbor Discovery Protocol (NDP) besteht darin, IP-Adressen (Network Layer) in Link-Layer-Adressen (z. B. Ethernet) aufzulösen, eine Funktion, die in IPv4 durch Address Resolution Protocol (ARP) ausgeführt wird. Das Secure Neighbor Discovery (SEND)-Protokoll verhindert, dass ein Angreifer, der Zugriff auf das Broadcast-Segment hat, NDP oder ARP missbraucht, um Hosts dazu zu bringen, dem Angreifer Datenverkehr zu senden, der für eine andere Person bestimmt ist, eine Technik, die als ARP-Poisoning bekannt ist.
Zum Schutz vor ARP-Poisoning und anderen Angriffen auf NDP-Funktionen sollte SEND dort eingesetzt werden, wo es möglicherweise nicht möglich ist, den Zugriff auf das Broadcast-Segment zu verhindern.
SEND verwendet RSA-Schlüsselpaare, um kryptografisch generierte Adressen zu erzeugen, wie in RFC 3972, Kryptographisch generierte Adressen (CGA) definiert. Dadurch wird sichergestellt, dass die behauptete Quelle einer NDP-Nachricht der Eigentümer der beanspruchten Adresse ist.
Beispiel: Konfigurieren der sicheren IPv6-Nachbarerkennung
In diesem Beispiel wird gezeigt, wie IPv6 Secure Neighbor Discovery (SEND) konfiguriert wird.
Anforderungen
Für dieses Beispiel gelten die folgenden Anforderungen:
Junos OS Version 9.3 oder höher
IPv6 in Ihrem Netzwerk bereitgestellt
Wenn Sie dies noch nicht getan haben, müssen Sie ein RSA-Schlüsselpaar generieren oder installieren.
Um ein neues RSA-Schlüsselpaar zu generieren, geben Sie den folgenden Befehl ein:
user@host> request security pki generate-key-pair type rsa certificate-id certificate-id-name size size
Überblick
Um SEND zu konfigurieren, fügen Sie die folgenden Anweisungen ein:
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;
}
}
}
}
Geben Sie die Standardeinstellung zum Senden und Empfangen von sicheren und ungesicherten Neighbor Discovery Protocol (NDP)-Paketen an. So konfigurieren Sie SEND so, dass nur gesicherte NDP-Nachrichten akzeptiert und ungesicherte Nachrichten gelöscht werden. Geben Sie secure-messages-only an.
Alle Knoten im Segment müssen mit SEND konfiguriert werden, wenn die Option "Nur sichere Nachrichten" verwendet wird, was empfohlen wird, es sei denn, nur eine kleine Teilmenge von Geräten erfordert einen erhöhten Schutz. Wenn SEND nicht für alle Knoten konfiguriert wird, kann dies zu einem Verlust der Konnektivität führen.
Topologie
Konfiguration
Verfahren
CLI Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle erforderlichen Details, damit sie Ihrer Netzwerkkonfiguration entsprechen, und kopieren Sie dann die Befehle, und fügen Sie sie dann in die CLI auf der [edit] Hierarchieebene ein.
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
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So konfigurieren Sie eine sichere IPv6-Nachbarerkennung:
Konfigurieren Sie die Sicherheitsstufe.
[edit protocols neighbor-discovery secure] user@host# set security-level secure-messages-only
(Optional) Aktivieren Sie die Schlüssellänge.
Die Standardschlüssellänge ist 1024.
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-length 1024
(Optional) Geben Sie den Verzeichnispfad der Datei mit dem öffentlich-privaten Schlüssel an, die für die kryptografische Adresse generiert wurde.
Der Standardspeicherort der Datei ist das Verzeichnis /var/etc/rsa_key .
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-pair /var/etc/rsa_key
(Optional) Konfigurieren Sie einen Zeitstempel, um sicherzustellen, dass Aufforderungs- und Umleitungsnachrichten nicht wiedergegeben werden.
[edit protocols neighbor-discovery secure] user@host# set timestamp
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den show protocols Befehl eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
user@host# show protocols
neighbor-discovery {
secure {
security-level {
secure-messages-only;
}
cryptographic-address {
key-length 1024;
key-pair /var/etc/rsa_key;
}
timestamp;
}
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln Sie in den Konfigurationsmodus .
Verifizierung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
Überprüfen des IPv6-Nachbarcaches
Zweck
Zeigt Informationen über die IPv6-Nachbarn an.
Aktion
Geben Sie im Betriebsmodus den show ipv6 neighbors Befehl ein.
Bedeutung
In IPv6 wurde das Address Resolution Protocol (ARP) durch das NDP ersetzt. Der Befehl IPv4 show arp wird durch den Befehl show ipv6 neighborsIPv6 ersetzt. Die wichtigsten Informationen, die von diesem Befehl angezeigt werden, sind die IP-Adresse, die MAC-Adresse (Link Layer) und die Schnittstelle.
Ablaufverfolgung von Nachbarermittlungsereignissen
Zweck
Führen Sie eine zusätzliche Validierung durch, indem Sie SEND abzeichnen.
Aktion
Konfigurieren von Ablaufverfolgungsvorgängen.
[edit protocols neighbor-discovery secure] user@host# set traceoptions file send-log user@host# set traceoptions flag all
Führen Sie den
show logBefehl aus.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
Bedeutung
Die Ausgabe zeigt, dass das Paket verworfen wird, da es keine kryptografisch generierte Adresse hat.