Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sdproxy — 라우팅된 DNS 포워딩, 필터링 및 자녀 보호에 중점을 둔, 단순하고 빠르지만 기능은 결코 단순하지 않은 DNS 프록시입니다. | Kitploit
도구/GitHubGitHub/cbuijs/sdproxy
Defensive ToolsEncryption/Decryption ToolsInformation GatheringWeb SecurityNetwork SecurityPrivacyUtilities & FrameworksMachine LearningDNS AnalysisAnomaly Detection
GitHubcbuijs/sdproxy
6131798시간 29분 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

sdproxy

라우팅된 DNS 포워딩, 필터링 및 자녀 보호에 중점을 둔, 단순하고 빠르지만 기능은 결코 단순하지 않은 DNS 프록시입니다.

저장소 보기

sdproxy

홈 네트워크를 진정으로 제어할 수 있게 해주는 DNS 프록시입니다.


소개

저는 "대형" 네트워킹 및 보안 "아레나"에서 컨설턴트로 수년을 보냈습니다. DNS 보안은 제 일상 업무이자 즐겨 만지작거리는 취미이기도 했습니다. 이제 아이들이 생겼고 책임감 있는 부모가 되어야 하기에, 아이들을 위해 크고 무서운 인터넷을 필터링하는 일을 스스로 맡았습니다. 그래서 sdproxy(Simple DNS Proxy)를 만들었습니다. 이것은 엔터프라이즈/대형 수준의 보호/방법/정밀함을 (어느 정도는) 가정 네트워크 수준으로 가져옵니다.

이 프록시는 Go로 작성되었으며 저렴한 라우터용으로 가벼운 바이너리로 컴파일됩니다. 클라우드 구독이나 월 요금은 전혀 없습니다. 모든 종류의 DNS를 지원하며 안정성을 유지하기 위한 적응형 수락 제어를 포함합니다. 그저 가볍고(어느 정도는), 야무지고, 네덜란드식으로 설계된 거실용 정밀함일 뿐입니다. 당신과, 실행 파일 하나와, yaml 파일 하나뿐입니다.

그리고 기억하세요... 항상 DNS입니다!


참고: 이 저장소의 full_reference_config.yaml(바이너리에 sdproxy --example-config를 통해 내장되기도 함)은 이 README보다 항상 최신입니다. 의심스러울 때는 그곳을 확인하세요.


DNS는 인터넷의 전화번호부입니다 - 네트워크의 모든 기기는 어디든 연결하기 전에 이름을 조회합니다.

sdproxy는 그 중간, 즉 라우터 위에 자리하여 다음에 무슨 일이 일어날지 결정하게 해줍니다: 캐시하기, 차단하기, 다른 리졸버로 라우팅하기, 고급 ML 보안 모델 적용하기, 또는 자녀별 시간 제한 적용하기. 클라우드 구독도, 월 요금도, 다운되는 외부 서비스도 없습니다.

Go로 작성되었고 단일 바이너리로 컴파일되며, 저렴한 가정용 라우터(TP-Link, GL.iNet 또는 NetGear의 OpenWrt, pfSense, OPNsense 또는 그냥 평범한 Linux 박스)에서 실행될 만큼 가볍습니다.

대안 대비 주요 장점은 KEY_ADVANTAGES.md를 참조하세요.


무엇을 하는가

모든 종류의 DNS를 지원하며 자동 업그레이드

평범한 UDP/TCP(포트 53), 암호화된 DNS-over-TLS(DoT), DNS-over-HTTPS(DoH), 그리고 DNS-over-QUIC(DoQ).

  • 동적 DoH3 업그레이드: sdproxy는 Alt-Svc 헤더와 SVCB/HTTPS ALPN 매개변수를 기본적으로 파싱하여 표준 DoH 스트림을 고성능 HTTP/3(QUIC) 연결로 즉석에서 매끄럽게 업그레이드합니다.

암호화된 클라이언트 헬로(ECH) 및 DDR 자동 검색

TLS 서버 이름 표시(SNI)를 암호화하여 ISP의 심층 패킷 검사로부터 브라우징을 보호합니다.

  • 인바운드 ECH: sdproxy는 완전한 ECH 서버로 동작하여 클라이언트 헬로를 복호화하고, DDR(_dns.resolver.arpa SVCB/HTTPS) 및 /.well-known/origin-svcb / /.well-known/ech HTTPS 엔드포인트를 통해 자신의 키를 로컬 네트워크에 기본적으로 브로드캐스트합니다.
  • 아웃바운드 ECH 자동 검색: 업스트림 제공자와 통신할 때 sdproxy는 그들의 HTTPS/SVCB 레코드(및 L7 .well-known 폴백)를 적극적으로 조회하여 ECH 키를 추출하고 TLS 핸드셰이크를 완전히 자율적으로 보호합니다.

머신 러닝 DGA 탐지

네이티브의 제로 할당 로지스틱 회귀 ML 추론 엔진이 핫 패스에서 실행됩니다. 섀넌 엔트로피, 모음/자음 편향, 끝자리 숫자 패턴, 자음 연쇄를 추출하여 봇넷, 악성코드, C2 인프라가 사용하는 알고리즘 생성 도메인(DGA)을 즉시 탐지하고 차단합니다.

RFC 10023 _for-sale. 및 파킹된 도메인 탐지

  • RFC 10023 _for-sale. 탐지 (server.for_sale): 64개 샤드 판정 캐시, 전체 부모 체인 캐시 순회, SingleFlight 병합을 사용하여 _for-sale.<qname> 및 _for-sale.<apex>에서 유효한 RFC 10023 TXT 레코드(v=FORSALE1;)를 조회합니다. disabled, BLOCK, DROP, LOG 또는 모든 표준 DNS RCODE를 지원합니다.
  • 파킹된 도메인 탐지 (server.parked): 일반적인 도메인 파킹 및 애프터마켓 수익화 제공자(Sedo, Bodis, ParkingCrew, Above.com, Dan.com, Afternic, CashParking, HugeDomains, Squadhelp/Atom, Uniregistry, ParkLogic, RookMedia 등)에 대해 권한 있는 NS, SOA, TXT, CNAME, A/AAAA 레코드를 적극적으로 조회하고 수동적으로 검사하여 파킹된 도메인, 중간 부모 도메인, eTLD+1 에이펙스를 탐지합니다.

데이터 유출, 터널링 및 정보 탈취기 방어

  • 볼륨 프로파일링: 클라이언트별 또는 서브넷별로 전송된 바이트의 알파 평활화 지수 이동 평균(EMA)을 추적합니다. DNS를 통해 네트워크를 빠져나가는 갑작스럽고 비정상적인 데이터 버스트를 탐지하고, 락프리 페널티 박스(Penalty Box)에서 해당 클라이언트를 블랙홀 처리합니다.
  • 서브도메인 속도 제한: 구성 가능한 시간 창 내에서 (클라이언트/서브넷, 에이펙스 도메인)별로 조회된 고유 서브도메인을 추적하여(선택적 exempt_shared_hosting 포함) 클라이언트 간 서비스 거부를 허용하지 않으면서 느리고 은밀한 DNS 터널링 및 정보 탈취기 유출을 차단합니다.

정규식 지원을 포함한 도메인 정책 및 스푸핑된 레코드 (rrs:)

  • 도메인 및 RType 정책: 인라인 구성, 로컬 파일 또는 원격 URL을 통해 특정 DNS 레코드 유형(rtype_policy), 도메인 접미사, IP/CIDR 또는 정규식(/pattern/)에 대해 차단, 드롭 또는 사용자 지정 RCODE 반환을 수행합니다.
  • 스푸핑된 레코드 (rrs:): 전역 또는 그룹별 도메인(정확한 일치 또는 /pattern/ 정규식)을 정적 IPv4/IPv6 주소 또는 투명한 재귀 CNAME 별칭(예: SafeSearch 강제 적용)으로 재정의합니다.

엔터프라이즈 라우팅 및 합의 검증

sdproxy는 단순히 쿼리를 맹목적으로 전달하지 않고 업스트림을 동적으로 평가합니다.

  • 보안 합의: 그룹 내 최대 max_secure_upstreams(기본값 5)개의 정상 서버에 동시에 쿼리합니다. 정규 RRset 지문(CNAME 체인, 최종 IP 엔드포인트, SVCB/HTTPS, DNSSEC 상태)을 심층 검사하며 fastest, ordered, consolidate(병합된 응답 집합) 기본 설정을 지원합니다. strict 모드에서는 100% 참여와 응답 동등성이 강제되며, loose 모드에서는 정상 응답자의 과반수가 사용됩니다. 업스트림이 불일치하거나 오염된 NULL-IP를 반환하면 응답을 드롭하거나 차단합니다.
  • 최속 EMA: 모든 업스트림의 나노초 지연 시간을 추적합니다. 엡실론-그리디 알고리즘을 사용하여 가장 빠른 정상 리졸버를 고수하면서 쿼리의 5%를 무작위 탐색에 할당하여 복구 중인 네트워크 경로를 발견합니다.
  • SingleFlight 병합: 동일한 동시 캐시 미스 쿼리를 단일 아웃바운드 실행으로 원활하게 병합하여 썬더링 허드(Thundering Herd) 급증을 제거합니다.

적극적인 캐싱

최근에 응답한 것이 있습니까? 캐시에서 제공합니다. sdproxy는 암호학적으로 시드된 32개의 메모리 샤드를 활용하며, 재부팅 간 충돌 안전 디스크 지속성(라우트 구성 지문 포함)을 선택적으로 지원합니다. 여전히 인기 있는 레코드가 만료되면 sdproxy는 백그라운드 프리페치를 트리거하여 장치가 캐시 미스를 인지하지 못하게 합니다. RFC 8767 Stale-Serving, 엄격한 DNSSEC RRSIG 만료 경계 및 serve_stale_infinite 장애 폴백을 완전히 지원합니다.

로컬 네트워크 인식

DHCP 임대 파일과 /etc/hosts를 지정하면 업스트림 리졸버에 부담을 주거나 LAN 쿼리를 업스트림으로 유출하지 않고 로컬 이름 조회(NAS, 프린터, Pi 등)에 응답합니다. dnsmasq, ISC DHCP, Kea 및 odhcpd와 호환됩니다.

장치별 차별화된 라우팅

장치의 ID를 다른 업스트림 리졸버 그룹 또는 자녀 보호 프로필에 매핑합니다.

  • 식별자: 물리적 ARP MAC 정확 일치, MAC 글롭 마스킹, EDNS0 옵션 65001 MAC(mac:<mac> 및 mac:<glob>), IP / CIDR, EDNS0 클라이언트 서브넷(ecs:<ip> 및 ecs:<cidr>), ASN(ASxxxx), 국가 코드(CC:XX, IPinfo 경유), 클라이언트 이름, TLS SNI(sni:), HTTP DoH 경로(path:), 리스너 포트(port:).
  • 신뢰할 수 있는 포워더 경계(server.trusted_proxies): 클라이언트가 제공하는 EDNS0 옵션 65001(mac:) 및 EDNS0 클라이언트 서브넷(ecs:) ID 주장을 승인된 로컬 포워더(예: dnsmasq --add-mac / --add-subnet, 기본값은 루프백 127.0.0.0/8 및 ::1/128)로 제한합니다.
  • 복합 교집합 규칙: force-and: true로 여러 식별자를 결합합니다(예: 서브넷 AND 리스너 포트).
  • 즉시 싱크홀 및 바이패스: 명시적 DNS 반환 코드(rcode: REFUSED, NXDOMAIN, BLOCK, DROP) 또는 bypass_local / bypass_global 플래그를 라우팅 규칙에 직접 바인딩합니다.

자녀 보호 - 자녀별, 카테고리별

자녀별로 프로필을 설정하고, 기기를 할당한 후 다음을 구성하세요:

  • 스케줄 - 학기 중과 주말에 서로 다른 시간대를 적용합니다.
  • 시간 예산 - 누적 분 단위 추적(group 또는 device별). ALLOW, BLOCK, FREE, LOG, UNLIMITED 및 임시 UNTRIGGER 시간대 재정의를 지원합니다.
  • 카테고리 차단 - 공개 저장소 또는 로컬 파일(Domains, Hosts, AdBlock/uBlock, IP/CIDR 목록)에서 동적으로 로드되며, 사전 컴파일된 바이너리 디스크 캐싱을 사용합니다.
  • 상태 추적: 시간 추적은 DNS 하트비트 TTL을 통해 실행되며, 재부팅 후에도 유지되도록 디스크에 스냅샷을 저장합니다.

웹 관리 패널

실시간 운영을 위한 선택적 비밀번호 보호 브라우저 기반 UI(HTTP/HTTPS 또는 DoH 포트 443에 멀티플렉싱).

  • 선택적 카운트다운 타이머와 함께 기기 그룹을 ALLOW, BLOCK, FREE 또는 LOG로 즉시 전환합니다.
  • 알려진 클라이언트 및 차단: 검색된 LAN 및 EDNS0-MAC 클라이언트(IP, MAC, DHCP 이름, 무작위 MAC 배지, 실시간 Last Seen 타임스탬프)를 확인하고 개별 기기 또는 모든 알 수 없는/프라이버시 MAC 클라이언트를 일괄적으로 원클릭 차단/차단 해제합니다.
  • 사용자 지정 규칙 및 캐시 검사기: 그룹별 또는 전역 도메인 허용/차단 규칙을 실시간으로 관리하고 브라우저에서 직접 캐시된 DNS 레코드를 검사/검색합니다.
  • 실시간 스트리밍 쿼리 로그(SSE)와 24시간 링 버퍼 성능 차트를 확인합니다.

DNS 리바인딩 및 검색 도메인 누출 방지

사설 또는 bogon IP(RFC1918, 루프백, 링크 로컬, ULA)를 포함하는 모든 업스트림 응답을 차단하여 서버 측 요청 위조(SSRF) 및 브라우저 피벗 공격을 방지하고, 최근 차단된 쿼리에 로컬 검색 도메인을 추가하는 OS 스텁 리졸버를 가로챕니다.


빠른 시작

git clone https://github.com/cbuijs/sdproxy
cd sdproxy
go build -o sdproxy .
./sdproxy --config config.yaml

Go 1.26+가 필요합니다. CGo는 필요하지 않습니다.

명령줄 옵션

  -c, --config <file>    Path to YAML configuration file (default: config.yaml)
  -t, --test             Test the configuration file for syntax/logic errors and exit
  -C, --clean-config     Clean the configuration file (strip comments and default values) to stdout and exit
  -U, --update-config    Update/complement the configuration file with all comments and missing options to stdout and exit
  -E, --example-config   Print the full documented default/reference configuration to stdout and exit
  -f, --force-refresh    Force fetching/loading fresh copies of all external lists and databases on startup
  -4, --ipv4             Limit resource loading and listeners to IPv4 only
  -6, --ipv6             Limit resource loading and listeners to IPv6 only
  -v, --version          Show current sdproxy version and exit
  -h, --help             Show this help message

최소 구성

server:
  listen_udp: ["0.0.0.0:53"]

cache:
  enabled: true
  size: 1024

upstreams:
  default:
    - "udp://1.1.1.1:53"
    - "udp://9.9.9.9:53"

라우터용으로 빌드하기

# OpenWrt MIPS (TP-Link, Netgear, etc.)
GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags="-s -w" -o sdproxy .

# OpenWrt ARM (Linksys, Asus, etc.)
GOOS=linux GOARCH=arm GOARM=7 go build -ldflags="-s -w" -o sdproxy .

# OpenWrt x86_64
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o sdproxy .

-s -w 플래그는 디버그 심볼을 제거하여 바이너리 크기를 30-40% 줄여주며, 이는 작은 플래시 저장소에서 중요합니다.


구성

도구 다운로드