Netcat은 네트워크 ACL을 통해 모든 UDP 트래픽이 차단되었음에도 불구하고 성공적으로 UDP 패킷을 보냅니다.

Netcat은 네트워크 ACL을 통해 모든 UDP 트래픽이 차단되었음에도 불구하고 성공적으로 UDP 패킷을 보냅니다.

기본 VPC에 AWS 인스턴스를 생성했고 네트워크 ACL에서 모든 UDP 트래픽을 차단했습니다. 내 아웃바운드 규칙은 다음과 같습니다.

규칙 번호 유형 규약 포트 범위 목적지 거부 허용
99 모든 UDP UDP (17) 모두 0.0.0.0/0 부인하다
100 모든 TCP TCP (6) 모두 0.0.0.0/0 허용하다
* 모든 트래픽 모두 모두 0.0.0.0/0 부인하다

을 사용하면 traceroute예상대로 아무것도 얻지 못합니다.

[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  * * *
 ...

그러나 을 사용 nc하면하다예상치 못한 응답을 받습니다.

[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.

왜 그런 일이 발생합니까? 또한 응답을 받는 데는 항상 2초가 걸립니다. 왜 2초인가?

답변1

TL;DR - UDP가 NACL 규칙에 의해 차단되고 있습니다. 귀하가 받은 응답은 nc기만적이며 2.01초 시간이 시간 초과임을 확인하지는 않았지만 기만적입니다.

Netcat은 패킷을 보냈다고 말하고 있습니다. 그러나 NACL은 EC2 인스턴스가 연결된 서브넷에 대해 계층 3/4에서 방화벽 역할을 합니다. 패킷이 호스트에서 전송되고 있지만 NACL이 이를 차단하고 삭제하고 있습니다. 플래그를 사용하고 있기 때문에 -z연결이 즉시 끊어지고 이와 관련된 2초의 시간 초과가 발생합니다. 나는 2초가 항상 반환 값이기 때문에 시간 초과라고 가정합니다. (소스 코드에서 이를 실행할 시간이 없습니다)

VPC에서 NACL을 다시 생성했는데 정확한 "수신" 값을 포함하여 위와 동일한 결과를 경험했습니다. 하지만 해당 사이트를 사용하여 조회를 시도하면 dig거부가 적용되면 시간이 초과됩니다.

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

거부가 설정되지 않은 경우 dig예상대로 작동합니다. 마지막으로 nmap해당 UDP 포트에서 스캔을 실행하면 "open|filtered" 응답을 받게 된다는 것입니다.

불행하게도 방화벽과 필터링 장치도 응답하지 않고 패킷을 삭제하는 것으로 알려져 있습니다. 따라서 Nmap은 여러 번 시도한 후에도 응답을 받지 못하면 포트가 열려 있는지 또는 필터링되었는지 확인할 수 없습니다.

참고자료
AWS VPC 네트워크 ACL
ncat 매뉴얼 페이지
nmap UDP 스캔

답변2

UDP를 허용하는 규칙 99보다 먼저 처리되는 더 낮은 번호의 규칙이 있습니다. 규칙은 오름차순으로 평가됩니다.

"규칙 번호. 규칙은 가장 낮은 번호의 규칙부터 평가됩니다. 규칙이 트래픽과 일치하는 즉시 규칙과 모순될 수 있는 더 높은 번호의 규칙에 관계없이 적용됩니다."

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

관련 정보