-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
The current setup is allowing data leaks in a dual stack network over IPv6. Disabling IPv6 in the docker network should solve this. #2978
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
Docker seems to be utilizing IPv6 by default in a dual stack environment. This is allowing potential DNS and traffic leaks bypassing the vpn. I believe the changes made for the configuration and disabling IPv6 by default on the networks is a good option to solve this. I am basing this information off of TrueNAS 25.04 docker configuration currently but will be testing more on and Ubuntu 24.04 install as well.
Added a best practices to check for VPN leaks and information for disabling (which should probably be done by default) or enabling IPv6
A fix for the previous IPv6 Dual Stack Network configuration for Docker Compose.
During testing I learned that I had configured the IPv6 disable change incorrectly for Docker Compose. The correct changes have been committed and function should be correct.
|
This would likely break Mullvad and OVPN setups: docker-transmission-openvpn/docs/provider-specific.md Lines 66 to 81 in dad76c5
|
|
Simple enough to put in the documentation to comment out or remove that section for Mullvad or OVPN users. Currently anyone who is using the default configuration in a dual stack environment is likely leaking DNS at the very least and possibly more. Unless there is another way to disable IPv6 in the container. I also have to assume that Mullvad and OVPN are able to work over an IPv4 connection since there are still ISP's who do have not implemented IPv6 on their network. This change only disables IPv6 from the container to the local network, inside the container IPv6 should still continue to function. |
sysctls:
- "net.ipv6.conf.all.disable_ipv6=1" # 0 for Mullvad and OVPN usersWould this not be easier than creating a new network? |
|
A new container always creates a new network unless it is implicitly told to join an existing network so really the code change only prevents the network from passing data. The issue with Mullvad and OVPN are probably stemming from earlier versions of docker that did not enable IPv6 by default for whatever reason. Now that it does we have to swing in the opposite direction and disable the connectivity. On top of that if we disable IPv6 in the container then we lose the ability to use IPv6 between containers should that be desired. You could easily create a network that has IPv6 availability but no true network access and attach both to the container. Then use IPv6 to communicate between multiple containers yet restrict outside access to IPv6 from the transmission-openvpn container to the internet itself. I am sure there are multiple ways to do this but it's difficult to choose which one makes the most sense based on the particular situation. IMHO using the network to do so prevents the container from even having an opportunity to receive an IPv6 address at all. |
Breaking change
Proposed change
Type of change
Additional information
fixes #relates to #https://...Checklist
If user exposed functionality or configuration variables are added/changed: