# 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 -f 'connection.stable-id,802-11-wireless.cloned-mac-address,802-11-wireless.mac-address-randomization,802-3-ethernet.cloned-mac-address,ipv4.dhcp-client-id,ipv6.addr-gen-mode,ipv6.dhcp-duid,ipv6.ip6-privacy' connection show "$CON_NAME" # connection.stable-id: -- # 802-11-wireless.cloned-mac-address: -- # 802-11-wireless.mac-address-randomization: default # 802-3-ethernet.cloned-mac-address: -- # ipv4.dhcp-client-id: -- # ipv6.addr-gen-mode: stable-privacy # ipv6.dhcp-duid: -- # ipv6.ip6-privacy: -1 (unknown) # # 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-30-anon] wifi.scan-rand-mac-address=yes [connection-30-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 recommends # 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