Entschuldigung im Voraus für die relativ noob Frage und ob dies hier nicht zum Thema gehört (ich bin nicht sicher ...)
Die Situation ist, dass ich einen UDP-Client und -Server an denselben Port gebunden habe.
Nach meinem Verständnis von NAT führen UDP-Pakete, die vom Client an einen bestimmten Endpunkt gesendet werden, zu einem temporären Eintrag in die NAT-Tabelle, der den Quellport dem Zielendpunkt zuordnet. (Ist das richtig?)
Bedeutet dies auch, dass ein noch unbekannter Endpunkt eine UDP-Kommunikation mit meinem Server zu demselben Port initiiert, über den das UDP-Paket geleitet wird? Gibt es einen Grund, warum NAT dies verhindern würde? Ist NAT überhaupt daran beteiligt, diese eingehenden Pakete zu blockieren / zuzulassen?
Antworten:
Das übliche NAT erstellt Zuordnungen für jedes Paar kommunizierender Hosts als 5-Tupel (Protokoll, interne Adresse, interner Port, externe Adresse, externer Port). Normalerweise wird dieser Eintrag durch das erste ausgehende Paket zur Tabelle hinzugefügt.
Wenn der noch unbekannte externe Host ein UDP-Paket sendet, gibt es keinen Eintrag in der Tabelle, und das NAT-Gerät verwirft es daher normalerweise, abhängig von seinen Funktionen und seiner Konfiguration.
Diese Art von NAT wird normalerweise als "Überlastungs-NAT" oder "Portadressübersetzung" bezeichnet, um sie von anderen Varianten zu unterscheiden. Eine gute Beschreibung ist http://www.ciscozine.com/nat-and-pat-a-complete-explanation/
Wenn Sie eingehende Pakete auf Ihrem Server akzeptieren möchten, müssen Sie auf dem NAT-Gerät einen statischen Eintrag für diesen Server an diesem Port einrichten. Tatsächlich bedeutet dies, dass Einträge durch eingehende Pakete zur NAT-Tabelle hinzugefügt werden können.
Die Details sind geräte- und softwareabhängig.
quelle
Wie Jonathanjo betont, besteht ein UDP-NAPT-Tabelleneintrag aus mehr als nur einer UDP-Portnummer (bei NAPT gibt es separate Tabellen für UDP, TCP und ICMP, und der UDP-Port 12345 unterscheidet sich vom TCP-Port 12345, während ICMP dies nicht tut Verwenden Sie keine Ports, sondern verwenden Sie eine Abfrage-ID anstelle der Portnummer.
Ohne die spezifische externe IP-Adresse in einem NAPT-Tabelleneintrag geht das NAPT-Gerät davon aus, dass das Paket für sich selbst bestimmt ist, da es das Gerät ist, das tatsächlich mit der eingehenden IP-Adresse adressiert wird. Wenn auf dem NAPT-Gerät selbst der UDP-Port nicht geöffnet ist, sollte das Paket verworfen werden. Dies hängt jedoch vom Betriebssystem des NAPT-Geräts und seiner Konfiguration ab.
Dies ist ein wichtiger Grund dafür, dass NAPT keine Sicherheit ist. Sie brauchen auch wirklich eine Firewall. Die Firewall blockiert standardmäßig alle Verbindungen von außen, um das NAPT-Gerät selbst zu schützen. Wenn das NAPT-Gerät gefährdet ist, hat es vollen Zugriff auf das interne Netzwerk, und ein Angreifer hat dann vollen Zugriff auf das interne Netzwerk, selbst wenn es sich um ein privat adressiertes Netzwerk handelt.
quelle