Привет, сетевой друг!
Сегодня расскажу про 5 полезных способов юзать conntrack для анализа сетевого трафика.🟣Найти “зависшие” соединения, тормозящие систему: Если NAT таблица близка к заполнению, ищем давно неактивные, но живые соединения:
conntrack -L | awk '$7 ~ /^[0-9]+$/ && $7 > 300'
🟣Отследить, какие соединения используют определённый SNAT-адрес: Когда у сервера несколько внешних IP, вы можете выяснить, какой SNAT-адрес используется каким клиентом:
conntrack -L -p tcp | grep dnat
🟣Анализировать поведение клиентов внутри кластера: Смотрим, какие IP активны в текущий момент и на какие порты ходят. Полезно при отладке балансировщиков:
conntrack -L | grep 'ESTABLISHED' | awk '{print $5}' | sort | uniq -c | sort -nr🟣Реагировать на создание соединений (в т.ч. блокировать или логировать): conntrackd + ulogd или conntrack-tools позволяют подписываться на события. Можно, например, логировать все NEW-соединения с редких портов или даже отправлять webhook для SIEM-системы.
🟣Мониторить DDoS или сканирование по количеству открытых соединений: Если у одного IP одновременно больше 200 ESTABLISHED — это повод насторожиться:
conntrack -L | grep ESTABLISHED | awk '{print $5}' | sort | uniq -c | sort -nr | headСерверная Админа | #network