Tcpdump
tcpdump — консольный универсальный анализатор пакетов, представляющий собой систему для перехвата, изучения и фильтрации сетевого трафика компьютера. Позволяет пользователю перехватывать и наблюдать передаваемые и получаемые по сети TCP/IP и другие пакеты данных. Распространяется с открытым исходным кодом под лицензией BSD и является бесплатным программным обеспечением.
tcpdump работает на Unix-подобных операционных системах, включая Linux, Solaris, BSD, Mac OS X, HP-UX и AIX. Для перехвата пакетов tcpdump использует библиотеку libpcap. Версия tcpdump для Windows носит название WinDump и использует WinPcap, порт библиотеки libpcap для Windows.
Общие сведения
| tcpdump | |
|---|---|
| Тип | программное обеспечение для компьютерной безопасности |
| Разработчик | The Tcpdump team |
| Написана на | Си[1] |
| Операционные системы | Unix, *NIX-системы |
| Последняя версия | 4.99.5 (30 августа 2024) |
| Репозиторий | github.com/the-tcpdump-g… |
| Лицензия | BSD |
| Сайт | tcpdump.org |
История
Программа была впервые написана в 1987 году Ваном Якобсоном, Крейгом Лересом и Стивеном МакКэнном в Network Research Group Lawrence Berkeley Laboratory. К концу 1990-х было распространено множество версий tcpdump и многочисленные патчи под разные операционные системы. В 1999 году Майкл Ричардсон и Билл Феннер создали сайт tcpdump.org.
Общие возможности
Tcpdump используется для анализа сетевого поведения, производительности и приложений, создающих сетевой трафик. Программа может применяться для оценки корректности маршрутизации и для изоляции сетевых проблем. С помощью tcpdump возможен и перехват коммуникаций других пользователей, например просмотр незашифрованных данных (логинов, паролей, URL, содержимого посещённых сайтов) через трафик Telnet, HTTP и других открытых протоколов на устройствах с соответствующими привилегиями. Для ограничения количества отображаемых пакетов может использоваться BPF-фильтр, что особенно полезно в сетях с интенсивным трафиком.
Необходимые привилегии
В некоторых Unix-подобных системах для использования tcpdump требуются права администратора, так как механизм захвата пакетов требует повышенных привилегий. В то же время опция-Z позволяет после установки параметров захвата передать управление обычному пользователю. В ряде других систем механизм захвата пакетов можно настроить для работы без привилегий администратора.
Основные параметры
При анализе сетевого поведения, производительности и приложений tcpdump может использовать ряд параметров. Все опции управления задаются ключами командной строки. При запуске без параметров программа слушает первый доступный сетевой интерфейс — это возможно только при запуске от имени root. Большинство параметров tcpdump не требуется заучивать наизусть.[2]
Для приёма пакетов, адресованных не данному компьютеру, требуется режим promiscuous (перехват всех пакетов). Обычно анализаторы сети сами переводят интерфейс в этот режим и обратно.
ifconfig: Показывает параметры Ethernet-карты (сетевого интерфейса) и её текущий режим, позволяет управлять настройками.
promisc: Позволяет принимать пакеты, не предназначенные данному IP-адресу.
Если явно не указать сетевой интерфейс, будет прослушиваться интерфейс с наименьшим номером (например, eth0 из eth0, eth1, eth2).
→ С помощью параметра -i указывается желаемый интерфейс
# tcpdump -i eth2 (слушает 3-ю Ethernet-карту)
→ Список всех доступных к прослушиванию интерфейсов выводится через -D
# tcpdump -D
→ Чтобы не разрешать DNS-имена в перехваченных пакетах, используется параметр -n
# tcpdump -n
- Недостаток: разрешение имён требует времени и на загруженных сетях может замедлять вывод.
→ Чтобы не разрешать также протоколы и порты, используется -nn
# tcpdump -nn
- Например, вместо "telnet" сразу отображается порт 23 без попытки разрешения.
→ Для упрощённого вывода без метки времени — параметр -t
# tcpdump -t
→ Чтобы не выводить перехваченные пакеты на экран, их можно записать в файл формата cap:
# tcpdump -w имя_файла
- Файл, записанный с помощью -w, можно затем прочитать через -r. При этом фильтры можно задавать как при записи, так и при чтении — эти фильтры могут различаться.
→ Чтение файла производится так:
# tcpdump -r имя_файла
- Пример: при сохранении или чтении возможна фильтрация трафика, например запись только определённых пакетов или без меток времени.
→ Для задания числа пакетов – опция -c
# tcpdump -i eth0 -c 5 TCP
- Перехватывает 5 TCP-пакетов и завершает работу.
→ Для указания максимального размера пакета (байт) — параметр -s
# tcpdump -s 1500
→ Для детализированного логирования — опция -v
# tcpdump -i eth0 -n -c 5 -v
- Эта команда покажет значения TTL и ID.
→ Для отключения promiscuous-режима — опция -p
# tcpdump -p -i eth0
- Преимущество: будут обрабатываться только пакеты, назначенные данному интерфейсу (broadcast или адресные).
- Обычно используется при локальном анализе трафика собственной машины.
→ Для захвата Ethernet-заголовка — опция -e
# tcpdump -e
- Показывает MAC-адреса.
# tcpdump greater 42 > файл.txt — Записывает пакеты размером больше 42 байт в файл.
# tcpdump -c 42 greater 42 -w example.dump — Записывает первые 42 пакета размером больше 42 байт.
# tcpdump -r example.dump
→ Для фильтрации по назначенному хосту — параметр dst host
# tcpdump -i eth0 dst host 10.0.0.1
→ Для фильтрации по источнику — src host
# tcpdump -i eth0 src host 10.1.0.59
- Можно комбинировать dst и src в одной команде.
# tcpdump -i eth0 src host 10.1.0.59 and dst host 10.0.0.1
→ Для фильтрации по порту — port, src port, dst port
# tcpdump port 23
- Пакеты с исходным или конечным портом 23.
# tcpdump src port 23
- Пакеты с исходным портом 23.
-X: Выводит содержимое пакета в hex и ASCII.
-XX: То же, что и -X, плюс отображение Ethernet-заголовка.
-nS: Анализ пакетов с минимальным набором параметров.
-nnvvXS: Детальный анализ трафика.
-E: Для анализа IPSEC-трафика, зашифрованного ключом.
Примечания
Ссылки
- Официальный сайт Tcpdump. tcpdump.org. Дата обращения: 21 июня 2024. Архивировано 21 июня 2000 года.
- Официальный сайт WinDump. winpcap.org. Дата обращения: 21 июня 2024. Архивировано 8 октября 2011 года.
- ngrep — инструмент, похожий на tcpdump. sourceforge.net. Дата обращения: 21 июня 2024. Архивировано 24 апреля 2012 года.
- Портативная версия tcpdump для Windows. microolap.com. Дата обращения: 21 июня 2024. Архивировано 4 мая 2012 года.
- Использование tcpdump и примеры. homes.ieu.edu.tr. Дата обращения: 21 июня 2024. Архивировано 5 марта 2016 года.
- Обзор tcpdump. danielmiessler.com. Дата обращения: 21 июня 2024. Архивировано 28 мая 2010 года.
- Мониторинг сетевого трафика с помощью tcpdump. olympos.net. Дата обращения: 21 июня 2024. Архивировано 26 мая 2013 года.
- tcpdump — документ на турецком языке. bga.com.tr. Дата обращения: 21 июня 2024. Архивировано 16 июня 2012 года.