Часто команда, которая поддерживает програмное обеспечение на серверах "не до конца уверена" куда же ходит сервер ( к каким другим серверам).
Приемлемых результатов достиг разделив обработку tcp и udp отдельно.
Для TCP можно выделить соединения (tcp flow), чтобы не бороться с фильтрацией динамических портов, и отфильтровать сканы несуществующих портов
1) Для выделения потоков воспользовался утилитой tcpick (ставится на ubuntu
apt-get install tcpick
).
2) Отобрал только established. Быстро просмотрел результат с помощью вывода в more.
3) Дальше немного почистил с помощью egrep -v 'известное1| известное 2' (кому-то больше нравится писать grep -vE )
Команда выглядела так
tcpick -a -r 123.pcap | grep 'ESTABLISHED' | egrep -v 'известное1|известное2' > temp
2) склеиваем вывод файла в один файл
temp >> temp_result_tcp
, потом
temp2 >> temp_result_tcp
и так далее
3) Отбираем только destination. Смотрим файл, например less имя файла
В полученном промежуточном сводный файле:
- выбираем 5 столбец (destination)
- сортируем,
- считаем дубли - ключ c в uniq
- оставляем uniq только имеющиеся дубли (за счет ключа -d) не нужны мне случайные соединения за неделю (в моем случае так надо, в вашем может быть иначе)
- результат сортируем по числам за счет ключа n
- Самых активных выводим первыми за счет ключа r в программе sort
awk '{print $5}' | sort | uniq -cd | sort -nr
Просматриваем глазами результат ( в моем случае были настойчивые сканеры), убираем явных сканеров.
Кстати, смотреть tcpick с ключом - С (цвет) pcap, созданный тем же tcpdump, мне понравилось.
Обработка UDP
1) Читаем еще раз исходный файл pcap, но уже читаем только udp
tcpdump udp -r имя файла дампа | more . Бегло просматриваем что можно выбросить сразу
2) чистим tcpdump udp -r 123.cap| egrep -v '.domain|ntp|sip|mdns|dhcpv6|netbios| и прочее'
в моем случае это был multicast и почему-то порт 53413 (оказалась популярная цель для сканеров)
3) Оставил и source и destination и значок направления. Обьем в моем случае очевидно меньше. Команда awk '{print $3,$4,$5} > в файл.
4) Склеиваем аналогично результат всех в один файл, проходим
awk '{print $3,$4, $5}' | sort | uniq -cd | sort -nr
5) Просматриваем глазами, убираем явных сканеров и оставшийся мусор
Сводим два файла в один, сравниваем с полученными ранее результатами опроса. Помогаем коллегам найти все компоненты приложения.