В данной заметке рассмотрим работу Mikrotik с NetFlow.
 Так же установим и настроим Nfsen для сбора и визуализации трафика.
 Пару слов о Nfsen:)
 Название происходит от NetflowSensor.
 При установке Nfsen в FreeBSD по мимо web-интерфейса так же устанавливаются несколько утилит для работы с NetFlow:
- nfcapd — коллектор NetFlow
 - nfdump для работы с данными nfcapd
 - nfprofile — профилировщик сетевых потоков
 
Для каждого потока требуется запуск отдельного экземпляра nfcapd.

Немного вводных данных:
- FreeBSD 12.1 (192.168.88.2)
 - NGINX
 - PHP (включая php-fpm)
 - Mikrotik (192.168.88.1)
 - Локальная сеть — 192.168.88.0/24
 - nfsen.mydomain.ru — имя виртуального хоста
 
Предполагается, что у вас настроен NGINX и php-fpm, если нет, то дело 10 минут.
 Обязательно в php.ini пропишите свою часовую зону, иначе Nfsen будет считать время UTC:
vi /usr/local/etc/php.ini date.timezone = Europe/Moscow
Ставить будем из портов:
portsnap fetch update cd /usr/ports/net-mgmt/nfsen && make install clean echo nfsen_enable=\"YES\" >> /etc/rc.conf
Сразу перезапустим php-fpm:
/etc/usr/local/rc.d/php-fpm restart
На всякий случай сделаем копию конфигурационного файла Nfsen:
cp /usr/local/etc/nfsen.conf /usr/local/etc/nfsen.conf.sample
Опишем в конфигурационном файле Nfsen наш канал данных Netflow (предварительно удалив тестовые данные из него):
vi /usr/local/etc/nfsen.conf
%sources = (
    'Mikrotik3011'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
); Добавим данный канал (source) в Nfsen командой:
nfsen reconfig New sources to configure : Mikrotik3011 Continue? [y/n] y Add source 'Mikrotik3011' Reconfig done!
Запустим Nfsen:
/usr/local/etc/rc.d/nfsen start
Включим Trafic Flow в Mikrotik и создадим цель (Targets), сделаем через консоль:
/ip traffic-flow set cache-entries=1M enabled=yes /ip traffic-flow target add dst-address=192.168.88.2 port=9996 version=5
Настроим NGINX, подключим конфигурационные файлы виртуальных хостов из директории /usr/local/etc/nginx/conf.d, указав это в блоке http nginx.conf.
 Обратите внимание на запись allow 192.168.88.0/24;  — этой записью мы разрешили доступ только для сети 192.168.88.0/24:
vi /usr/local/etc/nginx/nginx.conf
include conf.d/*.conf;
mkdir /usr/local/etc/nginx/conf.d /var/nginx/nfsen
vi /usr/local/etc/nginx/conf.d/nfsen.mydomain.conf
server {
        listen 80;
        server_name nfsen.mydomain.ru;
        root /usr/local/www/nfsen;
        access_log /var/log/nginx/nfsen/access.log;
        error_log  /var/log/nginx/nfsen/error.log  error;
        index nfsen.php;
location / {
  allow   192.168.88.0/24;
  deny    all;
}
location ~* \.(gif|jpg|png)$ {
        expires 30d;
}
location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_ignore_client_abort off;
}
}
 Перезапустим NGINX:
nginx -s reload
Заходим на страницу http://nfsen.mydomain.ru браузером, если все сделали верно, то вывод будет похож на мой (раздел Details):
 
Интерес представляет окно для ввода фильтров (Filter):
 К примеру правило — src net 192.168.3.0/24 отфильтрует только обращения из данной сети (у меня на ней живут Wi-Fi пользователи CapsMan), так же фильтры можно сохранять для повторного использования:
Aggregated flows 4724 Top 10 flows ordered by flows: Date first seen Duration Proto Src IP Addr:Port Dst IP Addr:Port Out Pkt In Pkt Out Byte In Byte Flows 2020-06-25 11:12:45.369 16629.730 TCP 192.168.3.30:41887 <-> 107.155.52.117:5222 0 139 0 16309 64 2020-06-25 13:57:57.059 2153.250 TCP 192.168.3.30:60650 <-> 213.180.204.60:443 0 105 0 7086 37 2020-06-25 13:57:42.489 2167.820 TCP 192.168.3.30:58360 <-> 5.255.255.60:443 0 540 0 135310 37 2020-06-25 13:57:57.039 2153.270 TCP 192.168.3.30:54289 <-> 87.250.251.60:443 0 530 0 32709 37 2020-06-25 13:57:45.139 2165.170 TCP 192.168.3.30:36134 <-> 213.180.204.63:443 0 49 0 4357 37 2020-06-25 13:57:59.109 2151.200 TCP 192.168.3.30:39327 <-> 77.88.21.60:443 0 49 0 3744 37 2020-06-25 13:57:59.129 2151.180 TCP 192.168.3.30:39328 <-> 77.88.21.60:443 0 56 0 6568 37 2020-06-25 10:09:09.049 20465.500 UDP 192.168.3.13:138 <-> 192.168.3.255:138 0 75 0 17803 35 2020-06-25 09:54:21.089 6349.450 TCP 192.168.3.15:47477 <-> 64.233.165.188:5228 0 65 0 4340 30 2020-06-25 10:27:52.749 3291.370 TCP 192.168.3.15:42707 <-> 77.88.21.125:993 0 99 0 6957 21 Summary: total flows: 6389, total bytes: 15.5 M, total packets: 179085, avg bps: 5762, avg pps: 8, avg bpp: 86 Time window: 2020-06-25 09:45:00 - 2020-06-25 15:50:58 Total flows processed: 3773370, Blocks skipped: 0, Bytes read: 211320808 Sys: 0.730s flows/second: 5165617.6 Wall: 0.720s flows/second: 5237547.3
Для более детального изучения синтаксиса построения фильтров — рекомендую man nfdump
На этом вроде все:)