
Установка и использование tcpdump
tcpdump — мощный анализатор командной строки и Libpcap, портативная библиотека для захвата сетевого трафика. Tcpdump выводит описание содержимого пакетов на сетевом интерфейсе, которые соответствуют логическое выражение. Он также может быть запущен с ключом -w, который вызывает его, чтобы сохранить пакетные данные в файл для последующего анализа, и / или с -r флагом, который вызывает его для чтения из сохраненного файла пакета. С помощью этой утилиты можно перехватывать и так же анализировать сетевой трафик который проходит через ПК на котором запущенна данная программа.
Хотелось бы поговорить в данной теме «установка и использование tcpdump» об установке tcpdump, а так же как им пользоваться и для чего он нужен.
С помощью tcpdump можно:
- Можно делать отладку сетевых приложений.
- Можно производить отладку сети или сетевого оборудования в целом.
<img aria-describedby= >описание tcpdump
Чтобы установить tcpdump на debian/ubuntu/linux mint нужно выполнить:
Для того чтобы установить tcpdump на RedHat/CentOS/Fedora используйте:
Для того чтобы установить tcpdump на MacOS используйте.
Подключаем (устанавливаем) HOMEBREW.
Использование tcpdump.
Чтобы проверить работает ли у нас tcpdump можно выполнить команду:
# tcpdump -i eth0 port 80
Существует довольно много ключей для использования самой утилиты tcpdump, приведу список распространенных:
<img aria-describedby= >основные ключи для использования tcpdump
Если нужно узнать какими пакетами обменивается 21 сервера ( например your_server_1 и your_server_2), то для этого служит команда:
# tcpdump host·your_server_1 and your_server_2
Если нужно отслеживать только исходящие пакеты из хоста, то выполните:
#·tcpdump src host·your_server
Если нужно отслеживать только входящие пакеты из хоста, то выполните:
#·tcpdump dst host·your_server
Так же можно прослушивать исходящие или входящие пакеты с сервера и по определенному порту для этого просто добавьте порт который нужно прослушивать ( в основном используется 80, 8080).
См. список интерфейсов, по которым tcpdumt можете слушать:
Слушать интерфейс eth0:
Слушать на любом доступном интерфейсе (Требуется ядро Linux версии 2.2 или выше):
Вывод всего на экран (все что выполняется программой):
Вывод много чего на экран (все что выполняется программой):
Вывод очень много всего на экран (все что выполняется программой):
Выводить не сильно много информации когда идет захват пакетов (не как стандартный):
Ограничить захват пакетов до 100:
Записать все данные (перехваченные пакеты) в файл с именем capture.cap:
Записать все данные (перехваченные пакеты) в файл с именем capture.cap и вывести на экран в режиме реального времени:
# tcpdump -v -w capture.cap
Вывод пакетов с файла capture.cap:
Вывод пакетов с файла capture.cap используя максимально много информации:
#·tcpdump -vvv -r capture.cap
Вывод IP и порты вместо доменов идет захват пакетов:
Захват любых пакетов , где хост назначения — 192.138.1.1. Вывод ИП и порты на экран:
# tcpdump -n dst host 192.138.1.1
Захват любых пакетов c хоста 192.138.1.1. Вывод ИП и порты на экран:
# tcpdump -n src host 192.138.1.1
Захват любых пакетов c хоста 192.138.1.1. Вывод ИП и порты на экран:
# tcpdump -n host 192.138.1.1
Захват пакетов где сеть 192.138.1.0/24. Вывод ИП и порты на экран:
# tcpdump -n dst net 192.138.1.0/24
Захват пакетов с сети 192.138.1.0/24. Вывод ИП и порты на экран:
# tcpdump -n src net 192.138.1.0/24
Захват пакетов с сети 192.138.1.0/24. Вывод ИП и порты на экран:
# tcpdump -n net 192.138.1.0/24
Захват пакетов с порта 23. Вывод ИП и порты на экран:
Захват пакетов с портов 1 по 1023. Вывод ИП и порты на экран:
# tcpdump -n dst portrange 1-1023
Захватывать только TCP пакеты где destination на портах 1 по 1023. Вывод ИП и порты на экран:
# tcpdump -n tcp dst portrange 1-1023
Захватывать только UDP пакеты где destination на портах 1 по 1023. Вывод ИП и порты на экран:
# tcpdump -n udp dst portrange 1-1023
Захват пакетов с destination где ИП 192.138.1.1 и destination порт которого 23. Вывод на экран:
# tcpdump -n "dst host 192.138.1.1 and dst port 23"
Захват пакетов с destination где ИП 192.138.1.1 и destination по портам 80 или 443. Выводим на экран:
# tcpdump -n "dst host 192.138.1.1 and (dst port 80 or dst port 443)"
Захват любых ICMP пакетов:
Захват любых ARP пакетов:
Захват любых ICMP или ARP пакетов:
# tcpdump -v "icmp or arp"
Захват любых пакетов которые broadcast или multicast:
# tcpdump -n "broadcast or multicast"
Захват больших пакетов (500 байт) а не стандартных 68б:
Захват всех байт данных в пакете:
Просмотр «тяжелых пакетов»:
Захват пакетов ICMP с ping и pong:
# tcpdump -nnvXSs 0 -c2 icmp
Вывод без многих вариантов:
Основные коммуникации (очень подробный режим), можно увидеть хороший объем трафика, с многословием:
Глубокий взгляд на трафик, добавляет -X для полезной нагрузки:
Просмотр тяжелого пакета и увеличивает snaplength, захватывая весь пакет:
Вы можете также фильтровать на основе определенных частей пакета, а также объединить несколько условий в группы. Это полезно при поиске только SYNs или РСТ, например, и последний для еще более расширенный изоляцией трафика.
Показать мне все URGENT (URG) пакеты:
# tcpdump 'tcp[13] & 32!=0'
Показать мне всеACKNOWLEDGE (ACK) пакеты:
# tcpdump 'tcp[13] & 16!=0'
Показать мне все PUSH (PSH) пакеты:
# tcpdump 'tcp[13] & 8!=0'
Показать мне все RESET (RST) пакеты:
# tcpdump 'tcp[13] & 4!=0'
Показать мне все SYNCHRONIZE (SYN) пакеты:
# tcpdump 'tcp[13] & 2!=0'
Показать мне все FINISH (FIN) пакеты:
# tcpdump 'tcp[13] & 1!=0'
Показать мне все SYNCHRONIZE/ACKNOWLEDGE (SYNACK) пакеты:
Захват TCP Flags используя tcpflags:
#·tcpdump 'tcp[tcpflags] & & tcp-syn != 0'
Пакеты с RST и SYN флагами (проверка):
Траффик с ‘Evil Bit'(проверка):
# tcpdump 'ip[6] & 128 != 0'
На этом я завершу свою статью «установка и использование tcpdump», надеюсь все ясно и понятно. Спасибо за использование моего интернет ресурса http://linux-notes.org