Как зарегистрировать все мои DNS-запросы?


18

Как я могу создавать журналы каждого DNS-запроса, который мой компьютер делает вместе с ответами, которые он получает?

logs  dns 

Ответы:


14

Вы можете tcpdumpрегистрировать все порты 53 UDP и TCP.


6
Какие-нибудь подробности о том, как?
e-суши

Это лучший ответ, так как мы не можем быть уверены, что OP (или другие читатели) имеют доступ к DNS-серверу - только к своей локальной машине. Чтобы ответить на вопрос @ e-sushi, воспользуйтесь утилитой tcpdump (посмотрите справочную страницу или хороший пример с примерами ). Лучше всего сделать дамп в файл и затем перетащить эти данные в wireshark для просмотра и анализа.
Джеймс Шивей

1
github.com/gamelinux/passivedns, кажется, делает именно это, понимаете./doc/How-it-works.txt
mxmlnkn

5
tcpdump udp port 53
Браннон

1
Он может не выбирать исходящий сетевой интерфейс по умолчанию, поэтому вам нужно немного больше: tcpdump --list-interfaces, tcpdump udp port 53 --interface (pickone). Также рассмотрим подробность:-vv
nobar

9

Самый простой способ - это установить Bind локально. Большинство дистрибутивов по умолчанию для установки Bind будут неавторизованными только для кэширования.

Просто добавьте logging {}блок конфигурации (как описано в Справочнике по конфигурации Bind 9 ), затем настройте свою систему на использование 127.0.0.1или ::1в качестве распознавателя DNS.


2
Учитывая, насколько велика привязка, и ее слабая запись о безопасности, я думаю, что многие люди не решатся установить что-то подобное для единственной цели регистрации.
jw013

не связывает ли проблема то, что серверы имен в /etc/resolv.conf не используются, но серверы имен должны быть явно указаны в конфигурации bind?
Bananguin

/etc/resolv.confэто список системного распознавателя. Конфигурация по умолчанию Bind ищет авторитетные серверы имен и спрашивает их. Вы можете переадресовывать все запросы на определенный сервер (или набор, такой как ваш интернет-провайдер, OpenDNS или Google Public DNS), но это не обязательно делать в конфигурации. Я делаю это все время. Я даже не могу сосчитать, сколько раз я настроил кэширование только серверов имен.
Багамат

6

dnsmasq гораздо проще настроить как агрегатор DNS / демон кэширования, чем BIND, и для этой цели производительность может быть просто лучше. Если вы включите регистрацию как «отладка», все вопросы и ответы будут отображаться в том, что syslogнастроено для сообщений отладки.

Dnsmasq также позволяет легко избавиться от недобросовестных рекламодателей и мешков частной жизни, вторгающихся в «аналитические» крипы, путем наложения целых доменов на 127.0.0.1


1

Если я правильно помню, Snort может выборочно отслеживать трафик на основе определенных пользователем правил. Однако Snort не будет создавать журналы для DNS-запросов, когда ваш компьютер, то есть его распознаватель, сможет ответить на вопрос из своего кэша.


1

Чтобы показать и сохранить в файл все Aзапросы DNS, запустите:

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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.