ipv6 泄露Mac地址 解决方案

标签: none

玩PT站的时候, 检查Tracker的时候遇到了.一个提示就是ipv6 会泄露Mac地址. 我去NAS 上使用ifconfig检查ipv6和mac地址. 从输出的结果来看ipv6确实泄露了. 这个PT站安全警惕性非常高.遇到不安全的客户端也会通知大家立即停止使用,以及发布一些分析文章.

We have detected one (or more) of your clients on IPv6 is leaking your mac address.
You can recognize these clients as they will end with FF:FE__:____ (where _ is a random hexadecimal character)

实例:
ipv6: fdbe:6442:2ece:0:a00:27ff:fe15:fb4e
Mac: 08-00-27-15-FB-4E

提示: 由于十六进制转换,某些MAC编号可能会转换为地址中的字母。这个是正常的。

IPv6_EUI-64.png
MAC_ADDR.png

目前有两个解决方案,可以在torrent客户端中关闭IPv6,或将设备设置为使用临时IPv6地址。(本文教程)
会出现此问题的系统为 (我使用的) 默认情况下, 此功能在Windows 7,8和8.1中处于启用状态。

1.CentOS 7.x----Enable Privacy Extension: Configuring IPv6 addresses
2.Windows 7----Windows 7: IPv6 Temporary Address - Enable or Disable

CentOS 7.x

启用隐私扩展
隐私扩展中所述RFC 4941为无状态地址自动配置/隐私扩展中的IPv6(废弃RFC 3041)正在取代静态接口ID(主要是基于字宽唯一的MAC地址)通过伪随机的一个,并从生成的自动配置过程中使用一个新的贬低旧的一个。

CentOS 7 建议使用 NetworkManager启用隐私扩展

使用sysctl启用隐私扩展

1.临时激活
启用例如接口eth0的隐私扩展,并优先选择生成的地址:

# sysctl -w net.ipv6.conf.eth0.use_tempaddr = 2

之后,需要重新启动网络接口

# ip link set dev eth0 down 
# ip link set dev eth0 up

重启完成后,结果应如下所示

# ip -6 addr show dev eth0
2: eth0:  mtu 1500 qlen 1000
    inet6 2001:db8:0:1:8992:3c03:d6e2:ed72/64 scope global secondary dynamic   <- pseudo-random IID
       valid_lft 604711sec preferred_lft 86311sec
    inet6 2001:db8:0:1::224:21ff:fe01:2345/64 scope global     <- IID based on MAC
       valid_lft 604711sec preferred_lft 86311sec
    ...

2.永久激活
对于永久激活,每个接口的特殊initscript值将启用隐私或/etc/sysctl.conf文件中的条目,如,如

net.ipv6.conf.eth0.use_tempaddr = 2

注意:应用sysctl.conf时,接口必须已存在且具有正确的名称。如果不是这种情况(例如重启后),则默认情况下必须为所有接口配置隐私:

net.ipv6.conf.all.use_tempaddr = 2 
net.ipv6.conf.default.use_tempaddr = 2

/etc/sysctl.conf中修改/添加新值后,使其生效

# sysctl -p

使用NetworkManager启用隐私扩展

新(客户端)系统使用NetworkManager配置接口。内置命令行工具,可用于更改GUI不可用的设置。
检查现有接口:

# nmcli connection 
NAME UUID TYPE DEVICE
ens4v1 d0fc2b2e-5fa0-4675-96b5-b723ca5c46db 802-3-ethernet ens4v1 

可以使用以下方式检查当前IPv6隐私扩展地址的数量

# ip -o addr show dev ens4v1 | grep temporary | wc -l
0

可以使用检查当前的IPv6隐私扩展设置

# nmcli connection show ens4v1 |grep ip6-privacy
ipv6.ip6-privacy: -1 (unknown)

启用IPv6隐私扩展并重新启动接口

# nmcli connection modify ens4v1 ipv6.ip6-privacy 2
# nmcli connection down ens4v1; nmcli connection up ens4v1

可以使用新的IPv6隐私扩展设置进行检查

# nmcli connection show ens4v1 |grep ip6-privacy
ipv6.ip6-privacy: 2 (active, prefer temporary IP)

现在在接口上配置IPv6隐私扩展地址

# ip -o addr show dev ens4v1 | grep temporary | wc -l
2

测试真实使用隐私扩展IPv6地址

具有由Privacy Extension生成的接口ID的IPv6地址是否真的用于传出连接,可以浏览到https://ip.bieringer.de/,以防EUI64_SCOPE显示“iid-privacy”,然后一切正常。

Windows 7/8

以管理员身份运行cmd, 启用临时IPv6地址

#以下命令以启用随机IP地址生成功能
netsh interface ipv6 set global randomizeidentifiers=enabled
#以允许Windows随机生成用于网络通信的临时地址
netsh interface ipv6 set privacy state=enabled

以管理员身份运行cmd, 禁用临时IPv6地址功能

netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy state=disabled

使用 ipconfig 检查是否成功启用


扫描二维码,在手机上阅读!

添加新评论