Назад | Перейти на главную страницу

Запись сетевого трафика на один Linux-сервер, передача его другому в реальном времени

У меня есть ситуация, когда я хочу захватить весь сетевой трафик на одном ящике Linux (в настоящее время использующем tcpdump), но передать эти данные в реальном времени на другой Linux в отдельной (но подключенной) сети. По сути, у меня есть

[network i'm curious about]---[eth0. Linux box eth1]----[separate network]---[eth0 monitoring Linux box]

Что я сейчас делаю, так это сохраняю все в pcap и периодически передаю pcap в систему мониторинга Linux. Это работает, но очень неэффективно и определенно не в реальном времени. Есть ли способ заставить tcpdump сохранить pcap в поток данных, который я могу передать через прокси-сервер в поле мониторинга, не настраивая что-то вроде NFS или SMB? Я считаю, что Linux-сервер, который выполняет tcpdump, в лучшем случае подозревается и не хочу предлагать доступный для записи общий ресурс в поле мониторинга.

Любые идеи?

На monitoring_Linux_box: # nc -l -k -p 1234 > /var/tmp/pcap

В Linux: # tcpdump -U -w - | nc monitoring_Linux_box 1234

Из окна мониторинга:

# ssh root@otherbox tcpdump -n -i eth0 -w - | program_that_takes_pcap_on_input

Будет ли работать захват в реальном времени по SSH?

ssh -t remotehost 'sudo tcpdump [options]'

или если вы пользуетесь root ..

ssh root@remotehost 'tcpdump [options]'

(Не забудьте исключить ваш SSH-трафик из захвата.)

Если вы хотите посмотреть его на экране и сохранить результат в файл, подключитесь к tee.