I think I am getting close to finally pulling the trigger on switching my router to OpenWRT, but before I do, I want to make sure I know how to have it set up first and foremost for maximum privacy; after all, it is not as though privacy can be put back in the bottle after the fact.
My "threat" model (assuming I am using the terminology correctly) is I think best summarised by the scenario of taking my router to my neighbours' house (if he uses the same ISP), plugging it in as his router, and the ISP having no possible way of identifying that any hardware (router, or ideally devices as well) on his connexion was previously on mine.
From what I have read, I think I mainly need to have the hardware and OS image set up to randomise all unique identifiers on boot; things like:
- MAC
- DUID
/var/lib/dbus/machine-id
/etc/machine-id
- hostname? (is this visible on WAN interface?)
These seem to be the main sources of persistent identification across reboots.
If I am missing anything similar to these or otherwise a concern please tell me.
For an example of how serious I am about this:, I plan to null out the external facing MAC in the NAND factory config area, so that in case I somehow break/rename/delete the config file or it gets accidentally reset during an update, my router will always be forced to default to privacy (MAC randomisation at boot).
Likewise, I may just leave IPv6 off at first until I get a better sense of the privacy implications of IPv6, and how to prevent downstream devices from leaking unique information—frankly, from what I have read about IPv6: from the use of MAC addresses in certain IPv6 address modes, the addition of more unique IDs (DUID) than there were before (MAC), the frequent utter dismissal of any benefits of NAT in many discussions surrounding IPv6, to the lack of privacy options in its initial design, I am skeptical of how I could ever trust IPv6.
Less serious, but still a privacy/security consideration; I want to have the DNS server on the router force all DNS traffic into a DNS-over-TLS tunnel. Basically, my ISP should never see an unencrypted DNS request, except if a request is needed to bootstrap the TLS handshake for DoT.
Also, if there are any suggestions on how the router could ban downstream devices from using IPv6 anti-privacy address generation methods, like those which keep the same suffix between networks or literally include the device's own MAC in the suffix, that too would be appreciated.
Some additional plans that are less privacy related, maybe best answered in a future thread
-
Store config changes, etc on USB flash drive to avoid NAND wear, especially if keeping logs
-
802.1x and WPA-Enterprise, maybe I could test this on a separate SSID?
-
Packet inspection; being able to temporarily send a copy of traffic to another device for analysis in wireshark
- Ex: Logging all local IPv6 addresses included in external traffic, to get a sense of what the ISP sees
-
DNSCrypt, in case I want to resolve via OpenNIC; fewer servers there support DoT