Wireshark (Русский)
Wireshark — бесплатная программа-анализатор сетевых пакетов с открытым исходным кодом. Она используется для решения проблем в сети, анализа, разработки программного обеспечения и протоколов связи, а также для обучения.
Установка
Установите пакет wireshark-qt, который предоставляет графический интерфейс. Версия для командной строки (tshark(1)) доступна в пакете wireshark-cli.
termshark — альтернативная версия для командной строки.
Разрешение на захват пакетов
Не запускайте Wireshark от имени root; это небезопасно. Wireshark позволяет разделить привилегии: пользовательский интерфейс запускается от имени обычного пользователя, в то время как утилита dumpcap запускается от имени root. [1]
Установочный скрипт пакета wireshark-cli настраивает привилегии для исполняемого файла /usr/bin/dumpcap
.
/usr/bin/dumpcap
может выполняться только пользователем root и пользователями из группы wireshark
, поэтому для использования Wireshark от имени обычного пользователя добавьте себя в группу wireshark
.
Методы анализа захваченных пакетов
В Wireshark есть много разных способов захватить в точности то, что вам нужно. Для этого используются фильтры захвата (capture filters) и дисплейные фильтры (display filters).
Фильтрация TCP-пакетов
Чтобы посмотреть все текущие TCP-пакеты, введите tcp
в фильтр захвата. В командной строке:
$ tshark -f "tcp"
Фильтрация UDP-пакетов
Чтобы посмотреть все текущие UDP-пакеты, введите udp
в фильтр захвата. В командной строке:
$ tshark -f "udp"
Фильтрация пакетов с определённым IP-адресом
- Для просмотра трафика, отправляемый на определённый адрес, используйте следующий дисплейный фильтр:
ip.dst == 1.2.3.4
. - Для просмотра трафика, отправляемого с определённого адреса:
ip.src == 1.2.3.4
. - Для просмотра входящего и исходящего трафика, связанного с указанным адресом:
ip.addr == 1.2.3.4
.
Исключение пакетов с определённым IP-адресом
ip.addr != 1.2.3.4
Фильтрация пакетов локальной сети
Чтобы посмотреть только локальный трафик, не связанный с интернетом, можно использовать такой дисплейный фильтр:
(ip.src==10.0.0/8 AND ip.dst==10.0.0/8) OR (ip.src==172.16.0.0/12 AND ip.dst==172.16.0.0/12) OR (ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16)
Он покажет только трафик в пределах локальных сетей.
Фильтрация пакетов с определённым портом
Просмотр всех пакетов с указанными TCP-портами:
tcp.port==80||tcp.port==3306 tcp.port==80||tcp.port==3306||tcp.port==443
Захват в фоне с помощью dumpcap
dumpcap — компонент Wireshark, используемый для захвата пакетов без какого-либо графического интерфейса. В сочетании с tmux он позволяет захватывать пакеты в фоновом сеансе.
Для просмотра всех доступных параметров запустите dumpcap с флагом -h
.
Следующий пример захватывает пакеты из кольцевого буфера. Он захватывает двадцать файлов .pcap
размером 100 МБ каждый, заменяя самый старый файл двадцать первым и так далее. Это позволяет осуществлять непрерывный захват без исчерпания дискового пространства.
# dumpcap -i 1 -b filesize:100000 -b files:20 -w mycapture.pcapng
-
-i
− номер интерфейса (как указано вdumpcap -D
)
-
-b filesize:
− размер файла (в килобайтах), при достижении которого начнётся запись нового файла.pcap
-
-b files:
− максимальное число сохраняемых файлов
-
-w
− запись захвата в файлmycaptureidentifier.pcapng