tcpdump знают все. Но часто его используют как
tcpdump -i any и тонут в потоке пакетов. Ниже будут написаны фильтры, которые действительно спасают.▪️ Фильтрация по хосту и сети. Трафик к конкретному IP:
tcpdump -i eth0 host 10.10.10.5
Только исходящий:
tcpdump -i eth0 src 10.10.10.5
Подсеть:
tcpdump net 192.168.1.0/24
▪️ Порты и сервисы. HTTP:
tcpdump tcp port 80
Несколько портов:
tcpdump 'tcp port 80 or tcp port 443'
Исключить SSH:
tcpdump 'not port 22'
▪️ Поиск конкретных TCP-флагов. Только SYN (поиск сканирования):
tcpdump 'tcp[tcpflags] & tcp-syn != 0'
RST-пакеты (поиск проблем с соединением):
tcpdump 'tcp[tcpflags] & tcp-rst != 0'
▪️ Поиск по содержимому. Найти строку в HTTP:
tcpdump -A -s 0 'tcp port 80' | grep "POST"
Фильтр по размеру пакета:
tcpdump 'greater 1000'
▪️ Анализ проблем с соединением. Только неустановленные соединения:
tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn'
Повторные передачи:
tcpdump 'tcp[tcpflags] & tcp-ack != 0'
▪️ Захват в файл для анализа. Лучше всегда писать в pcap:
tcpdump -i eth0 -s 0 -w dump.pcap
Анализировать потом можно в Wireshark, так удобнее разбирать сложные кейсы.
#linux #tcpdump
🧑💻 NetworkAdmin