this post was submitted on 16 Aug 2024
689 points (98.9% liked)

Technology

59989 readers
2101 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 2 years ago
MODERATORS
 

archive

If you have the August 13, 2024—KB5041580 update. You're good.

you are viewing a single comment's thread
view the rest of the comments
[–] osaerisxero@kbin.melroy.org 93 points 4 months ago (11 children)

As a networking nerd, I am endlessly frustrated with how many otherwise smart people are just 'fuck ipv6 lmao'

Giving me goddamn flashbacks to this https://www.youtube.com/watch?v=v26BAlfWBm8

[–] pivot_root@lemmy.world 86 points 4 months ago
[–] Trainguyrom@reddthat.com 45 points 4 months ago (3 children)

IPv6 genuinely made some really good decisions in its design, but I do question the default "no NAT, no private network prefixes" mentality since that's not going to work so well for average Janes and Joes

[–] pivot_root@lemmy.world 55 points 4 months ago* (last edited 4 months ago) (1 children)

No NAT doesn't mean no firewall. It just means that you both don't have to deal with NAT fuckery or the various hacks meant to punch a hole through it.

Behind NAT, hosting multiple instances of some service that uses fixed port numbers requires a load-balancer or proxy that supports virtual hosts. Behind CGNAT, good luck hosting anything.

For "just works" peer to peer services like playing an online co-op game with a friend, users can't be expected to understand what port forwarding is, let alone how it works. So, we have UPnP for that... except, it doesn't work behind double NAT, and it's a gaping security hole because you can expose arbitrary ports of other devices if the router isn't set up to ignore those requests. Or, if that's not enough of a bad idea, we have clever abuse of IP packets to trick two routers into thinking they each initiated an outbound connection with the other.

[–] yournamehere@lemm.ee 3 points 4 months ago (3 children)

can you tell me if any device in an IPv6 LAN can just assign itself more IP v6 adresses and thereby bypass any fw rule?

[–] pivot_root@lemmy.world 10 points 4 months ago* (last edited 4 months ago) (2 children)

IPv6 has two main types of non-broadcast addresses to think about: link-local (fe80::) and public.

A device can self-assign a link-local address, but it only provides direct access to other devices connected to the same physical network. This would be used for peer discovery, such as asking every device if they are capable of acting as a router.

Once it finds the router, there are two ways it can get an IP address that can reach the wider internet: SLAAC and DHCPv6. SLAAC involves the device picking its own unique address from the block of addresses the router advertises itself as owning, which is likely what you're concerned about. One option for ensuring a device can't just pick a different address and pretend to be a new device is by giving it a subset of the router's full public address space to work with, so no matter what address it picks, it always picks something within a range exclusively assigned to it.

Edit: I butchered the explanation by tying to simplify it. Rewrote it to try again.

[–] r00ty@kbin.life 6 points 4 months ago (4 children)

In most cases, the router advertises the prefix, and the devices choose their own IPv6. Unless you run DHCPv6 (which really no-one does in reality, I don't even think android will use it if present).

It doesn't allow firewall bypass though, as the other commenter noted.

[–] Blaster_M@lemmy.world 3 points 4 months ago* (last edited 4 months ago) (1 children)

DHCPv6 is very much in use with large ISPs. SLAAC only lets you get a single /64 (one network) from the ISP, but if you use DHCPv6, which is also provided ISP side, you can often request a /60 to get you 16 networks to use. Also, DHCPv6 doesn't base the IPv6 address off the MAC address like SLAAC does, so it is better for device privacy.

Why Android does not support DHCPv6 is beyond me. It's honestly quite ridiculous as it makes configuring LAN-side DNS and other things a lot easier.

[–] r00ty@kbin.life 4 points 4 months ago

Dhcpv6-pd is used by isps for prefix delegation, which most routers support now (not so when my isp first started with it).

But for advertising prefixes on a lan most networks use router adverts.

They're different use cases though.

[–] Trainguyrom@reddthat.com 2 points 4 months ago (2 children)

Unless you run DHCPv6 (which really no-one does in reality)

Question for you since I have very little real world IPv6 experience: generally you can provide a lot of useful network information to clients via DHCP, such as the DNS server, autoconfig info for IP phones, etc. how does a network operator ensure that clients get this information if it's not using DHCPv6?

[–] r00ty@kbin.life 2 points 4 months ago (1 children)

You can include some information in router advertisements, likely there will be rfcs for more. Not sure of the full list of stuff you can advertise.

For sure I'm quite sure I had dns servers configured this way. I'll check when not on a phone to see what options there are.

[–] pivot_root@lemmy.world 1 points 4 months ago* (last edited 4 months ago) (1 children)

If I recall correctly, you can do stateless DHCPv6 to just hand down a DNS server without also managing the devices' IP addresses.

[–] r00ty@kbin.life 3 points 4 months ago (1 children)

You can, and there's a specific flag to set on nd/ra to tell the client to get other information from djcpv6. But so far I've not made it work and also, it likely won't work on android.

Really the way forward is for routers and devices to implement the same options as exist on dhcp. But, time will tell how that gets on.

This is a weakness of ipv6 but it's really the lack of widespread implementation that's behind this. If we were all using it, there would be more onus to get this stuff working.

[–] pivot_root@lemmy.world 3 points 4 months ago (1 children)

What exactly does Google do for Android, then? Hardcode the IPv6 address of their own DNS service, or fall back to pulling AAAA records over IPv4?

[–] Archer@lemmy.world 2 points 4 months ago

Say that you can use prefix delegation. No, really, you can look at the bug report: https://issuetracker.google.com/issues/36949085?pli=1 . It’s absolutely infuriating. Especially when iOS does support it

[–] Blaster_M@lemmy.world 1 points 4 months ago

DHCPv6 is very definitely used with ipv6 and isps, as DHCPv6-PD is needed anyway to send prefix allocations to the router

DHCPv6 does the same thing DHCP does, just for v6 addresses. This includes pushing domain suffix and dns servers.

There is also Router Advertisement, which tells the discovering client that it is a router, what the prefix is, if there is a DHCPv6 server, and what the DNS is. As an alternative to DHCPv6, the client can set their own address based on the combination of the prefix and their MAC address, the SLAAC address. The way IPv6 routing tables are built, the router can always find a route by asking upstream on the address, and upstream only has to forward downstream on an address.

[–] pivot_root@lemmy.world 2 points 4 months ago (1 children)

Yeah, I butchered my answer by trying to simplify the process. I rewrote it in a hopefully more accurate but still simple to understand way.

[–] r00ty@kbin.life 3 points 4 months ago* (last edited 4 months ago) (1 children)

Yep, it's all good. In my opinion, IPv6 routers should just be dropping incoming connections by default. If you want to run services you give your machine a static IPv6 and open ports on that IP/port specifically. It's actually easier than NAT because you don't need to translate ports and each IP can use the same ports (multiple web servers on 80/443).

I do agree that the average joe is going to expect NAT level security by default and that would provide that.

[–] pivot_root@lemmy.world 3 points 4 months ago

I absolutely agree with you on all points here.

From a security perspective, allowing all incoming connections by default is unnecessarily exposing devices to a hostile environment. The average Joe isn't going to understand the risk unless somebody explained it as "it's like posting your home address on 4chan and hoping nobody manages to pick your front door lock," and they're likely never going to take advantage of the benefits that come from having their device be globally reachable.

Another benefit to not having to deal with NAT is that you can actually host services using the same protocol (e.g. HTTP) on multiple machines without having to resort to alternate port numbers or using a proxy with virtual host support.

[–] yournamehere@lemm.ee 2 points 4 months ago (1 children)

ok. thank you. stuff like this just made me wonder: https://en.avm.de/service/knowledge-base/dok/FRITZ-Box-7590/573_Configuring-IPv6-in-the-FRITZ-Box/

for linux etc they suggest du enable dhcpv6 and i cant figure out where they adress this in their firewalls. still learning.

[–] r00ty@kbin.life 3 points 4 months ago (1 children)

Best thing to do to test the firewall is run some kind of server and try to connect to your ipv6 on that port.

Like I've said in other posts, routers really should block incoming connections by default. But it's not always the case that they do.

[–] yournamehere@lemm.ee 1 points 4 months ago
[–] yournamehere@lemm.ee 2 points 4 months ago
[–] LaggyKar@programming.dev 5 points 4 months ago (1 children)

How would that bypass the firewall?

[–] r00ty@kbin.life 3 points 4 months ago (1 children)

Honestly, I think most fear of IPv6 is just borne out of ignorance and assigning their understanding of IPv4 onto IPv6 and making assumptions.

[–] pivot_root@lemmy.world 5 points 4 months ago (1 children)

assigning their understanding of IPv4 onto IPv6 and making assumptions.

This is also what makes it more difficult to learn, unfortunately.

load more comments (1 replies)
[–] Blaster_M@lemmy.world 3 points 4 months ago (3 children)

Not if your firewall router is setup right (strict mac address filtering)

load more comments (3 replies)
[–] r00ty@kbin.life 15 points 4 months ago (1 children)

Routers simply need to block incoming unestablished packets (all modern routers allow for this) to replicate NAT security without NAT translation. Then you just punch holes through on IP addresses and ports you want to run services on and be done with it.

Now, some home routers aren't doing this by default, but they absolutely should be. That's just router software designers being bad, not IPv6's fault, and would get ironed out pretty quick if there was mass adoption and IPv4 became the secondary system.

To be clear, this is not a reason not to be adopting IPv6.

[–] Archer@lemmy.world 2 points 4 months ago (1 children)

Routers simply need to block incoming unestablished packets

This is called a firewall

[–] r00ty@kbin.life 1 points 4 months ago

Yes, and no. A firewall is still a firewall if it is configured to have all ports open. The Linux kernel firewall is still active, even though its default configuration is, everything open.

My point is, for some reason there are some that are not configured to block incoming IPv6 by default. When that should be the standard home/consumer router default setting. Then the user can open ports to ips as they need them.

[–] EncryptKeeper@lemmy.world 5 points 4 months ago* (last edited 4 months ago) (2 children)

Why would you think it wouldn’t work for the average Jane and Joe?

[–] Blackmist@feddit.uk 6 points 4 months ago (1 children)

Not the person you were replying too, but I was there when we had modems and raw-dogged the internet.

The average person clicks "Yes" on everything without reading it, has no idea what a firewall is, and they never update anything unless it does it without asking.

Having things accessible from outside your network is great if you're a network nerd and that's what you want, but most people are going to be in a world of unprotected shit. Especially in a world of pointlessly online devices. I don't trust any of those fuckers to have their shit in order.

[–] pivot_root@lemmy.world 4 points 4 months ago (1 children)

I would assume/hope the default setting for a consumer router would still be to drop incoming connections. That should suffice for the average person as long as ISPs don't make it easy to disable that without actually understanding what the consequences are.

[–] Blackmist@feddit.uk 3 points 4 months ago (1 children)

I would also assume that to be the default, but unfortunately the first Google search for "why doesn't my smart fridge work from my phone when I leave the house" will be a set of instructions for turning that feature off.

NATs and port forwarding is annoying, but it's also very manual, and only lets you fuck up one device at a time.

[–] Blaster_M@lemmy.world 3 points 4 months ago (1 children)

Then the instructions are bad. They should be how to open the firewall port for that device, which is almost the same as setting a NAT port forward, with the same limitation of only exposing one device.

[–] Blackmist@feddit.uk 2 points 4 months ago (1 children)

Yeah, but that's going to involve knowing what the device is called on the router, or knowing what the address is.

I'm afraid the great age of computer literacy has come and gone.

If anything it makes me want routers to not even allow a blanket whitelist for all devices...

[–] pivot_root@lemmy.world 2 points 4 months ago

If anything it makes me want routers to not even allow a blanket whitelist for all devices...

I would be fine with this. Make it as annoying as possible so people don't blindly follow a guide to disable the firewall.

  • Remove firewall disable option, and only allow it to happen by DMZ or bridging to another router that would have it.

  • Require calling in to an ISP help desk, where they ask why you want to do that, and explain in no uncertain terms that you're probably going to open a portal to hell or summon cthulhu. If you still want to, you have to read them out the device serial number, read out a unique code in the router admin interface, and wait a week for the option to become available.

[–] Trainguyrom@reddthat.com 4 points 4 months ago (1 children)

Honestly the more I think about it the more I realize I'm wrong. I was thinking someone could enable a server on their client device without realizing it but the firewall on the router would still need to be modified in that situation, and anything not requiring firewall modifications would be just as much of a security hole on IPv4

[–] EncryptKeeper@lemmy.world 5 points 4 months ago* (last edited 4 months ago)

Yeah it’s a common trip up. We’re all so used to the way that things are done in IPv4 that our natural response is to try and apply IPv4 logic to IPv6, but you’re absolutely right.

Many people think NAT is a security feature but but that’s only a coincidence and it doesn’t do anything a firewall doesn’t already do. And if we take it one step further we can actually see that a firewall and IPv6 is actually more secure than NAT. The only inherent risk of port warding in NAT is that the IP you’re forwarding to is ultimately arbitrary. Think, have a port open to SMB for a publicly accessible file sharing container, then later ditching it and via DCHP your laptop picks up that old IP and now voila you've technically exposed your laptop. It’s not quite that simple but that’s the essence of it.

But with IPv6, IPs are no longer arbitrary. When you allow access in certain ports to a certain machine and that machine goes away, that rule will always only allow access to nowhere.

[–] Joelk111@lemmy.world 40 points 4 months ago* (last edited 4 months ago) (2 children)

As a tech nerd who self hosts stuff, I'm more like "what is IPV6 and why is it causing me issues, I can't figure this out, I guess I'll disable it, wow my problems are fixed now."

I guess I can see why people don't like it, as it's caused me issues, but just because I don't understand it doesn't mean it's dumb. I'd need to understand how it works before I could say anything about it, positive or negative. I guess all I could say is that it's been way less intuitive to me, I can't memorize the numbers, and the reason it exists makes sense. Beyond that, I unno.

I should probably spend the time to learn about it, but I already have a full time job where I work on computers all day, I'd rather focus on my other hobbies while I'm at home.

[–] pivot_root@lemmy.world 11 points 4 months ago (1 children)

It's not terribly difficult to learn when you avoid trying to relate it to IPv4 concepts. Particularly: forget about LAN addresses and NAT, and instead think about a large block of public addresses being subdivided between local devices.

[–] lightnsfw@reddthat.com 8 points 4 months ago (1 children)

instead think about a large block of public addresses being subdivided between local devices.

Thinking about all my devices being exposed like that gives me the heebie jeebies. One public facing address hiding everything else on a private network is much less frightening to my monkey brain.

[–] Blaster_M@lemmy.world 9 points 4 months ago

This is what a firewall is for. Blocks inbound to the whole subnet space. Better than a NAT, which can open a port through STUN or simply a malformed packet.

[–] dsilverz@thelemmy.club 3 points 4 months ago

Back in the days I had an ISP that offered me IPv6 network, it was really easy to self host things over the internet, because IPv6 is unique to all devices, so the server had its own IPv6 global address, which I could access from anywhere with IPv6 connectivity. No more dealing with port forwarding (considering that the ISP didn't block the forwarding of ports). Just a firewall setting and voila, the service was accessible. It's that simple.

load more comments (8 replies)