Научитесь использовать возможности фильтрации tcpdump, чтобы упростить работу с сетевыми данными.
Каждый, кто использует этот инструмент в реальной ситуации, сразу замечает, как много информации (я полагаю, это называется "verbose"...) представляется пользователю. Одна из лучших вещей, которую вы можете сделать для себя, это найти практический способ фильтрации нужной вам информации. Давайте рассмотрим некоторые способы, с помощью которых вы можете это сделать.
Общие параметры фильтрации
Инструмент tcpdump имеет несколько различных встроенных способов фильтрации самого захвата. Это означает, что вы можете сузить круг получаемой информации еще до начала захвата. Это очень предпочтительно и делает фильтрацию после захвата гораздо менее утомительным процессом. Ниже перечислены некоторые из фильтров, которые можно использовать до захвата:
Для фильтрации по IP-адресу:
1 | tcpdump host x.x.x.x |
Для фильтрации по интерфейсу:
1 | tcpdump -i eth0 |
Для фильтрации по источнику:
1 | tcpdump src x.x.x.x |
Для фильтрации по месту назначения:
1 | tcpdump dst x.x.x.x |
Для фильтрации по протоколу:
1 | tcpdump icmp |
Этот список не охватывает все доступные опции, но дает вам хорошую отправную точку. Далее рассмотрим некоторые другие способы манипулирования захватом.
Запись захватов в файл (pcap)
В связи с необходимостью поиска и устранения неисправностей я считаю полезным документировать то, что я вижу при захвате с помощью tcpdump. К счастью, у tcpdump есть формат выходного файла, который фиксирует все данные, которые мы видим. Этот формат называется файлом захвата пакетов, или PCAP, и используется в различных утилитах, включая сетевые анализаторы и tcpdump. Здесь мы записываем в файл PACAP под названием output_file с помощью параметра -w.
1 | tcpdump -i eth0 -c100 -nn -w output_file |
Чтение файлов pcap
Вы можете читать файлы PCAP с помощью параметра -r. Сразу предупреждаем: если вы попытаетесь прочитать PCAP-файл обычными средствами (cat, Vim и т.д.), вы получите нечитаемую тарабарщину. Если вы хотите использовать эти программы для просмотра вывода, продолжайте читать.
1 | tcpdump -r output_file |
Запись данных tcpdump в .txt
Если вы хотите использовать обычные средства для чтения выходного файла, вам необходимо повторно запустить tcpdump, исключив флаг -w. Ниже видно, что мы используем стандартный формат вывода в файл с именем файла output.txt.
1 | tcpdump -i eth0 -c100 -nn > output.txt |