При анализе сетевого трафика в Linux часто используют
tcpdump, но его мощь раскрывается по-настоящему при использовании Berkeley Packet Filter (BPF). BPF позволяет фильтровать пакеты на уровне ядра, отбрасывая ненужные и снижая нагрузку на систему.▪️ Основные принципы работы
BPF действует как программируемый фильтр, который определяет, какие пакеты должны быть обработаны и переданы в tcpdump. Это ускоряет анализ и снижает нагрузку на CPU.
▪️ Использование BPF в tcpdump
⭐️ Фильтрация по IP-адресу
tcpdump -i eth0 'host 192.168.1.100'
Перехватывает трафик, где участвует 192.168.1.100.
⭐️ Фильтрация по порту
tcpdump -i eth0 'port 443'
Выводит только HTTPS-трафик.
⭐️ Фильтрация по протоколу
tcpdump -i eth0 'tcp'
Отбирает только TCP-пакеты.
⭐️ Фильтрация по флагам TCP. Например, вывод только SYN-пакетов:
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
Полезно для анализа попыток соединения.
⭐️ Анализ пакетов в hex-формате
tcpdump -i eth0 -X 'host 10.0.0.1'
Показывает содержимое пакетов в удобном виде.
⭐️ Создание сложных фильтров. Можно комбинировать фильтры, например, анализировать только HTTP-запросы от конкретного IP:
tcpdump -i eth0 'tcp and port 80 and src host 192.168.1.10'
#linux #network
🧑💻 NetworkAdmin