NAT options on domestic routers often come configured as strict. What does this mean? What do moderate or open do? Port-forwarding/DMZ access works properly on strict so why bother with the other two?
A look through the router suggests this affects the firewall. When spending a large amount of your time securing networks using Cisco/iptables such a limp non-descriptive answer is nothing but infuriating and leaves no clues as to what effect upon a firewall this has.
Please can someone shed some light.
It's important first to know how Network Address Translation (NAT) works. You establish a connection to a server on the internet. In reality you send packets to your router, going out from your computer on some randomly chosen port:
Your router, in turn, establishes a connection to the server you want to talk to. It talks out it's own randomly chosen port:
When Google's webserver sends you back information, it is actually sending it back to your router (since your router is the guy actually on the Internet):
A packet arrives at your router, on port
21283
fromwww.google.com
. What should the router do with it?In this case the router has kept a record of you, and it knows that any traffic arriving on port
21283
from the Internet should go to your PC. So the router will relay the packet to your computer:Open NAT (aka Full cone NAT, aka the good, right, and correct one)
In open NAT, any machine on the internet can send traffic to your router's port
21283
, and the packet will be sent back to you:Moderate NAT (aka Restricted Cone NAT)
Moderate NAT is where your router will only accept traffic from the same host, but will allow it to come from any port:
Closed NAT (aka Port-restricted cone NAT)
Closed NAT is more restrictive. It won't allow anything in unless it came from the original host and port that you originally communicated with, i.e.
www.google
port80
:Teredo, X-Box Live, NAT
Microsoft's book Writing Secure Code has some other definitions of the different types of NAT. It is written in the context of NAT for use by Teredo; the IPv6 transition technology:
Remember: if anyone tries to tell you that Full-code NAT/Open NAT is a security issue, tell them they don't know what they're talking about. NAT is not a security boundary - that is what a firewall is. Anyone using NAT as a security boundary is simply wrong.
See also
All of these NAT terms are used only in the gaming industry. If you ask a network engineer or security engineer about strict nat, they are not going to know what you are talking about.
In the real, pure technical, world of networking there is NAT and PAT and these can be inbound or outbound.
Consumer routers often have a "DMZ" IP setting that sends everything destined to your router public IP straight to your PCs private IP. I can not even begin to tell you how dangerous this is. Gaming companies should at the very least publish a list of Server IPs so you can forward traffic direct to your PC only if it is from a server on the list. I think that the "Moderate NAT" is what the network industry calls PAT (Port address translation).
If you connect on port 80 to the server there is also a source port 4040 for example. Your router is listening on port 4040 after you initiate the connection. If they try to talk to your router on a different port, the router NAT table has no mapping for the new port and drops it. If you allow port 4444 to be forwarded to a specific IP in the NAT/PAT config, outsiders can now initiate connections on that port only. This is less dangerous than a 1 to 1 mapping and allowing everything through.
Gaming companies need to give better guidance. I even saw suggestions to disable the Microsoft firewall entirely rather than give a list of ports. If you want to become part of a botnet or dont mind Ransomware, go ahead and follow their poor guidance.
So I have had the opportunity to thoroughly test this "NAT type" terminology in (broadly) two networking environments.
MikroTik's RouterOS v6 was used to conduct this test and hence I will use MikroTik networking terminologies.
Before we begin I will assume you know the basics of:
We are assuming a single uplink/WAN interface with a single source NAT or single masquerade NAT in both environments. We are also assuming that the OS/Console in used is not blocking ports/UPnP at their OS/Console level.
Now the strange part is the "moderate" NAT situation in CGNATted environments. We know port forwarding cannot work behind a CGNAT (unless your ISP is smart enough to deploy Port Control Protocol).
As already mentioned here, don't be stupid and use so-called "DMZ" or disable the OS/Console's internal Firewall completely. If it is the OS/Console causing issues, reset the firewall to defaults. Default Firewalls on Windows, Linux Distros etc will not block UPnP/Ports opened manually at the router.