70
submitted 10 months ago by Molecular0079@lemmy.world to c/linux@lemmy.ml

cross-posted from: https://lemmy.world/post/3754933

While experimenting with ProtonVPN's Wireguard configs, I realized that my real IPv6 address was leaking while IPv4 was correctly going through the tunnel. How do I prevent this from happening?

I've already tried adding ::/0 to the AllowedIPs option and IPv6 is listed as disabled in the NetworkManager profile.

all 45 comments
sorted by: hot top controversial new old
[-] 30021190@lemmy.cloud.aboutcher.co.uk 33 points 10 months ago

The bad practise would be to entirely disable IPv6. #ShittySysAdmin

[-] empireOfLove@lemmy.one 24 points 10 months ago* (last edited 10 months ago)

Broke: disabling ipv6 because it's causing security holes with software not originally built for it

Woke: disabling ipv6 because hex ip strings are too hard to type

[-] 3laws@lemmy.world 12 points 10 months ago* (last edited 10 months ago)

Honest to Tux, I've never memorized a single IPv6 since its public release; ever.

[-] nothacking@discuss.tchncs.de 14 points 10 months ago

Well I memorized mine: ::1

[-] empireOfLove@lemmy.one 2 points 10 months ago

Me either. I have a text file on the desktop that I use to copy paste the loopback address on the rare rare times I actually need it lul

[-] 3laws@lemmy.world 8 points 10 months ago* (last edited 10 months ago)

The whole Silicon Valley, governments and economic infrastructure of the world hang by a thread made of bootleg shortcuts.

[-] Molecular0079@lemmy.world 6 points 10 months ago

Haha, yeah that's what ProtonVPN support recommended to me and I am not sure if I want to disable IPv6 globally like that. I feel (with my inexperienced brain) that there's gotta be a way to do it on a per connection basis.

[-] 30021190@lemmy.cloud.aboutcher.co.uk 2 points 10 months ago

Maybe try forcing only IPv4 connections for the traffic you want to keep private?

Your biggest leak maybe IPv6 DNS which is probably not that big of a deal really...

[-] dack@lemmy.world 2 points 10 months ago

In this case, disabling IPv6 is actually the right move. If the VPN provider doesn't support IPv6, then there's no way to allow to allow IPv6 Internet traffic without causing a leak/VPN bypass. If you block IPv6 via firewall or routing it to a dead-end, it will add delays as things try IPv6, timeout, and fall back to IPv4. If you just remove the IPv6 address from the Internet interface, you have to also make sure it doesn't get re-added by SLAAC/DHCPv6 or other interface changes (switching wifi networks, etc). As dumb as it seems, disabling IPv6 or switching to a provider that supports it are probably the best options.

[-] p1mrx@sh.itjust.works 5 points 10 months ago* (last edited 10 months ago)

In this case, disabling IPv6 is actually the right move. If the VPN provider doesn’t support IPv6, then there’s no way to allow to allow IPv6 Internet traffic without causing a leak/VPN bypass.

The right move for the VPN provider is to support IPv6. The right move for the user is to take their business to a provider that does.

[-] dack@lemmy.world 1 points 10 months ago

Yes, I agree - using a VPN that supports IPv6 is preferred. If they don't want to/can't change providers, then disabling IPv6 is the best way to prevent IPv6 leaks without negatively affecting network performance.

[-] dotdotdot@kerala.party 2 points 10 months ago

I do the same, but would like to know the correct way to hide ipv6

[-] fuckwit_mcbumcrumble@lemmy.world -1 points 10 months ago

Unironically that's one thing we do to anonymize traffic at work. We could do NAT via IPV6 but what's the point when IPV4 already helps mask who is doing what in the office.

[-] Engywuck@lemm.ee -5 points 10 months ago* (last edited 10 months ago)

IPv6 is broken by design /s.

[-] wgs@lemmy.sdf.org 27 points 10 months ago* (last edited 10 months ago)

IPv4 and IPv6 are two different network stacks. Your IPv4 stack is hidden behind wireguard, but not the IPv6 one.

The correct way to fix your issue is to setup a second witeguard tunnel for IPv6, and route IPv6 traffic through it.

Edit: many comments advise to block outbound IPv6 traffic. Don't do that! It will add latency to all your requests as you will have to wait for them to timeout.

[-] Molecular0079@lemmy.world 2 points 10 months ago

Unfortunately I can't change the tunnel as it is provided by ProtonVPN.

[-] wgs@lemmy.sdf.org 5 points 10 months ago

Apparently they advise to disable IPv6. I'm a bit disappointed 😞

[-] notabot@lemm.ee 2 points 10 months ago

If you disable IPv6 at the kernel level there's no extra latency as nothing even tries to connect to an IPv6 address. It's a shame to have to do it, but does fix the issue.

[-] wgs@lemmy.sdf.org 1 points 10 months ago

Disabling it is fine indeed, but I saw many comments advising to block outbound traffic, so I warned against that.

[-] Dumbkid@lemmy.dbzer0.com 9 points 10 months ago

My ISP doesn't even support IPv6

[-] Asymptote@lemmy.dbzer0.com 5 points 10 months ago

My country doesn't really support IPv6.

[-] spagnod@lemmy.world 3 points 10 months ago

Vodafone gang!

[-] frebib@social.nerdhouse.io 1 points 10 months ago

Time to get a better ISP

[-] dr_robot@kbin.social 7 points 10 months ago

Wireguard easily supports dual stack configuration on a single interface, but the VPN server must also have IPv6 enabled. I use AirVPN and I get both IPv6 and IPv4 with a single wireguard tunnel. In addition to the ::/0 route you also need a static IPv6 address for the wireguard interface. This address must be provided to you by ProtonVPN.

If that's not possible, the only solution is to entirely disable IPv6.

[-] Syrup@lemmy.world 1 points 10 months ago

Yes, agree with you, especially your last comment: disable entirely IPv6

[-] nothacking@discuss.tchncs.de 7 points 10 months ago

The true enterprise solution is to disable IPv6, if you disable IPv4 you might be surprised to see how many sites and services, even those run by large companies require IPv4.

[-] authed@lemmy.ml 3 points 10 months ago

I just disable ipv6 on my router to simply my firewall and such.... Won't use it until necessary

[-] PlexSheep@feddit.de 7 points 10 months ago

This is a real backwards approach to this.

[-] authed@lemmy.ml 5 points 10 months ago

Why? I don't miss anything

[-] wgs@lemmy.sdf.org 9 points 10 months ago

You're missing a chance to help cool tech moving forward :)

[-] igorette@lemmy.ml 2 points 10 months ago
[-] Presi300@lemmy.world 2 points 10 months ago

Just disable IPv6, if you don't wanna, try a configuration tool like PiVPN, which can setup wireguard automatically

[-] wmassingham@lemmy.world 2 points 10 months ago

You can either route IPv6 through the tunnel, or if the tunnel doesn't support it, you have to block it somehow if you don't want it going out to the Internet. You can do that by creating a firewall rule to block it on your host or network, or by disabling IPv6 entirely at the host or network level.

[-] Molecular0079@lemmy.world 1 points 10 months ago

You can either route IPv6 through the tunnel

That's what I am trying to do with the ::/0 option but it doesn't seem to work. I am guessing because the tunnel itself doesn't have IPv6?

[-] Max_P@lemmy.max-p.me 1 points 10 months ago

Add a dummy IPv6 on the WireGuard interface, like a completely random fd00::/128 address on it so it thinks it's IPv6 enabled. It'll then just go nowhere as the remote end won't accept it. You can then drop it at the firewall level before it goes into the tunnel to save some bandwidth.

[-] Molecular0079@lemmy.world 3 points 10 months ago* (last edited 10 months ago)

Thanks for the suggestion! It gave me the idea to try setting the connection profile's IPv6 setting to either Link Local or Ignored. Both those options, along with the ::/0 in AllowedIPs, seem to work according to ipleak.net, but I am unsure what the bigger ramifications of this change are.

[-] Max_P@lemmy.max-p.me 3 points 10 months ago

It's going to still send that IPv6 traffic through the tunnel and get discarded at the other end but that's about it. You can firewall that off if you want, ideally with a reject rule so things don't have to timeout before realizing it goes nowhere.

[-] sounddrill@lemmy.antemeridiem.xyz -1 points 10 months ago

I use a magisk module to disable ipv6

[-] zwekihoyy@lemmy.ml 0 points 10 months ago

decreasing security for a... privacy(?) increase 🤔

[-] sounddrill@lemmy.antemeridiem.xyz 2 points 10 months ago

We're not talking about privacy in that context here

We're trying to patch a leaking ipv6 which I gave my solution to.

Don't use it if you don't like it lmao

[-] zwekihoyy@lemmy.ml 0 points 10 months ago

I suppose but my point was that rooting your device decreases security immensely via crippling the android security model.

[-] sounddrill@lemmy.antemeridiem.xyz 3 points 10 months ago

That is true... but it's always about your threat model

Here, the ipv6 leaks are the priority

this post was submitted on 24 Aug 2023
70 points (98.6% liked)

Linux

45595 readers
661 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS