3 ms·
> NAT provides security because normally it disallows external actors on the outside from accessing resources on the inside side. No... it doesn't do that. NA
by Dagger2 9mo ago
> NAT provides security because normally it disallows external actors on the outside from accessing resources on the inside side.
No... it doesn't do that.
NAT edits your packets so that your outbound connections appear to come from your router's IP. If you set up a port forward rule, then it edits matching inbound connections so they appear to be coming to a different destination IP.
Notice how no part of that description involves blocking or preventing inbound connections. That's because that's just not something NAT does.
- tsimionescu 9mo agoSo what do you think will happen with a packet that arrives at the router with destination IP set to the router's IP, and destination port set to some port for which there is no port forward rule (and no currently open TCP connection)? Will it reach some machine on the network, or will it get dropped/NACKed?
- Dagger2 9mo agoIt will reach the router, obviously. If it's a TCP SYN packet and there's a server listening on that port, you'll connect to that server. If there's no listener then you get a RST.
- tsimionescu 9mo agoSo, assuming the router doesn't have any server running, the connection will be reset, thus protecting all of the machines behind the router from any incoming connection, almost exactly like a firewall (sure, a firewall might just drop the packet instead of responding with a RST). So, in other words, NAT alone can act like a security perimeter, even with no firewall present.
- Dagger2 9mo agoHow does the router rejecting a connection to the router protect the machines behind the router? That doesn't make any sense.
- tsimionescu 9mo agoBecause no one on the Internet can reach my 192.168.0.7 machine if the NAT router doesn't translate the packet. And the NAT router won't send a packet that arrives with its public IP as dstIP to any machine behind it, unless the port its ports correspond to an open connection, or to an explicitly forwarded port.
- Dagger2 9mo agoYou could turn NAT off completely and still no-one on the Internet could reach your 192.168.0.7. There's no security perimeter coming from NAT here. > And the NAT router won't send a packet that arrives with its public IP as dstIP to any machine behind it Yes, of course. The problem is when a packet arrives with the IP of a LAN machine.
- icedchai 9mo agoNon-routeable internal addresses are pretty effective at preventing external actors. When most people say "NAT", that is what they mean. You are technically correct in that 1) disallowing external actors is not a property of "NAT" itself, 2) theoretically someone could establish routing to your RFC-1918 network if they had ISP control or had layer-2 adjacency. Practically speaking, this is not a problem. NAT + RFC-1918 addressing provides a layer of security. Is a firewall better? Of course.