1. 라이브러리
  2. 포트
  3. 주요 포트 참조표

업데이트됨 1개월 전

브라우저는 아무것도 모릅니다. 물어봐야 합니다.

여러분의 기기가 google.com에 연결하기 전에, google.com이 142.250.80.46에 있다는 것을 먼저 알아야 합니다. 이메일을 보내거나, API를 호출하거나, CDN에서 이미지 하나를 불러오기 전에도, 이름을 숫자로 변환해야 합니다. 이 변환—DNS 조회—은 포트 53에서 이루어지며, 끊임없이 발생합니다. 모든 연결은 하나의 질문으로 시작됩니다.

두 가지 프로토콜, 하나의 포트

DNS는 포트 53에서 UDP와 TCP를 모두 사용하며, 필요에 따라 둘 중 하나를 선택합니다.

UDP는 일반적인 경우를 처리합니다. 기기가 "example.com은 어디에 있나요?"라고 작은 패킷을 보내면, 답이 담긴 작은 패킷을 돌려받습니다. 핸드셰이크도, 연결 설정도 없이—질문과 답변만 있습니다. 대부분의 DNS 쿼리는 하나의 UDP 패킷에 담기며, 수 밀리초 만에 완료됩니다.

TCP는 그 외의 모든 경우를 처리합니다. 응답이 UDP에 담기에 너무 클 때(DNSSEC 서명이 포함된 경우 흔히 발생), 서버는 잘림 플래그를 설정하고 클라이언트는 TCP로 재시도합니다. 존 전송—보조 네임서버가 주 서버로부터 레코드를 동기화하는 과정—은 항상 TCP를 사용합니다. 손실되어서는 안 되는 수 메가바이트의 순서 있는 데이터를 다루기 때문입니다.

포트 53의 TCP를 차단하면 DNSSEC 검증과 존 전송이 모두 중단됩니다. 두 프로토콜 모두 중요합니다.

DNS가 공격받는 이유

DNS는 인프라입니다. 모든 연결이 DNS에 의존합니다. DNS를 공격하면 DNS에 의존하는 모든 것을 공격하는 것입니다.

캐시 포이즈닝은 리졸버의 메모리에 거짓 레코드를 주입합니다. your-bank.com을 요청했는데 공격자의 서버로 연결되는 것입니다. DNSSEC는 이를 방지하기 위해 암호화 서명을 추가합니다—리졸버가 답변이 변조되지 않았는지 검증할 수 있습니다—하지만 도입률은 여전히 낮습니다. .com 도메인 중 약 4~5%만 서명되어 있으며1, .nl, .cz, .se 같은 일부 국가 코드 최상위 도메인은 50%를 넘습니다.

증폭 공격은 DNS 서버를 무기로 바꿉니다. 공격자가 출발지 IP 주소를 여러분의 주소로 위조하여 작은 쿼리를 보냅니다. DNS 서버는 응답—때로는 50배나 더 큰—을 여러분에게 보냅니다. 이것이 수천 개의 서버에서 반복되면 트래픽 폭주가 됩니다.

DNS 터널링은 훔친 데이터를 DNS 쿼리 안에 인코딩하여, 무해한 이름 조회처럼 보이는 것을 통해 정보를 빼냅니다. DNS 트래픽은 대부분의 방화벽을 자유롭게 통과하기 때문에, 효과적인 은밀한 통신 채널이 됩니다. 탐지하려면 이상한 패턴을 감시해야 합니다: 과도한 쿼리, 비정상적으로 긴 도메인 이름, 무작위 문자열처럼 보이는 도메인에 대한 요청.

개인정보 허점

전통적인 DNS에는 암호화가 없습니다. 모든 쿼리가 평문으로 전송됩니다.

암호화된 웹사이트를 방문하더라도, DNS 쿼리는 여러분의 목적지를 평문으로 드러냅니다—암호화된 대화는 전화기에 대고 속삭이면서, 전화번호는 온 동네에 외치는 것과 같습니다. 인터넷 서비스 제공자는 여러분이 방문하는 모든 도메인을 볼 수 있습니다. 네트워크 관리자도 볼 수 있습니다. 트래픽을 가로챌 수 있는 위치에 있는 누구나 볼 수 있습니다.

두 가지 프로토콜이 이를 해결합니다:

**DNS over HTTPS (DoH)**는 DNS 쿼리를 포트 443의 일반 HTTPS 트래픽 안에 감쌉니다. 네트워크 관점에서는 다른 웹 요청과 다를 바 없습니다. Firefox는 2020년에 미국 사용자를 위해 DoH를 기본으로 활성화했으며, Chrome, Edge, Safari도 뒤를 이었습니다2. 강력한 개인정보 보호를 제공하지만, 네트워크 관리자는 DNS 트래픽을 다른 트래픽과 구별할 수 없게 됩니다—DNS 기반 필터링과 모니터링이 무력화됩니다.

**DNS over TLS (DoT)**는 포트 853에서 TLS를 사용하여 DNS 쿼리를 암호화합니다. 쿼리는 보호되지만, DNS 트래픽임은 드러납니다. 관리자는 무엇이 조회되는지는 보지 못하면서도 DNS 트래픽이 발생하고 있음을 알 수 있습니다.

두 방식 모두 도청자로부터 쿼리를 보호합니다. 하지만 어느 쪽도 여러분의 리졸버로부터는 보호하지 못합니다—쿼리에 답하는 서버는 여러분이 묻는 모든 것을 봅니다.

방화벽 규칙

아웃바운드: 모든 기기가 원하는 DNS 서버에 쿼리를 보내도록 허용하지 마십시오. 악성 코드는 대체 DNS를 사용하여 보안 통제를 우회합니다. 여러분이 제어하는 지정된 리졸버를 통해 트래픽을 강제하십시오.

인바운드: 권한 있는 네임서버를 운영한다면, 인터넷에서 오는 쿼리를 수신해야 합니다. 재귀 리졸버를 운영한다면, 내부 클라이언트에만 응답해야 합니다. 개방형 재귀 리졸버는 증폭 공격을 가능하게 하고, 인터넷 전체에 무료 서비스를 제공하는 꼴이 됩니다.

암호화된 DNS: 포트 853의 DoT는 가시성이 필요한 경우 차단하기 쉽습니다. 포트 443의 DoH는 웹을 중단시키지 않고는 차단하기가 거의 불가능합니다. 보안 모델이 DNS 쿼리 내용을 확인하는 것에 의존한다면, 내부적으로 승인된 암호화 리졸버를 제공해야 합니다.

이것이 의미하는 것

포트 53은 인터넷을 탐색 가능하게 만드는 질문들을 전달합니다. 기기가 어딘가에 연결하기 전에, 무언가가 이름을 숫자로 변환해야 합니다.

프로토콜은 변화하고 있습니다—암호화된 DNS가 기본이 되어가고 있습니다—하지만 근본적인 역할은 변하지 않습니다. 이제 여러분은 보이지 않는 곳에서 하루에도 수천 번, 무언가에 연결할 때마다 일어나고 있는 일을 이해하게 되었습니다.

DNS와 포트 53 관련 자주 묻는 질문

DNS는 왜 UDP와 TCP를 모두 사용하나요?

UDP가 더 빠릅니다—연결 설정이 필요 없기 때문입니다—따라서 하나의 패킷에 담기는 쿼리의 99%를 처리합니다. TCP는 예외적인 경우를 처리합니다: UDP에 담기에 너무 큰 응답(특히 DNSSEC 서명된 레코드)과, 신뢰할 수 있고 순서가 보장된 전달이 필요한 네임서버 간 존 전송이 그 예입니다.

DNS 터널링을 막기 위해 포트 53을 차단할 수 있나요?

포트 53을 완전히 차단하면 모든 DNS 조회가 중단됩니다. 대신, 모든 DNS 트래픽을 여러분이 제어하는 모니터링 리졸버를 통해 강제한 다음, 이상 징후를 감시하십시오: 과도한 쿼리 빈도, 비정상적으로 긴 도메인 이름, 또는 의심스러운 도메인에 대한 쿼리.

DoH와 DoT의 차이점은 무엇인가요?

두 방식 모두 DNS 쿼리를 암호화합니다. DoH는 포트 443의 일반 HTTPS 트래픽 안에 숨깁니다—최대한의 개인정보 보호를 제공하지만, 네트워크 모니터링에서는 보이지 않습니다. DoT는 전용 포트(853)를 사용합니다—암호화되어 있지만 DNS로 식별 가능해서, 관리자가 쿼리 내용을 보지 않고도 DNS 트래픽이 발생하고 있음을 알 수 있습니다.

자체 DNS 리졸버를 운영해야 하나요?

가정 사용자에게는 Cloudflare의 1.1.1.1, Google의 8.8.8.8, 또는 Quad9의 9.9.9.9 같은 신뢰할 수 있는 공개 리졸버가 잘 작동합니다. 조직의 경우, 내부 리졸버를 운영하면 가시성 확보, 필터링 제어, 외부 의존성 감소라는 이점이 있습니다. 그 대신 운영 복잡성이 높아집니다.

출처

이 페이지가 도움이 되었나요?

😔
🤨
😃
포트 53: 모든 연결을 시작하는 질문들 • 라이브러리 • Connected