모든 DNS 쿼리를 기록하는 방법?


18

컴퓨터가받는 응답과 함께 모든 DNS 쿼리의 로그를 만들려면 어떻게해야합니까?

logs  dns 

답변:


14

tcpdump모든 포트 53 UDP 및 TCP 활동 을 기록 할 수 있습니다 .


6
방법에 대한 자세한 내용은?
e-sushi

이것은 OP (또는 다른 독자)가 DNS 서버에 액세스 할 수 있다는 것을 확신 할 수 없기 때문에 최상의 답변입니다. @ e-sushi의 질문에 대답하려면 유틸리티를 사용하여 tcpdump를 가져 가십시오 ( man 페이지 또는 예제가 있는 좋은 입문서를 확인하십시오 ). 최선의 방법은 파일로 덤프 한 다음 검토 및 분석을 위해 해당 데이터를 wireshark 로 가져 오는 것입니다 .
제임스 셰이

1
github.com/gamelinux/passivedns 는 그렇게하고있는 것 같습니다../doc/How-it-works.txt
mxmlnkn

5
tcpdump udp port 53
Brannon

1
기본적으로 아웃 바운드 네트워크 인터페이스를 선택하지 않을 수 있으므로 조금 더 필요합니다 : tcpdump --list-interfaces, tcpdump udp port 53 --interface (pickone). 또한 자세한 내용을 고려하십시오 :-vv
nobar

9

가장 쉬운 방법은 로컬로 바인딩을 설치하는 것입니다. 대부분의 배포판 기본 바인드 설치는 비 자동 캐싱 전용입니다.

바인드 9 구성 참조 서에logging {} 설명 된대로 구성 블록을 추가 한 다음 시스템을 사용 하거나 DNS 확인 자로 설정하십시오 .127.0.0.1::1


2
바인드가 얼마나 큰지와 그에 따른 보안 결여를 감안할 때 많은 사람들이 로깅 목적으로 만 설치를 주저 할 것이라고 생각합니다.
jw013

바인드에 /etc/resolv.conf의 네임 서버가 사용되지 않지만 네임 서버가 바인드 구성에 명시 적으로 나열되어야하는 문제가 있습니까?
Bananguin

번호 /etc/resolv.conf시스템 확인자 목록입니다. 바인드의 기본 구성은 신뢰할 수있는 이름 서버를 찾아서 요청하는 것입니다. 모든 요청을 특정 서버 (또는 ISP, OpenDNS 또는 Google 퍼블릭 DNS와 같은 세트)로 전달할 수 있지만 구성에서는 그렇게 할 필요가 없습니다. 나는 항상 이것을한다. 이름 서버 만 캐싱하도록 설정 한 횟수도 계산할 수 없습니다.
bahamat

6

dnsmasq 는 BIND보다 DNS 어 그리 게이터 / 캐싱 데몬으로 구성하기가 훨씬 쉬우 며, 그 목적으로 성능이 향상 될 수 있습니다. 로깅을 "디버그"로 설정하면 모든 질문과 답변 syslog이 디버그 메시지 용으로 구성된 모든 항목에 나타납니다 .

Dnsmasq는 또한 전체 도메인의 별칭을 127.0.0.1로 지정하여 "분석적"크리프를 침해하는 모욕적 인 광고주 및 더스트 백 프라이버시를 쉽게 제거 할 수 있도록합니다.


1

올바르게 기억하면 Snort는 사용자 정의 규칙에 따라 트래픽을 선택적으로 모니터링 할 수 있습니다. 그러나 컴퓨터, 즉 확인자가 캐시에서 질문에 대답 할 수있을 때 Snort는 DNS 요청에 대한 로그를 만들지 않습니다.


1

모든 ADNS 요청 을 표시하고 파일로 저장하려면 다음을 실행하십시오.

script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f8" | tee dns.log

출력 예 :

google.com.
wikipedia.org.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.