신뢰할 수 있는 네트워크 전체 추적 차단 솔루션을 구축해 본 사람이라면 누구나 Pi-hole에 대해 들어봤을 것입니다. 이는 Raspberry Pi나 오래된 컴퓨터에서 실행되는 자가 호스팅 도구로, 광고나 추적기 요청이 브라우저에 도달하기 전에 조용히 차단합니다. 이 도구는 매우 훌륭하게 작동하며 설정도 놀라울 정도로 간단합니다. 단, 여전히 저렴하지만 첫 번째 Linux 프로젝트로는 가장 현명한 선택이 아닐 수 있는 Raspberry Pi에 투자하거나, 오래된 기기를 네트워크에 상시 연결해 두어야 한다는 점이 걸림돌입니다.

하지만 Raspberry Pi를 위해 최소 60달러에서 100달러를 지출하거나 오래된 기기를 네트워크에 계속 켜두고 싶지 않다면, 훨씬 더 저렴한 해결책이 있습니다. 비용은 5달러 남짓에 불과하지만, ESP32 보드는 여러분이 눈여겨보고 있을지도 모르는 비싼 Raspberry Pi만큼이나 효과적인 홈 네트워크 업그레이드가 될 수 있습니다.

관련 글

이 작은 보드가 내 네트워크 전체를 업그레이드했다

네트워크 수준에서 추적기 차단하기

ESP32를 DNS 싱크홀로 바꾸려면 ESP32_AdBlocker가 필요합니다. 이는 GitHub의 오픈 소스 프로젝트로, PSRAM이 탑재된 ESP32에 Arduino 스케치를 플래싱하고 라우터를 연결하기만 하면, 아침 커피 한 잔 값보다 저렴한 하드웨어에서 네트워크 전체를 아우르는 DNS 싱크홀을 즉시 구축할 수 있습니다.

핵심적으로 ESP32_AdBlocker는 Pi-hole과 정확히 동일하게 작동합니다. 네트워크의 어떤 기기가 도메인(이 경우 특정 앱에 포함된 의심스러운 광고 서버나 추적기)에 접속하려고 하면, 먼저 DNS 서버에 해당 도메인 이름을 IP 주소로 변환해 달라고 요청합니다. 일반적으로 라우터는 이를 사용해서는 안 되는 ISP의 리졸버나 사용자가 설정했을 수 있는 타사 DNS로 전달합니다.

하지만 ESP32 DNS 싱크홀이 중간에 있으면, 차단 목록에 있는 도메인 이름은 라우팅할 수 없는 주소인 0.0.0.0으로 반환되어 연결이 즉시 끊깁니다. 기기는 광고를 로드하지도, 추적기에 정보를 보내지도 않으며, 요청에 대역폭을 낭비하지도 않습니다. 어떤 기기를 사용하든 상관없습니다.

이 프로젝트는 ESP32의 PSRAM을 사용하여 차단 목록을 메모리에 저장합니다. 도메인 이름 조회도 매우 빨라 일반적인 ESP32에서 보통 50~100마이크로초 미만이 소요됩니다. 궁금해하실까 봐 말씀드리자면, 이는 상위 DNS 서버로의 왕복 시간보다 빠른 속도입니다. 차단 목록에 없는 모든 것은 사용자가 선택한 상위 DNS 리졸버로 전달되므로 일반적인 브라우징에는 전혀 영향을 주지 않습니다.

이 글도 확인해 보세요:  포트 스캔이란 무엇이며 어떻게 작동하나요?

##### ESP32_AdBlocker

OS Windows, Linux, macOS

개발자 dchristl

가격 모델 무료, 오픈 소스

ESP32_AdBlocker는 ESP32를 네트워크 전체 DNS 광고 차단기로 바꾸어 로컬에서 광고와 추적기를 필터링하는 경량 펌웨어입니다.

하드웨어가 거의 필요 없습니다

거의 비용이 들지 않는 간단한 설정

여기서 유일한 필수 조건은 ESP32의 PSRAM이며, 대부분의 보드에 탑재되어 있습니다. ESP32는 4MB PSRAM 모델과 8MB PSRAM 모델 두 가지가 있다는 점을 기억하세요. 가급적이면 전체 차단 목록(예: Steven Black의 통합 호스트 파일)을 보드 메모리에 저장할 수 있는 8MB 모델을 권장합니다. 4MB 모델은 보드의 작은 메모리에 맞추기 위해 차단 목록을 줄여야 하지만, 그럼에도 상당수의 도메인을 차단할 수 있습니다. 8MB PSRAM이 탑재된 ESP32-S3 같은 제품이면 5~10달러 사이의 비용으로 완벽하게 작업을 수행할 수 있습니다.

구매할 microSD 카드도, 유지 관리할 OS도, 보안 패치가 나올 때마다 적용해야 할 업데이트도 없습니다. 스케치가 차단 목록 다운로드, 메모리 정렬, 자동 새로 고침, 나가는 요청 확인 등 모든 것을 처리합니다. USB 케이블과 여분의 충전기를 구매하더라도 총비용은 15달러를 넘지 않을 것입니다.

##### ESP32

브랜드 Espressif

연결 기능 Wi-Fi, Bluetooth

ESP32는 Wi-Fi와 Bluetooth가 내장된 저가형 마이크로컨트롤러로, IoT 프로젝트와 DIY 전자 제품에 널리 사용됩니다.

설정은 예상보다 훨씬 쉽습니다

펌웨어 플래싱부터 실행까지 단 몇 분 만에

설정은 무료이며 사용하기 쉬운 Arduino IDE를 통해 진행됩니다. 완료되면 GitHub 저장소에서 스케치 파일을 다운로드하고, IDE에서 열고, PSRAM을 할당하는 올바른 파티션 구성표를 선택한 다음(저장소의 readme 파일이 식별을 도와줍니다), 보드에 플래싱합니다.

처음 부팅하면 ESP32는 Wi-Fi 액세스 포인트 모드로 시작하여 설정 네트워크를 브로드캐스트합니다. 휴대폰이나 노트북에서 해당 네트워크에 연결하고 192.168.4.1로 이동하여 Wi-Fi 자격 증명을 입력하세요. 그 후 차단 목록의 URL(HOSTS 또는 AdBlock 형식)과 원하는 리졸버를 지정하면 거의 준비가 완료됩니다. 이는 ESP32를 Wi-Fi 리피터로 만드는 과정과 거의 동일합니다.

이 글도 확인해 보세요:  예약 IP 주소란 무엇인가요? 어떻게 예약하나요?

마지막 단계는 라우터의 DHCP 설정이나 구성 페이지에서 보드에 고정 IP를 할당하고, 해당 IP를 라우터의 기본 DNS 서버로 입력하는 것입니다. 그러면 네트워크의 모든 기기가 즉시 ESP32를 통해 DNS 쿼리를 라우팅하기 시작합니다. 기기별 설정은 필요하지 않습니다.

웹 인터페이스를 통해 다운로드 및 정렬 진행 상황을 실시간으로 모니터링할 수 있습니다. 상세 로깅을 켜서 어떤 도메인이 차단되거나 허용되는지 정확히 확인할 수도 있습니다. 차단 목록에 대한 향후 업데이트는 변경된 부분만 다운로드하므로 초기 로드보다 훨씬 빠릅니다. 정전 시를 대비해 일종의 전원 백업을 추가하는 것도 좋습니다. 저는 추가 USB 포트가 있는 라우터용 보조 배터리를 사용하는데, 이 용도로 완벽한 해결책이 되었습니다.

결과는 실제로 체감할 수 있습니다

더 빠른 브라우징, 더 적은 추적기, 더 깨끗한 네트워크

한동안 사용해 보면 가장 눈에 띄는 변화는 어디에도 확장 프로그램을 설치하지 않고도 모든 기기에서 브라우징이 얼마나 깨끗하게 느껴지는지입니다. 광고 차단 설정을 존중하지 않는 앱의 원격 측정 데이터도 차단됩니다. 5달러짜리 ESP32는 홈 네트워크를 위해 많은 유용한 일을 할 수 있으며, 이것은 시작에 불과합니다.

관련 글

홈 네트워크에 Pi-hole을 설정했더니 인터넷 환경이 완전히 달라졌습니다

자체 DNS 서버를 호스팅할 때의 많은 이점과 네트워크에 대한 제어권 확보에 관하여.

그래프가 포함된 중앙 대시보드나 클라이언트별 통계, DHCP 서버 기능 등을 원한다면 완벽한 Pi-hole 대체제는 아닙니다. 하지만 비용이 거의 들지 않고 전력 소모가 사실상 없으며 지속적인 유지 관리가 필요 없는 아주 간단한 DNS 싱크홀을 원한다면, ESP32 AdBlocker 프로젝트는 의심스러운 광고와 침입적인 추적기에 대응하기 위한 ‘설정 후 잊어버려도 되는’ 매우 매력적인 솔루션입니다.

By 김민수

안드로이드, 서버 개발을 시작으로 여러 분야를 넘나들고 있는 풀스택(Full-stack) 개발자입니다. 오픈소스 기술과 혁신에 큰 관심을 가지고 있고, 보다 많은 사람이 기술을 통해 꿈꾸던 일을 실현하도록 돕기를 희망하고 있습니다.