IPv6を使用しているときにMACアドレスを公開しないようにするにはどうすればよいですか?


140

私のMacでは、各IPv6アドレスに特定のコンピューター(ルーターではない)のMACアドレスが含まれています。ipv6-test.comなどのサイトはそれを表示するだけでなく、Appleコンピューターに属していることを教えてくれます。

これはスーパーCookieのように感じられ、他のオペレーティングシステムにも当てはまる場合があります。MACアドレスが公開されないようにするにはどうすればよいですか?

背景:MACアドレスがわかりにくい。のような2001:0db8:1:2:60:8ff:fe52:f9d8

  • 最後の64ビット(ホスト識別子)を取得し、先行ゼロを追加します0060:08ff:fe52:f9d8
  • ff:fe部品を真ん中から剥ぎ取ります。これらのバイトが存在しない場合、MACアドレスありません。
  • 最初のバイトの場合:2番目の下位ビットを補完します(ユニバーサル/ローカルビット。ビットが1の場合は0にし、0の場合は1にします)。したがって:0x00(00000000)は0x02(00000010)になります。
  • Presto:60:8ff:fe52:f9d8MACアドレスに変換します02:60:08:52:f9:d8

注:macOS 10.12 Sierra以降、Ars Technicaによると、AppleはMACアドレスに基づいていない安定したアドレスを生成する新しい方法を採用しました


この質問は今週のスーパーユーザー質問でした。詳細について
ブログエントリを読むか自分でブログに投稿してください


14
うわー、私はIPV6についてそれを知らなかった、素晴らしい発見。
スーパーシリアル

18
まあ、もちろん、Appleコンピューターを示しています。結局、これはMACアドレスです。
グレアムペロー

@Kronos、ブログのエントリに画像がありません。blog.superuser.com/2011/02/11/…URLに「.stack」を追加すると、i.stack.imgur.com / RNXoA.png
Arjan

...しかし、@。KronoS、「。stack」を追加すると、i.imgur.com / vjK73.png(okay)vs i.stack.imgur.com/vjK73.png(良くない)。言い換えれば、おそらく現在使用していないブログ上のすべての画像を.stack再アップロードする必要があります...?
アルジャン

@Arjanよく分かりません。これを確認する必要があります。ブログにアップロードされたすべての画像がスタックのimgurアカウントに自動的にアップロードされる機能が欲しいです。通常のサイトが現在行うことと同様に
ジェームズメルツ

回答:


134

これは、IPv6の2つの拡張機能によって解決されます。

  • RFC 4941(別名「プライバシーアドレッシング」)では、アウトバウンド接続で一時的にランダムに生成されたアドレス(数時間ごとにローテーションされる)を使用できます。
  • RFC 7217では、情報を公開しない不透明なハッシュからプライマリの静的アドレスを生成できます。

少なくとも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_secretsysctlに保存する必要があります。永続化するには、次のように配置する/etc/sysctl.d/50-rfc7217.confか、同様の方法で配置できます。

    net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
    

    シークレットを設定すると、すべてのネットワークインターフェイスに対してこのモードが自動的にアクティブになります。機能がアクティブかどうかを確認するには、で「addrgenmode stable_secret」ip -d link、またはで値「2」を探しますsysctl net.ipv6.conf.<ifname>.addr_gen_mode

一時的なプライベートアドレス

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から、より良いモードが使用可能になりました。これにより、メインアドレスがMACベースではなく、すべてのネットワークに固有に変更されます(RFC 7217)。

    (プライバシーのアドレス指定はaddr-gen-modeに直交していることに注意してください。両方を使用することができます。)

    補足:1.4.0の時点で、NMはMACアドレス自体のランダム化も許可しています。ネットワークごとに異なるMACを持つように設定wifi.cloned-mac-addressするstable(推奨)かrandom、接続ごとにランダム化するように設定します(問題が発生する可能性があります)。

    いずれの場合も、<name>WiFi SSIDやなどの接続名にする必要があります"Wired Connection 1"nmcli conすべてをリストするために使用します。

    これを新しい接続のデフォルトにするために、1.2.0の時点で変更できます/etc/NetworkManager/NetworkManager.conf

     [connection]
     ipv6.addr-gen-mode=stable-privacy
     wifi.cloned-mac-address=stable
    
  • Linux(カーネルSLAAC)は一時アドレスをサポートしますが、デフォルトでは一時アドレスを使用しません。sysctlを使用してアクティブ化できます。

    一時アドレスを有効にして、発信接続に優先させるには:

     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 Lion以降ではデフォルトで有効になっています:

     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アドレスプロパティを一覧表示するように表示されません。

  • OpenBSD5.2で追加されたサポート。5.3ではデフォルトで有効になっており、優先されます。

     ifconfig em0 autoconfprivacy
    

    ifconfig 一時アドレスの横に「autoconfprivacy」と表示されます。

設定に関する注意:

  • Linux、OS X、およびすべてのBSDでは、編集/etc/sysctl.confして設定を永続的にします。

  • Windowsでは、変更は自動的に保持されます。(再起動するまでコマンドを継続する場合はstore=activenetshコマンドに追加できます。)


IPv6INT.netのIPv6オペレーティングシステムに部分的に基づいています一般的なIPv6に関する注意も参照してください。


ハードウェアアドレスがIPv6アドレスで使用されている場合、通常、ネットワークがIPv6ステートレス自動構成を使用していることを意味します。このような場合、独自のアドレスサフィックスを選択し、IPv6を手動で構成できます。

ただし、手動で追加されたアドレスにはハードウェア情報はありませんが、それでも静的なままです(アドレスを頻繁に変更するプライバシーアドレス指定とは異なります)。また、2〜3台のデバイスよりも大きいネットワークでは、静的アドレスが問題になる可能性があります。


2
MacとFRITZ!Box 7340ルーターに対する素晴らしい副作用:で2つのアドレスを取得しifconfigます。発信接続では、時々autoconf temporary変化するランダムアドレスを使用します。良い!ただし、着信接続(ルーターで開かれた場合)については、引き続きautoconfアドレスを使用できます。DNSレコードでそれを公開しても構いません(ただし、そのために別のアドレスを選択することもできます)。
アルジャン

ああ、whois- spammingの後、IPv6スパミングを取得します:dig -t AAAA www.v6.facebook.com ;-)
Arjan

6
@Arjan:に沿ったIPv6アドレスは覚えるのにそれほどde4d:b33f悪くありません。また、それらは所有者によって適切に配置されwhoisますが、スパムはa)迷惑であり、b)ドメインを制御できない外部者によって引き起こされます。
-grawity

1
余談ですが、上記の(の一部)は、OSに一時アドレスを優先するように指示するかもしれませんが、アプリケーションはこの優先設定をオーバーライドできます
アルジャン

一時的なアドレス(IPv6プライバシー)を使用するAFAICSは、40秒という非常に短い最大有効期間を持つルーターアドバタイズメントにより、一部のISPでは事実上使用できません。これはカーネル設定を上書きします。Linuxは、参照ip aのためにpreferred_lft。したがってssh、この機能を有効にすると、接続は40秒ごとに壊れます。各ダウンロードも40秒以内に完了する必要があるため、通常のWebサーファーにとっても使用できません。
ティノ

1

参考までに、これは特定のIPアドレス指定スキームにのみ適用されます。おそらくあなた(またはあなたのISP)がIPv6自動構成を使用しているため、そもそも達成するにはかなり大きなIPブロックが必要です。解決策は、この機能をオフにすることです。ISPはDHCPを使用してアドレスを割り当てることもできますが、これはIPv6でも可能です。


3
大きなブロックの場合:「一般割り当て」のウィキペディアによるRIRはISPに小さなブロックを割り当て、ISPがこれを/ 48サイズの部分でクライアントに配布します。実際、私のISPは/ 48プレフィックスを消費者グレードのサブスクライバーにも割り当てます。奇妙ではありませんか?
アルジャン

3
次に、ウィキペディアとアリンのドラフトIPv6アドレス指定計画のせいにしますすべての顧客は、65,000を超えるサブネットが必要であることを示すことができない限り、1つの/ 48を受け取ります。しかし、消費者顧客が多い場合は、/ 56を個人の居住地に割り当てることもできます。これはまだ必要以上です。;-)しかし、状況は変わる可能性があります。明らかに、顧客はこれに基づいてモデム/ルーターを構成していますが、私のISPはこれを約束しませんでした。
アルジャン

3
アリンが「顧客」と言うとき、それは「ISP」を意味すると思います。すべてのISP(非常に大きなものを含む)は、ネットワーク全体に単一の/ 64を割り当てて、それで処理できます。これ以上のルーティングは必要ありません。しかし、兆単位のIPアドレスのブロックをジョー平均的な住宅の顧客に割り当てることは、まったく無謀です。
アーニーダンバー

3
どうやら、少なくとも割り当てるには一つの理由/56「一つだけを配るISPが/64。まったくサブネットからあなたを防ぐことが場合は/64、WANインターフェイス上で、あなたはあなたのLAN(複数可)にまともなIPv6を得ることは決してないだろう、これがあります。 ISPに障害があり、適切な量(/48または/56)のアドレスを提供することでこれを修正する必要があります。」
アルジャン14

7
/ 64は「かなり大きなブロック」ではありません。これは、サブネットの最小の合理的な割り当てブロックです。IPv6は誰防ぐために大部分で設計されたことをいくつかのIPv6機能は、サブネットが/ 64であることを必要とし、あなたは忘れて(または実現していない)している、これまで二度とアドレスが不足します。貴重な住所を保存する必要があるという古い考えから心を解放する必要があります。IPv6には場所がありません。
マイケルハンプトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.