私のMacでは、各IPv6アドレス に 特定のコンピュータのMACアドレス(not私のルーター)が含まれています。 ipv6-test.com のようなサイトはそれを表示するだけでなく、それがAppleコンピュータに属していることさえ私に言ってください。
これはスーパークッキーのように感じられ、他のオペレーティングシステムにも当てはまるかもしれません。自分のMACアドレスが公開されないようにするにはどうすればよいですか。
背景:MACアドレスは ではありません2001:0db8:1:2:60:8ff:fe52:f9d8
のように:
0060:08ff:fe52:f9d8
。ff:fe
部分を削除します。これらのバイトが存在しない場合、 、 MACアドレスがありません。0x00
(00000000)は0x02
(00000010)になります。60:8ff:fe52:f9d8
はMACアドレス02:60:08:52:f9:d8
に変換されます。注:Ars Technicaによると、macOS 10.12 Sierra以降、 AppleはMACアドレス に基づいていない安定したアドレスを生成する新しい方法を採用しました。 。
この質問は、今週のスーパーユーザー質問でした。
詳しくはブログ記事を読むか、contribを読んでください。ブログへ自分で
これはIPv6への2つの拡張によって解決されます。
一般的なオペレーティングシステムでは、少なくとも1つの方法で両方の方法がサポートされています。
これらの機能は直交していることに注意してください。必要に応じて、両方を同時に使用することができます。
一部のオペレーティングシステムでは、MAC(EUI-48)アドレスはインタフェース識別子にはもはや使用されなくなりました。代わりに、ランダムまたはハッシュベースの識別子が、一般的にはRFC 7217に従って使用されます。
Windowsは、Windows Vista以降、デフォルトでカスタムスキームを使用します。
機能がアクティブかどうかを確認するには、PowerShellコマンドを実行します。
Get-NetIPv6Protocol | fl RandomizeIdentifiers
機能を有効/無効にするには:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux(NetworkManager)は、シードの一部として接続プロファイルのUUIDを使用して、NetworkManager v1.2.0以降でRFC 7217をサポートします。この機能は最近のNMバージョンではデフォルトで有効になっています。
この機能を有効または無効にするには
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux(カーネルSLAAC)は、カーネルv4.1.0以降でRFC 7217をサポートしています。しかしながら、それはsysctlを通して秘密の種を保存することによって手動で起動されなければなりません。
秘密鍵は128ビットの16進数ストリング(IPv6アドレスのような形)で、net.ipv6.conf.default.stable_secret
sysctlに保管する必要があります。それを永続的にするために、それは/etc/sysctl.d/50-rfc7217.conf
または同様のものに入れることができます:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
シークレットを設定すると、すべてのネットワークインタフェースに対してこのモードが自動的に有効になります。機能がアクティブかどうかを確認するには、ip -d link
で "addrgenmode stable_secret"、またはsysctl net.ipv6.conf.<ifname>.addr_gen_mode
で値 "2"を探します。
RFC 4941で定義されているように、一時的なプライバシーアドレスはランダムに生成され、数時間ごとにローテーションされます。
Windowsは、Windows XP SP2以降の一時アドレスをサポートします。
この機能を有効/無効にするには:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Windowsは、Windows Vista以降、MACアドレスベースのプライマリアドレスを使用しなくなりました。
Linux(NetworkManager):最近のバージョンのNetworkManagerは独自にRAを処理しますが、以下の2つの値はsysctlと同じ意味を持ちます(2 =プライバシアドレスを優先、1 =メインアドレスを優先) :
nmcli con modify <name> ipv6.ip6-privacy 2
また、1.2.0以降では、 main アドレスがMACベースではなくなり、代わりにすべてのネットワークで一意になるように改良されたモードが利用可能になりました(RFC 7217)。
(プライバシーアドレッシングはaddr-gen-modeと直交していることに注意してください。両方を使用することが可能です。)
サイドノート:1.4.0以降、NMではMACアドレス自体をランダム化することもできます。ネットワークごとに異なるMACを持つ場合はwifi.cloned-mac-address
をstable
に設定します(推奨)。または every 接続にランダムに割り当てる場合はrandom
を設定します(問題の原因となる可能性があります)。
すべての場合において、<name>
は接続名でなければなりません、例えばWiFi SSIDまたは"Wired Connection 1"
。すべてを一覧表示するにはnmcli con
を使用してください。
これを new 接続のデフォルトにするには、1.2.0以降で/etc/NetworkManager/NetworkManager.conf
を変更できます。
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
Linux(カーネルSLAAC)は一時アドレスをサポートしますが、デフォルトでは使用しません。それらはsysctlを通して起動することができます。
一時的なアドレスを有効にしてそれらを preferred 発信接続用にするには:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
一時的なアドレス生成を有効にするには、静的SLAACアドレスを優先されるようにします。
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
all
またはdefault
の部分は、特定のインタフェース名に置き換えることができます。例えばnet.ipv6.conf.eth0.use_tempaddr
。
(アドレスの割り当てを強制するためにip link set eth0 down && ip link set eth0 up
を使用しましたが、rdisc6 eth0
を実行するか、または次の定期的なルーター通知を数分間待つこともできます。)
Mac OS X - OS X 10.7以降、デフォルトで有効になっています。
sysctl -w net.inet6.ip6.use_tempaddr=1
有効な場合は、一時アドレスが優先されます。
FreeBSD:
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD:
sysctl -w net.inet6.ip6.use_tempaddr=1
仮住所の設定何も思いつきません。 autoconfアドレスが優先されるようです。 ifconfig
は、アドレスプロパティを一覧表示していないようです。
OpenBSD - 5.2 でサポートが追加されました。 5.3 でデフォルトで有効になっています。
ifconfig em0 autoconfprivacy
ifconfig
は、一時アドレスの横に "autoconfprivacy"を表示します。
構成に関する注意事項
Linux、OS X、およびすべてのBSDでは、設定を永続的にするために/etc/sysctl.conf
を編集します。
Windowsでは、変更は自動的に持続します。 (再起動するまでだけ継続させたい場合は、netsh
コマンドにstore=active
を追加できます。)
IPv6INT.netの IPv6オペレーティングシステム に一部基づいています。 IPv6に関する一般的な注意事項 もご覧ください。
ハードウェアアドレスがIPv6アドレスで使用されている場合、通常、ネットワークはIPv6ステートレス自動設定を使用しています。そのような場合は、単にあなた自身のアドレスサフィックスを選んで手動でIPv6を設定することができます。
ただし、手動で追加したアドレスにはハードウェア情報は含まれませんが、それでも静的なままになります(プライバシーアドレスとは異なり、アドレスが頻繁に変更されます)。また、静的アドレスは、2〜3台のデバイスを超えるネットワークでは問題になる可能性があります。
参考までに、これは特定のIPアドレス指定方式にのみ適用されます。おそらくあなた(またはあなたのISP)はIPv6自動設定を使用しています、それはそもそも達成するためにかなり大きなIPブロックを必要とします。解決策は、この機能を無効にすることです。 ISPはDHCPを使用してアドレスを割り当てることもできますが、これはIPv6でも可能です。