
모든 DNS 질의와 응답을 기록하여 네트워크 가시성을 제공하고, EDR/IR 로그 강화 및 위협 인텔리전스를 위한 수동적 DNS 데이터 수집을 가능하게 하는 수동적-재귀 DNS 데몬입니다.
수동적-재귀 DNS 데몬.

go get github.com/korc/PR-DNSd
sudo setcap cap_net_bind_service,cap_sys_chroot=ep go/bin/PR-DNSd
go/bin/PR-DNSd -upstream 9.9.9.9:53 -listen 127.0.0.1:53
echo nameserver 127.0.0.1 | sudo tee /etc/resolv.conf
dig google.com
dig -x $(dig +short google.com)
setcap을 사용할 수 없다면 -chroot "" 및 -listen :<high_port> 옵션을 사용하거나 root로 실행해야 합니다.
netstat/tcpview/lsof 등의 출력을 수정적절한 setcap 후 다음 실행:
PR-DNSd -tlslisten :853 -cert YOUR_SERVER_CRT_KEY_PEM -upstream 1.1.1.1:53 -store pr-dnsd
-cert string
TCP-TLS 리스너 인증서 (tls 리스너에 필수)
-chroot string
시작 후 chroot 할 디렉터리 (기본값 "/var/tmp")
-count int
디바운스 지연 적용 전 허용되는 응답 수 (기본값 100)
-ctmout string
업스트림 쿼리에 대한 클라이언트 타임아웃
-debounce string
DoS 방지를 위해 단일 IP로의 UDP 응답 사이에 필요한 시간 간격 (기본값 "200ms")
-key string
TCP-TLS 인증서 키 (기본값은 -cert 값과 동일)
-listen string
수신 주소 (기본값 ":53")
-silent
일반 데이터 보고 안 함
-store string
PTR 데이터를 지정된 파일에 저장
-tlslisten string
TCP-TLS 리스너 주소 (기본값 ":853")
-upstream string
업스트림 DNS 서버 (DoT의 경우 tcp-tls:// 접두사 사용) (기본값 "1.1.1.1:53")
(tls 및 chroot 사용 시 chroot 내의 ca-certificates와 resolv.conf가 올바르게 설정되었는지 확인)