Про то как снять NetFlow с микротика с сохранением трафика на сервере в Инете найти не сложно. Но понадобилось сохранить и содержимое трафика, а вот тут возникли небольшие сложности.
В принципе, про сам режим sniffer'а все очень доступно описано на вики Микротика, сложности возникли с сохранением трафика на внешний сервер.
Дело в том, что перехваченные пакеты микротик готов отправляет на сервер, но инкапсулируя их в протокол Tazmen Sniffer Protocol (TZSP). А вот как потом извлечь их для работы, скажем, с тем же tcpdump'ом, вот это задача. Гугленье показало, что этот протокол "из коробки" понимает Wireshark, но тот же гугл сказал, что Wireshark не сохраняет принятые данные в файл. А это очень нужно было.
В Инете было встречено упоминание программы trafr — нативная программа от Mikrotik. Судя по описанию, она решает поставленную задачу. Один минус, написана она в уже далёком 2004 году. И она 32-х разрядная. Вот что увидел при попытке её запуска:
mike@monitoring:~$]./trafr
-bash: ./trafr: No such file or directory
mike@monitoring:~$]file trafr
trafr: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.0, stripped
Эта проблема решается двумя путями. Первый: выделить отдельный сервер и поставить на нём 32-х разрядную операционку. Второй, включить поддержку этих приложений. Например, для ubuntu:
apt-get update
apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
apt-get install multiarch-support
Дальше сохраняем/фильтруем/обрабатываем принятый трафик так как нам надо:
./trafr -s | /usr/sbin/tcpdump -r - -n "(port 22 or 23 or 135 or 137 or 138 or 139 or 389 or 445)" -w test.pcap
И пример включения сниффера на микротике:
/tool sniffer set streaming-enabled=yes streaming-server=192.168.0.23 interface=WAN
/tool sniffer start
Очень надеюсь, что кому-то это сократит время на поиске и экспериментах.
Автор: Bigmike4339