내 Mac에서 각 IPv6 주소 에는 특정 컴퓨터 ( 라우터가 아닌) 의 MAC 주소가 포함됩니다 . ipv6-test.com 과 같은 사이트는 사이트를 보여줄뿐만 아니라 Apple 컴퓨터에 속한다고 말합니다.
이것은 슈퍼 쿠키처럼 느껴지며 다른 운영 체제에도 적용될 수 있습니다. MAC 주소가 노출되지 않도록하려면 어떻게해야합니까?
배경 : MAC 주소가 제대로 보이지 않습니다 . 좋아요 2001:0db8:1:2:60:8ff:fe52:f9d8
:
- 마지막 64 비트 (호스트 식별자)를 가져와 앞에 0을 추가하십시오
0060:08ff:fe52:f9d8
. ff:fe
중간 에서 부품을 제거하십시오. 이 바이트는하지가있는 경우, 다음 에는 MAC 주소가 없습니다.- 첫 번째 바이트의 경우 : 두 번째 하위 비트 (범용 / 로컬 비트; 비트가 1이면 0으로 설정하고 0이면 1로 설정)를 보완합니다. 따라서 :
0x00
(00000000)은0x02
(00000010)이됩니다. - Presto :
60:8ff:fe52:f9d8
MAC 주소로 다시 변환됩니다02:60:08:52:f9:d8
.
참고 : MacOS 10.12 Sierra 이후 Ars Technica에 따르면 Apple은 MAC 주소를 기반으로하지 않는 안정적인 주소를 생성하는 새로운 방법을 채택했습니다 .
이 질문은 금주 의 슈퍼 사용자 질문입니다 . 자세한 내용
은 블로그 항목 을 읽 거나 블로그에 직접 참여 하십시오.
답변
이는 IPv6에 대한 두 가지 확장으로 해결됩니다.
- RFC 4941 ( “개인 정보 주소 지정”)은 아웃 바운드 연결에서 임의로 생성 된 임시 주소 (몇 시간마다 회전)를 사용할 수 있도록합니다.
- RFC 7217을 사용하면 정보를 공개하지 않는 불투명 해시에서 기본 정적 주소를 생성 할 수 있습니다.
널리 사용되는 운영 체제에서 하나 이상이지만 점차 두 가지 방법 모두 지원됩니다.
이러한 기능은 직교합니다. 원하는 경우 두 가지를 동시에 사용할 수 있습니다.
안정적인 개인 주소
일부 운영 체제에서 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
비밀을 설정하면 모든 네트워크 인터페이스에 대해이 모드가 자동으로 활성화됩니다. 기능이 활성화되어 있는지 확인하려면에서 “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를 자체적으로 처리하지만 아래 두 값은 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 주소 자체를 무작위화할 수 있습니다. 설정
wifi.cloned-mac-address
하기 위해stable
모든 네트워크 (권장)에 대해 서로 다른 MAC을 가지고, 또는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) 는 임시 주소를 지원하지만 기본적으로는 사용하지 않습니다. sysctls를 통해 활성화 할 수 있습니다.
임시 주소를 활성화 하고 발신 연결에 선호 하도록하려면 :
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
주소 속성을 표시하지 않는 것 같습니다. -
OpenBSD – 5.2에 추가 된 지원 ; 5.3 에서 기본적으로 활성화되고 선호됩니다 .
ifconfig em0 autoconfprivacy
ifconfig
임시 주소 옆에 “autoconfprivacy”가 표시됩니다.
구성에 대한 참고 사항 :
-
Linux, OS X 및 모든 BSD
/etc/sysctl.conf
에서 설정을 영구적으로 편집 하십시오. -
Windows에서는 변경 사항이 자동으로 유지됩니다. ( 재부팅 할 때까지만 지속
store=active
되도록하려면netsh
명령에 추가 할 수 있습니다 .)
IPv6INT.net의 IPv6 운영 체제 를 부분적으로 기반으로 합니다 . 참조 일반 IPv6의 노트
하드웨어 주소가 IPv6 주소에 사용되면 일반적으로 네트워크에서 IPv6 Stateless Autoconfiguration을 사용한다는 의미입니다. 이러한 경우, 고유 한 주소 접미사를 선택하고 IPv6을 수동으로 구성 할 수 있습니다.
그러나 수동으로 추가 한 주소에 하드웨어 정보가없는 경우에도 주소가 자주 변경되는 개인 정보 주소 지정과 달리 고정되어 있습니다. 또한 고정 주소는 2 ~ 3 개 장치보다 큰 네트워크에서 문제가 될 수 있습니다.
답변
참고로, 이는 특정 IP 주소 지정 체계에만 적용됩니다. 귀하 (또는 귀하의 ISP)가 IPv6 자동 구성을 사용하고있을 가능성이 높으며,이를 위해서는 처음에 상당히 많은 IP 블록이 필요합니다. 해결책은이 기능을 끄는 것입니다. ISP는 DHCP를 사용하여 주소를 할당 할 수도 있습니다. IPv6에서도 가능합니다.