Я пытаюсь отфильтровать журналы, чтобы найти подозрительный исходящий трафик на внешние веб-сайты. На DNS-сервере я могу настроить ведение журнала отладки, но я не вижу способа просмотреть исходный источник компьютера, отправляющего DNS-запрос на сервер. Есть ли способ получить эти данные, чтобы узнать IP-адрес источника DNS-запросов, поступающих на мой сервер?
Я бы подумал об использовании Wireshark или Microsoft Сетевой монитор с фильтром захвата с достаточной степенью детализации, чтобы ограничить захват трафиком DNS, который вы ищете. После сбора данных вы можете вернуться и провести анализ.
Я бы, наверное, использовал tshark
программа командной строки в Wireshark для захвата трафика в относительно небольшие файлы, затем используйте tshark
снова на другой машине, чтобы выгрузить файлы и просмотреть их. Командная строка захвата может выглядеть примерно так:
tshark -i <inteface number here> -b filesize:32768 -w dns_capture udp and dst port 53 and dst host x.x.x.x
Вы можете получить номер интерфейса вашей машины, используя tshark -D
. В -b filesize:32768
Аргумент определяет захват в буфер размером 32 768 КБ (32 МБ) перед запуском нового файла захвата. В -w dns_capture
задает базовое имя выходного файла dns_capture
(который будет иметь инкрементный счетчик и временную метку, добавляемую по мере заполнения каждого файла). В udp and dst port 53 and dst host x.x.x.x
это фильтр захвата tcpdump, который указывает, что только udp-пакеты с портом назначения 53 и адресом назначения x.x.x.x
(где вы должны подставить IP-адрес DNS-сервера) будет записан.
Получив файлы, вы можете использовать любое количество инструментов анализа файлов PCAP. Лично я бы просто использовал tshark
с -r
аргумент для чтения файлов и вывода их в виде удобочитаемого текста с использованием -T text
аргумент. Затем я просто выводил результат с помощью grep. (Я бы сделал это в основном потому, что у меня есть все готовые инструменты. Есть много других способов сделать это.)