安全 IPv6 邻接方发现
IPv6 流量的安全邻居发现 (SEND) 协议可防止有权访问广播分段的攻击者滥用 NDP 或 ARP 诱骗主机将发往其他人的攻击者流量发送,这种技术称为 ARP 中毒。
了解安全 IPv6 邻居发现
IPv6 邻居发现协议 (NDP) 的功能之一是将网络层 (IP) 地址解析为链路层(例如以太网)地址,这是在 IPv4 中通过地址解析协议 (ARP) 执行的一项功能。安全邻居发现 (SEND) 协议可防止有权访问广播分段的攻击者滥用 NDP 或 ARP 来诱骗主机将攻击者流量发送至其他人,这种技术称为 ARP 中毒。
为了防止 ARP 中毒和其他针对 NDP 功能的攻击,应将 SEND 部署在可能无法阻止访问广播段的地方。
SEND 使用 RSA 密钥对生成加密生成的地址,如 RFC 3972 加密 生成的地址 (CGA) 中所定义。这可确保 NDP 邮件的声明源是声明地址的所有者。
示例:配置安全 IPv6 邻接方发现
此示例说明如何配置 IPv6 安全邻居发现 (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;
}
}
}
}
指定 默认 值以发送和接收安全和不安全的邻居发现协议 (NDP) 数据包。将 SEND 配置为仅接受受保护的 NDP 邮件并丢弃不安全的 NDP 邮件。指定 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
意义
输出显示,由于数据包没有加密生成的地址,因此数据包将被丢弃。