# Example configuration snippet for NetworkManager to # overwrite some default value for more privacy. # Drop this file for example to /etc/NetworkManager/conf.d/30-anon.conf # # See man NetworkManager.conf(5) for how default values # work. See man nm-settings(5) for the connection properties. # # # This enables some privacy setting by default. The defaults # apply only to settings that do not explicitly configure # a per-connection override. # That means, if the connection profile has # # $ nmcli connection show "$CON_NAME" | # grep '^\(connection.stable-id\|ipv6.addr-gen-mode\|ipv6.ip6-privacy\|802-11-wireless.cloned-mac-address\|802-11-wireless.mac-address-randomization\|802-3-ethernet.cloned-mac-address\|ipv4.dhcp-client-id\|ipv6.dhcp-duid\)' # connection.stable-id: -- # 802-3-ethernet.cloned-mac-address: -- # 802-11-wireless.cloned-mac-address: -- # 802-11-wireless.mac-address-randomization:default # ipv4.dhcp-client-id: -- # ipv6.ip6-privacy: -1 (unknown) # ipv6.addr-gen-mode: stable-privacy # ipv6.dhcp-duid: -- # # then the default values are inherited and thus both the MAC # address, IPv6 host identifier, and DHCP identifiers are randomized. # Also, ipv6 private addresses (RFC4941) are used in # addition. # # # The connection's stable-id is really a token associated with the identity # of the connection. It means, by setting it to different values, different # addresses and DHCP options are generated. # For some profiles it can make sense to reuse the same stable-id # (and thus share MAC address and IPv6 host identifier) for the duration # of the current boot, but still exclusive to the connection profile. # Thus, explicitly set the stable-id like: # # $ nmcli connection modify "$CON_NAME" connection.stable-id '${CONNECTION}/${BOOT}' # # ... or keep it stable across reboots, but still distinct per profile: # # $ nmcli connection modify "$CON_NAME" connection.stable-id '${CONNECTION}' # # ... or use the same stable IDs for a bunch of profiles # # $ nmcli connection modify "$CON_NAME" connection.stable-id 'my-home-wifi yada yada' # # ... or use the same IDs for a bunch of profiles, but only for the current boot # # $ nmcli connection modify "$CON_NAME" connection.stable-id 'my-home-wifi yada yada/${BOOT}' [device-anon] wifi.scan-rand-mac-address=yes [connection-anon] connection.stable-id=${RANDOM} ethernet.cloned-mac-address=stable wifi.cloned-mac-address=stable ipv6.ip6-privacy=2 # RFC 7844 "DHCP Anonymity Profiles" mandates in combination with # MAC address randomization: # connection.stable-id=${RANDOM} # ethernet.cloned-mac-address=stable # wifi.cloned-mac-address=stable # ipv4.dhcp-client-id=mac # ipv6.dhcp-duid=ll # In case, the interface cannot use MAC address randomization, # RFC 7844 recomments # connection.stable-id=${RANDOM} # ipv4.dhcp-client-id=stable # ipv6.dhcp-duid=stable-llt # See https://tools.ietf.org/html/rfc7844#section-3.5 # https://tools.ietf.org/html/rfc7844#section-4.3 # # In this example however, the defaults are set to a stable identifier # depending on the connection.stable-id. ipv4.dhcp-client-id=stable ipv6.dhcp-duid=stable-uuid