Netcat sendet erfolgreich ein UDP-Paket, obwohl der gesamte UDP-Verkehr über die Netzwerk-ACL blockiert ist

Netcat sendet erfolgreich ein UDP-Paket, obwohl der gesamte UDP-Verkehr über die Netzwerk-ACL blockiert ist

Ich habe eine AWS-Instanz im Standard-VPC erstellt und den gesamten UDP-Verkehr in den Netzwerk-ACLs blockiert. So sehen meine ausgehenden Regeln aus:

Regelnummer Typ Protokoll Portbereich Ziel Zulassen/Ablehnen
99 Alle UDP UDP (17) Alle 0.0.0.0/0 Leugnen
100 Alle TCP TCP (6) Alle 0.0.0.0/0 Erlauben
* Der gesamte Verkehr Alle Alle 0.0.0.0/0 Leugnen

Wenn ich verwende traceroute, erhalte ich wie erwartet nichts:

[ec2-user@ip-172-31-32-169 ~]$ traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 ...

Wenn ich jedoch verwende nc,Tunbekomme eine unerwartete Antwort zurück:

[ec2-user@ip-172-31-32-169 ~]$ nc -vzu 1.1.1.1 53
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 1.1.1.1:53.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.01 seconds.

Warum passiert das? Außerdem dauert es immer 2 Sekunden, bis man eine Antwort bekommt. Warum 2 Sekunden?

Antwort1

TL;DR – UDP wird durch die NACL-Regel blockiert. Die Antwort, die Sie erhalten, ncist irreführend und ich glaube, habe es aber nicht bestätigt, dass die Zeit von 2,01 Sekunden ein Timeout ist.

Netcat gibt an, dass es ein Paket gesendet hat, was es auch getan hat. Aber Ihr NACL fungiert als Firewall auf Schicht 3/4 für das Subnetz, an das Ihre EC2-Instanz angeschlossen ist. Das Paket wird vom Host gesendet, aber das NACL blockiert es (und verwirft es). Da Sie das -zFlag verwenden, wird die Verbindung sofort unterbrochen und es ist ein Timeout von zwei Sekunden damit verbunden. Ich gehe davon aus, dass die zwei Sekunden das Timeout sind, da dies immer der Rückgabewert ist. (Ich habe keine Zeit, dies im Quellcode nachzuvollziehen.)

Ich habe Ihre NACL in einer VPC neu erstellt und das gleiche Ergebnis wie oben erhalten, einschließlich des genauen „empfangenen“ Wertes. Aber wenn ich versuche, diese Site zu durchsuchen, tritt eine digZeitüberschreitung auf, wenn die Ablehnung aktiviert ist.

Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 1.1.1.1:53.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.01 seconds.

[root@ip-10-99-0-198 centos]# dig +short @1.1.1.1 www.google.com
;; connection timed out; no servers could be reached

Wenn die Ablehnung nicht aktiviert ist, digfunktioniert es wie erwartet. Der letzte Hinweis ist, dass Sie nmapeine „offene|gefilterte“ Antwort erhalten, wenn Sie einen Scan auf diesem UDP-Port ausführen.

Leider ist auch bekannt, dass Firewalls und Filtergeräte Pakete ohne Antwort verwerfen. Wenn Nmap also nach mehreren Versuchen keine Antwort erhält, kann es nicht feststellen, ob der Port offen oder gefiltert ist.

Verweise
AWS VPC-Netzwerk-ACLs
ncat Manpage
nmap UDP-Scan

Antwort2

Sie haben eine Regel mit niedrigerer Nummer, die vor Regel 99 verarbeitet wird, die UDP zulässt. Regeln werden in aufsteigender Reihenfolge ausgewertet.

„Regelnummer. Regeln werden beginnend mit der Regel mit der niedrigsten Nummer ausgewertet. Sobald eine Regel mit dem Datenverkehr übereinstimmt, wird sie angewendet, unabhängig von Regeln mit einer höheren Nummer, die ihr möglicherweise widersprechen.“

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html#nacl-rules

verwandte Informationen