TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 32 READS

내 손으로 만드는 DoH 서버, 내 DNS는 내가 지킨다

공공 DNS만 믿고 계셨나요?

브라우저에 daum.net을 입력하면 컴퓨터는 제일 먼저 "그 주소 진짜 어디 있어?"라고 어딘가에 물어봐요. 이 질문에 답해주는 게 DNS(Domain Name System)거든요. 사람이 외우기 쉬운 이름을, 컴퓨터가 알아듣는 IP 주소(예: 211.231.99.80)로 바꿔주는 인터넷 전화번호부라고 생각하면 돼요.

그런데 이 전화번호부 조회가 아주 오랫동안 암호화 없이 평문(누구나 읽을 수 있는 글자) 상태로 오갔어요. 그래서 같은 카페 와이파이를 쓰는 사람이든, 통신사든, 중간에 슬쩍 끼어든 누군가든 "아 얘 지금 어떤 사이트 들어가려고 하네"를 다 엿볼 수 있었죠. 더 나쁜 건, 가짜 답을 끼워 넣어서 멀쩡한 도메인인데도 피싱 사이트로 보내버리는 것도 가능했다는 거예요.

DoH가 정확히 뭔데요?

여기서 등장하는 게 DoH(DNS over HTTPS)예요. 이게 뭐냐면, DNS 질문을 우리가 평소에 쓰는 그 자물쇠 달린 https:// 통신 안에 넣어서 보내는 거예요. 겉에서 보면 그냥 평범한 웹 트래픽처럼 보이니까, 누가 들여다봐도 어떤 사이트를 찾는 중인지 알 수가 없어요. 내용도 암호화돼 있고, 일반 HTTPS 트래픽 속에 섞여 있어서 골라내거나 차단하기도 까다롭고요.

이미 Cloudflare(1.1.1.1), 구글(8.8.8.8) 같은 곳이 공개 DoH를 무료로 제공해요. 브라우저 설정에서 켜기만 하면 바로 쓸 수 있죠. 그런데 여기서 한 가지 찜찜한 점이 남아요. 내 모든 DNS 조회 기록이 그 회사 한 곳에 다 쌓인다는 거예요. 통신사한테 안 보여주는 대신, 거대 IT 기업한테 통째로 넘기는 셈이 되는 거죠.

그래서 직접 띄워보는 겁니다

그 대안이 바로 '내 DoH 서버 직접 운영하기'예요. 구조는 생각보다 단순해요. 크게 두 덩어리로 나뉘거든요.

여기에 도메인 하나랑 Let's Encrypt 무료 TLS 인증서를 붙이고, nginxcaddy로 리버스 프록시를 세우면 끝이에요. 흐름을 그려보면 이래요. 브라우저 → HTTPS(443) → nginx → DoH 서버 → Unbound → 실제 DNS 조회. 이렇게 하면 내 질문 기록이 남의 서버가 아니라 내 손바닥 위 서버에만 남죠.

비슷한 흐름들

요즘은 DoH 말고도 DoT(DNS over TLS)라는 형제가 있어요. 둘 다 암호화는 똑같은데, DoT는 853번이라는 전용 포트를 쓰는 반면 DoH는 443번(일반 웹 포트)을 그대로 써요. 그래서 DoH가 더 '숨기' 좋아요. 가정용 광고 차단으로 유명한 AdGuard Home이나 Pi-hole 계열도 이제 DoH를 품고 있어서, 광고 차단 + 암호화 + 자가 호스팅을 한 번에 해결할 수도 있고요.

한국 개발자에게

사내 서비스나 개인 홈랩(home lab)을 운영한다면 한 번쯤 세워볼 만해요. 라즈베리파이 한 대, 오라클 클라우드 무료 인스턴스 하나면 충분하거든요. 무엇보다 직접 세워보면 TLS 인증서, 리버스 프록시, DNS 리졸빙 과정이 머릿속에서 하나로 연결되는 경험을 하게 돼요. 면접에서 "DNS 조회 과정 설명해보세요" 같은 단골 질문에도 훨씬 입체적으로 답할 수 있게 되고요. 다만 외부에 열어둘 거라면 접근 제한(특정 IP만 허용 등)은 꼭 걸어두세요. 안 그러면 남이 내 리졸버를 공짜로 써버리거든요.

핵심 한 줄: DNS도 이제 암호화가 기본인 시대, 그 암호화의 주도권을 남이 아니라 내가 쥐는 방법이 DoH 자가 호스팅이에요. 여러분은 공개 DoH를 믿고 쓰는 편인가요, 아니면 직접 세워서 통제권을 갖는 쪽이 더 마음 편한가요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://nochan.net/b/Internet-Crap/20260602-Set-Up-Your-Own-...
SHARE
처리 중...