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

18

Как я могу создавать журналы каждого 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.

bahamat
источник
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-запросов, когда ваш компьютер, то есть его распознаватель, сможет ответить на вопрос из своего кэша.

Bananguin
источник
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.

Ванни
источник