Criei uma instância AWS na VPC padrão e bloqueei todo o tráfego UDP nas Network ACLs. Esta é a aparência das minhas regras de saída:
Número da regra | Tipo | Protocolo | Faixa de portas | Destino | Permitem negar |
---|---|---|---|---|---|
99 | Tudo UDP | UDP (17) | Todos | 0.0.0.0/0 | Negar |
100 | Todos TCP | TCP (6) | Todos | 0.0.0.0/0 | Permitir |
* | Todo o tráfego | Todos | Todos | 0.0.0.0/0 | Negar |
Se eu usar traceroute
, não recebo nada, como esperado:
[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 * * *
...
No entanto, se eu usar nc
, eufazerreceba uma resposta, o que é inesperado:
[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.
Por que isso acontece? Além disso, sempre leva 2 segundos para obter uma resposta. Por que 2 segundos?
Responder1
TL;DR - UDP está sendo bloqueado pela regra NACL. A resposta que você recebe nc
é enganosa e acredito, mas não confirmei, que o tempo 2.01 é um tempo limite.
O Netcat está afirmando que enviou um pacote, o que foi feito. Mas o seu NACL está agindo como um firewall na camada 3/4 para a sub-rede à qual sua instância do EC2 está anexada. O pacote está sendo enviado do host, mas o NACL o está bloqueando (e descartando-o). Como você está usando o -z
sinalizador, ele interrompe imediatamente a conexão e há um tempo limite de dois segundos associado a ele. Presumo que os dois segundos sejam o tempo limite porque é sempre o valor de retorno. (Não tenho tempo para analisar isso no código-fonte)
Recriei seu NACL em um VPC e obtive o mesmo resultado acima, incluindo o valor "recebido" exato. Mas quando tento fazer uma pesquisa nesse site, dig
ele expira quando o Deny está em vigor.
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
Quando a Negação não está em vigor, as dig
obras funcionam conforme o esperado. A última dica é que se você executar uma nmap
varredura nessa porta UDP, receberá uma resposta "aberta | filtrada".
Infelizmente, firewalls e dispositivos de filtragem também são conhecidos por descartar pacotes sem responder. Portanto, quando o Nmap não recebe resposta após várias tentativas, ele não consegue determinar se a porta está aberta ou filtrada.
Referências
ACLs de rede AWS VPC
Página de manual do ncat
Varredura UDP nmap
Responder2
Você tem uma regra de número inferior processada antes da regra 99 que permite UDP. As regras são avaliadas em ordem crescente.
"Número da regra. As regras são avaliadas começando com a regra de número mais baixo. Assim que uma regra corresponde ao tráfego, ela é aplicada independentemente de qualquer regra de número mais alto que possa contradizê-la."
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html#nacl-rules