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

перенаправить созданный tcpdump файл pcap на другой сервер во время захвата пакетов

Я искал такую ​​команду, она достигает:

  1. перенаправить созданный tcpdump файл pcap на другой сервер
  2. в процессе 1. с помощью скрипта Python или другого инструмента для анализа каждого пакета.

Таким образом, с точки зрения пользователя системы, когда пакеты захватываются, он / она может просматривать пакеты, как в wirehark, и загружать файл pcap. Поскольку процедура анализа может потреблять довольно много системных ресурсов, поэтому я надеюсь, что файл pcap можно перенаправить на другой сервер и запустить анализ на этом сервере. Теперь проблема в том, nc слушатель уходит, когда tcpdump убит (я пробовал -15), хотя я надеюсь, что слушатель все еще может работать, потому что может быть несколько серверов, работающих tcpdump.

tcpdump -i eth0 port 8801 -w a.pcap | nc 192.168.12.5 9901

Настройте tcpdump на стандартный вывод необработанных данных PCAP и используйте SSH в качестве транспортного механизма, чтобы эти данные записывались в удаленный файл на удаленном хосте анализа в виде непрерывного потока.

Пример:

tcpdump -i eth0 port 8801 -w - | ssh ${remote_host} "cat >> $(hostname).pcap"

В приведенном выше примере я использовал $(hostname) чтобы оценить имя хоста сервера (на котором запускается tcpdump), чтобы разумно назвать удаленный файл, но, конечно, адаптируйте это к своим потребностям (возможно, включите метку времени в имя, если это полезно).

Альтернативный пример с именованием удаленного файла с временной меткой UNIX:

tcpdump -i eth0 port 8801 -w - | ssh ${remote_host} "cat > $(hostname)_$(date +%s).pcap"

Я думаю, вы можете получить желаемый результат, используя отдельный nc процесс, который слушает сервер, где tcpdump запускает и дублирует его на удаленный сервер.

Ты можешь сделать nc послушайте и отправьте (в качестве примера):

 nc -k -l localhost 9901 | nc 192.168.12.5 9901

тогда вы можете подключить любой tcpdump сеанс, который вам нужен с

 tcpdump -i eth0 port 8801 -w a.pcap | nc localhost 9901

В -k флаги "Заставляет nc продолжать прослушивание другого соединения после завершения текущего соединения."

Помните, что если вы используете дистрибутив на основе Debian, есть известная ошибка:

В netcat-traditional пакет в Debian / Ubuntu не слушает, как> должно. В этом случае используйте netcat-openbsd пакет вместо этого.