Анализ количества tcp-соединений в Debian Linux

Иногда нужно быстро проанализировать количество tcp-соединений как во всей системе, так и по конкретному порту.

Какими способами это можно сделать в Debian Linux ?

1. Анализ соединений на 80 порт с использованием tcpdump:

Вначале пишем в лог-файл 1000 пакетов:

tcpdump -i eth0 -v -n -w attack.log dst port 80 -c 1000

Далее анализируем данные с сортировкой

tcpdump -nr attack.log | awk '{print $3}' |grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' |sort |uniq -c |sort -rn

или сокращенный вариант вывода

tcpdump -nr attack.log | awk '{print $3}' |grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' |sort |uniq -c |sort -rn | head -20

2. Анализ количества tcp-соединений через /proc/net/ip_conntrack

awk '{print $5}' /proc/net/ip_conntrack | sort | uniq -c | sort -rn | head -25 | column -t

Смотрим количество соединений и с каких IP их больше всего.

3. Анализ количества tcp-соединений через netstat

Общий анализ количества tcp-соединений через netstat:

netstat -npt | awk '{print $5}' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

Общее количество tcp-соединений в разных состояниях:

netstat -npt | awk '{print $6}' | sort | uniq -c | sort -nr | head

Анализ количества tcp-соединений через netstat на 80 порт в состоянии ESTABLISHED:

netstat -npt | grep 80 | grep ESTABLISHED | awk '{print $5}' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

Анализ количества tcp-соединений через netstat на 80 порт:

netstat -plane | grep :80 | awk {'print $5'} | cut -d ':' -f1 | sort -n | uniq -c | sort -rn  | head -10

или

netstat -npt | grep 80 | awk '{print $5}' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

Хотите оставить комментарий?