NfSen + Nginx. Установка и базовая настройка

Ликбез или вместо предисловия

Базовые знания о Netflow можно почерпнуть из wiki и более подробно с habra
Extreme Networks использует sFlow, Mikrotik — NetFlow.

Различия между NetFlow и sFlow

В роли коллектора и анализатора будем использовать связку NFDump(NetFlow Dump) и NFSen(NetFlow Sensor)

Установка будет производиться на Ubuntu Server 18.04 из под root’a

1. Обновление ОС и установка пакетов

Первым делом обновим систему
apt update && apt upgrade
Если в процессе обновления было обновлено ядро лучше перезагрузить систему

Устанавливаем необходимые пакеты:

apt install perl php php-fpm nginx libmailtools-perl librrd-dev rrdtool librrds-perl libio-socket-ssl-perl  
apt install libtool build-essential mrtg nfdump nfdump-sflow mc 

А также модули Perl:

perl -MCPAN -e 'install Socket6'
perl -MCPAN -e 'install Mail::Header'
perl -MCPAN -e 'install Mail::Internet'

Создаём папку под проект:

mkdir /opt
cd /opt
mkdir nfsen
cd nfsen
mkdir src
# или одной строкой
mkdir -p /opt/nfsen/src

NfSen http://nfsen.sourceforge.net достаточно старый проект и с 2017 года не обновлялся. Поэтому чтобы не ковыряться в коде и не править возникшие или найденные с течением времени ошибки, пойдем простым путем и стянем исходные коды любезно исправленные не равнодушными людьми с github’a

cd /opt/nfsen/src
git clone https://github.com/p-alik/nfsen.git

Также есть смысл проверить часовой пояс сервера, Ubuntu server оставляет по умолчанию UTC и графики у нас будут с некоторым сдвигом по времени

$ date

Wed Apr 15 18:56:31 UTC 2020
$ cat /etc/timezone 

Etc/UTC

Поправим время через dpkg-reconfigure tzdata интерфейс псевдографики интуитивно понятен и ошибок там не наделаешь

dpkg-reconfigure tzdata

Current default time zone: 'Europe/Kiev'
Local time is now:      Wed Apr 15 21:57:25 EEST 2020.
Universal Time is now:  Wed Apr 15 18:57:25 UTC 2020.

2. Настраиваем конфигурационный файл NfSen

Перед тем как приступить к настройке проверим что у нас есть необходимы программе папки. Это папки где будет лежать скомпилированный NfSen и его веб-фронтэнд
Папка для NfSen — /opt/nfsen
Для фронэнда — /opt/nfsen/www
Создадим её mkdir /opt/nfsen/www

Дефолтный файл конфигурации находится в папке etc скачаного приложения
Скопируем дефолтный файл и переименуем в nfsen.conf

cd /opt/nfsen/src/nfsen/etc
cp nfsen-dist.conf nfsen.conf

Изменим файл конфига под наши нужды:
$BASEDIR = «/opt/nfsen»; — корневой каталог для хранения файлов NFSen
$HTMLDIR = «/opt/nfsen/www/»; — корневой каталог для файлов, связанных с web интерфейсом
$PREFIX = ‘/usr/bin’; — указываем где лежат бинарники NFDump
$USER = «www-data»; — пользователь для запуска nfcapd (sfcapd) — демона-коллектора. Т.к. sfcapd запускается NfSen’ом пользователя укажем аналогичного как и для web
$WWWUSER = «www-data»; — пользователь для работы с web. Чтобы удостоверится под каким пользователем работает nginx сделайте
cat /etc/nginx/nginx.conf | grep user

root@netops:/opt/nfsen/src/nfsen/etc# cat /etc/nginx/nginx.conf | grep user
user www-data;

$WWWGROUP = «www-data»; — группа пользователей для работы с web

В этом же файле мы настраиваем устройства, c которых слушать входящий трафик. Тут два варианта:

1-й вариант, разнести устройства по портам:

%sources = (
'Cisco' => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
'Mikrotik' => { 'port' => '9996', 'col' => '#ff0000', 'type' => 'netflow' },
);

2-й вариант, разнести устройства по IP адресам:

%sources = (
'Cisco' => { 'port' => '9996', 'col' => '#ff0000', 'IP' => '192.168.15.1' },
'Mikrotik' => { 'port' => '9996', 'col' => '#0000ff', 'IP' => '192.168.16.1' },
);

Т.к. IP адрес может меняться при перенастройке маршрутизации и не зависит от того адреса который указываем в настройках sflow на summit’e, например

# summit config
bb-vlksm32.1 # sh conf "etmon" 
#
# Module etmon configuration.
#
configure sflow sample-rate 16384
configure sflow max-cpu-sample-limit 5000
configure sflow poll-interval 1800
enable sflow
configure sflow collector 10.17.17.118 port 6552 vr "VR-Default"
configure sflow collector 10.16.240.16 port 65021 vr "VR-Default"
# в строке ниже видно что для агента установлен адрес 10.21.0.21
configure sflow agent ipaddress 10.21.0.21

# checking on server
# но сервер видит пакеты от айпи 10.17.21.211
tcpdump port 65021
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens18, link-type EN10MB (Ethernet), capture size 262144 bytes
22:12:08.193835 IP 10.17.21.211.39015 > netops.65021: UDP, length 1372
22:12:08.276113 IP 10.17.21.211.39015 > netops.65021: UDP, length 1288
22:12:08.364721 IP 10.17.21.211.39015 > netops.65021: UDP, length 1264
22:12:08.364944 IP 10.17.21.211.39015 > netops.65021: UDP, length 1324

А ещё потому что с давних пор, когда я в первый раз настраивал NfSen я не смог заставить коллектор нормально разбирать flow по адресам, мы остановимся на первом варианте.

%sources = (
    '12summit'         => { 'port' => '65012', 'col' => '#00FFFF', 'type' => 'sflow', },
    '17summit'         => { 'port' => '65017', 'col' => '#E0FFFF', 'type' => 'sflow', },
    '15summit'         => { 'port' => '65015', 'col' => '#AFEEEE', 'type' => 'sflow', },
    '11summit'         => { 'port' => '65011', 'col' => '#7FFFD4', 'type' => 'sflow', },
    '13summit'         => { 'port' => '65013', 'col' => '#40E0D0', 'type' => 'sflow', },
    '114summit'        => { 'port' => '65114', 'col' => '#48D1CC', 'type' => 'sflow', },
    '57summit'         => { 'port' => '65057', 'col' => '#00CED1', 'type' => 'sflow', },
    '16summit'         => { 'port' => '65016', 'col' => '#5F9EA0', 'type' => 'sflow', },
    '21summit'         => { 'port' => '65021', 'col' => '#4682B4', 'type' => 'sflow', },
    '95summit'         => { 'port' => '65095', 'col' => '#B0C4DE', 'type' => 'sflow', },
    '24summit'         => { 'port' => '65024', 'col' => '#B0E0E6', 'type' => 'sflow', },
    '81summit'         => { 'port' => '65081', 'col' => '#ADD8E6', 'type' => 'sflow', },
#87CEEB
#87CEFA
#00BFFF
#1E90FF
#6495ED
#7B68EE
#4169E1
#0000FF
#0000CD
#00008B
#000080
#191970
);

Порт на котором NfDump будет слушать нужный нам саммит соответствует номеру саммита в конфедерации

На саммите чтобы пакеты полетели на коллектор нужно будет добавить строку вида
configure sflow collector 10.16.240.16 port XXXXX vr «VR-Default» где XXXXX наш номер саммита в конфедерации
Кроме этого чтобы графики не смотрелись вырвиглазно, я решил пойти путем подбора палитры и остановился на оттенках синего, которые взял здесь https://colorscheme.ru/html-colors.html Нам их под все саммиты скорее всего не хватит, плюс еще хочется собирать данные с микротов, поэтому планирую что после оттенков синего пойдут оттенки зеленого. Дальше буду думать.
Потому в настройке источников уже присутствуют зарезервированые цвета на будующее.

Настройку плагинов для NfSen’a в данной публикации рассматривать не будем, т.к. выходит за рамки.
Итоговый конфиг получился следующим:

##############################
#
# NfSen master config file
#
# $Id: nfsen-dist.conf 22 2007-11-20 12:27:38Z phaag $
#
# Configuration of NfSen:
# Set all the values to fit your NfSen setup and run the 'install.pl'
# script from the nfsen distribution directory.
#
# The syntax must conform to Perl syntax.
#
##############################
#
# NfSen default layout: 
# Any scripts, modules or profiles are installed by default under $BASEDIR. 
# However, you may change any of these settings to fit your requested layout.

#
# Required for default layout
$BASEDIR = "/opt/nfsen";

#
# Where to install the NfSen binaries
$BINDIR="${BASEDIR}/bin";

#
# Where to install the NfSen Perl modules
$LIBEXECDIR="${BASEDIR}/libexec";

#
# Where to install the config files
$CONFDIR="${BASEDIR}/etc";

#
# NfSen html pages directory:
# All php scripts will be installed here.
# URL: Entry point for nfsen: http:///nfsen/nfsen.php
$HTMLDIR    = "/opt/nfsen/www/";

#
# Where to install the docs
$DOCDIR="${HTMLDIR}/doc";

#
# Var space for NfSen
$VARDIR="${BASEDIR}/var";

# directory for all pid files
# $PIDDIR="$VARDIR/run";
#
# Filter directory
# FILTERDIR="${VARDIR}/filters";
#

# FORMATDIR for custom printing formats
# FORMATDIR="${VARDIR}/fmt";
#

#
# The Profiles stat directory, where all profile information
# RRD DBs and png pictures of the profile are stored
$PROFILESTATDIR="${BASEDIR}/profiles-stat";

#
# The Profiles directory, where all netflow data is stored
$PROFILEDATADIR="${BASEDIR}/profiles-data";

#
# Where go all the backend plugins
$BACKEND_PLUGINDIR="${BASEDIR}/plugins";

#
# Where go all the frontend plugins
$FRONTEND_PLUGINDIR="${HTMLDIR}/plugins";

#
# nfdump tools path
$PREFIX  = '/usr/bin/';

#
# nfsend communication socket
# $COMMSOCKET = "$PIDDIR/nfsen.comm";

# BASEDIR unrelated vars:
#
# Run nfcapd as this user
# This may be a different or the same uid than your web server.
# Note: This user must be in group $WWWGROUP, otherwise nfcapd
#       is not able to write data files!
$USER    = "www-data";

# user and group of the web server process
# All netflow processing will be done with this user
$WWWUSER  = "www-data";
$WWWGROUP = "www-data";

# Receive buffer size for nfcapd - see man page nfcapd(1)
$BUFFLEN = 200000;

# list of extensions for each collector. See argument -T 
# for nfcapd(1) for more detailes.
# defaults to empty -> compatible to nfdump-1.5.8
# $EXTENSIONS = '';
# Example:
# $EXTENSIONS = 'all';
# $EXTENSIONS = '+3,+4';

# interval to rotate nfcapd files. See argument -t
# for nfcapd(1) for more detailes.
# default: 300 (5 minutes)
# min: 60
# max: 300
# $CYCLETIME

# Directory sub hierarchy layout:
# Possible layouts:
#
# 0 default     no hierachy levels - flat layout - compatible with pre NfSen versions
# 1 %Y/%m/%d    year/month/day
# 2 %Y/%m/%d/%H year/month/day/hour
# 3 %Y/%W/%u    year/week_of_year/day_of_week
# 4 %Y/%W/%u/%H year/week_of_year/day_of_week/hour
# 5 %Y/%j       year/day-of-year
# 6 %Y/%j/%H    year/day-of-year/hour
# 7 %Y-%m-%d    year-month-day
# 8 %Y-%m-%d/%H year-month-day/hour
$SUBDIRLAYOUT = 1;

# Compress flows while collecting 0 or 1
$ZIPcollected     = 1;

# Compress flows in profiles 0 or 1
$ZIPprofiles     = 1;

# Interrupt expire -- not yet enabled as not yet fully tested
#$InterruptExpire = 0;

# number of nfprofile processes to spawn during the profiling phase
# depends on how busy your system is and how many CPUs you have
# on very busy systems increase it to a higher value
$PROFILERS = 2;

# if the PROFILEDATADIR is filled up to this percentage, a warning message will be printed.
# set to 0 to disable the test
$DISKLIMIT = 98;

# number of nfprofile processes to spawn during the profiling phase
$PROFILERS = 6;

# Some Perl Versions/Builds have memory leaks for unknown reason.
# Therefore nfsend will increase its memory footprint over time.
# In order to reset nfsend, it automatically reloads after 1 day
# if PERL_HAS_MEMLEAK is set to 1
# $PERL_HAS_MEMLEAK=0;

# Netflow sources
# Define an ident string, port and colour per netflow source
#
# Required parameters:
#    ident   identifies this netflow source. e.g. the router name, 
#            Upstream provider name etc.
#    port    nfcapd listens on this port for netflow data for this source
#             set port to '0' if you do not want a collector to be started
#    col     colour in nfsen graphs for this source
#
# Optional parameters
#    type    Collector type needed for this source. Can be 'netflow' or 'sflow'. Default is netflow
#     optarg  Optional args to the collector at startup
#
# Syntax: 
#         'ident' => { 'port' => '', 'col' => '', 'type' => '' }
# Ident strings must be 1 to 19 characters long only, containing characters [a-zA-Z0-9_].

%sources = (
    '12summit'         => { 'port' => '65012', 'col' => '#00FFFF', 'type' => 'sflow', },
    '17summit'         => { 'port' => '65017', 'col' => '#E0FFFF', 'type' => 'sflow', },
    '15summit'         => { 'port' => '65015', 'col' => '#AFEEEE', 'type' => 'sflow', },
    '11summit'         => { 'port' => '65011', 'col' => '#7FFFD4', 'type' => 'sflow', },
    '13summit'         => { 'port' => '65013', 'col' => '#40E0D0', 'type' => 'sflow', },
    '114summit'         => { 'port' => '65114', 'col' => '#48D1CC', 'type' => 'sflow', },
    '57summit'         => { 'port' => '65057', 'col' => '#00CED1', 'type' => 'sflow', },
    '16summit'         => { 'port' => '65016', 'col' => '#5F9EA0', 'type' => 'sflow', },
    '21summit'         => { 'port' => '65021', 'col' => '#4682B4', 'type' => 'sflow', },
    '95summit'         => { 'port' => '65095', 'col' => '#B0C4DE', 'type' => 'sflow', },
    '24summit'         => { 'port' => '65024', 'col' => '#B0E0E6', 'type' => 'sflow', },
    '81summit'         => { 'port' => '65081', 'col' => '#ADD8E6', 'type' => 'sflow', },
#87CEEB
#87CEFA
#00BFFF
#1E90FF
#6495ED
#7B68EE
#4169E1
#0000FF
#0000CD
#00008B
#000080
#191970

);

#
# Low water mark: When expiring files, delete files until
# size = $low_water % of max_size
# typically 90 
$low_water = 90;

#
# syslog facility for periodic jobs
# nfsen uses level 'debug', 'info', 'warning' and 'err'
# Note: nfsen is very chatty for level 'debug' and 'info'
# For normal operation, you may set the logging level in syslog.conf
# to warning or error unless you want to debug NfSen
$syslog_facility = 'local3';

#
# SYSLOG mess 
# Log socket type: Most *NIX such as LINUX and *BSD are fine with 'unix'
# which is the default. You need to change that to 'stream' or 'inet' for 
# some Solaris version 8/9, AIX and others ..
# You may set it to undef to prevent calling Sys::Syslog::setlogsock at all
# ( works for Solaris 10 and newer Sys::Syslog module
#
# If not defined at all, 'unix' is assumed unless for Solaris, which defaults to 'stream'
# $LogSocket = 'unix';

#
# Plugins
# Plugins extend NfSen for the purpose of: 
# Periodic data processing, alerting-condition and alerting-action
# For data processing a plugin may run for any profile or for a specific profile only.
#     Syntax: [ 'profile list', 'module' ]
#            profile list:  ',' separated list of profiles ( 'profilegroup/profilename' ), 
#                           or '*' for any profile, '!' for no profile
#            module:        Perl Module name, equal to plugin name 
# The profile list '!' make sense for plugins, which only provide alerting functions
#
# The module follows the standard Perl module conventions, with at least one
# function: Init(). See demoplugin.pm for a simple template.
#
# A file with the same name in the FRONTEND_PLUGINDIR and .php extension is automatically
# recongized as frontend plugin.
#
# Plugins are installed under 
# $BACKEND_PLUGINDIR and $FRONTEND_PLUGINDIR

@plugins = (
    # profile    # module
    # [ '*',     'demoplugin' ],
    [ '*',    'HostStats' ],
    [ '*',    'flowdoh' ],
);

%PluginConf = (
    # For plugin demoplugin
    demoplugin => {
        # scalar
        param2 => 42,
        # hash
        param1 => { 'key' => 'value' },
    },
    # for plugin otherplugin
    otherplugin => [ 
        # array
        'mary had a little lamb' 
    ],
);

#
# Alert module: email alerting:
# Use this from address 
$MAIL_FROM   = 'your@from.example.net';

# Use this SMTP server
$SMTP_SERVER = 'localhost';

# Use this email body:
# You may have multiple lines of text.
# Var substitution:
# @alert@         replaced by alert name
# @timeslot@    replaced by timeslot alert triggered
$MAIL_BODY     = q{ 
Alert '@alert@' triggered at timeslot @timeslot@
};

######################################################
#
# For the NfSen simulator include the section below.
#
######################################################
#
# Nfsen Simulator
# The simulator requires, that you have already installed
# and configured NfSen. The simulation is based on already
# pre-colleted data, which you may get from another live 
# NfSen system.
# 
# Steps to setup the NfSen simulator:
# 1. Configure the sources of the live profile with the 
#    same names of the NfSen system, you take netflow data
#    for the simulation. Set the port for each netflow source
#    to 0 to prevent a collector to be started.
#    Install NfSen with this config in a seperate directory
# 2. Copy the pre-collected data into the appropriate 
#    netflow directory of the live profile.
# 3. Configure the simulator using the parameters below
#    Enable Simulation mode => $SIMmode = 1
#    Configure the time window of the pre-collected data.
#      tstart    => Start of time window. yyyymmddhhmm
#      tbegin    => Optional parameter. Start of simulation 
#                   profile exists already between tstart - tbegin
#      tend      => End of time window. yyyymmddhhmm
#      cycletime => simulation time in seconds of a 5min slot
#    Setting cycletime = 0 processes the cycles as fast as
#    possible. Please note, if you test plugings, your 
#    cycletime needs to be at least the time required to 
#    process all plugins.
# 4. Start nfsen: ../nfsen start
#    Simulation starts
#
# The simulator runs from tstart to tend and stops when tend
# is reached. You may stop the simulation at any given time
# using ./nfsen stop. To continue the simulation start NfSen
# again: ./nfsen start. You may reset the simulator at any
# given time using ./nfsen abort-reset. This stops the sumulation
# and rolls back to tstart. All profiles/alerts are deleted,
# so you may start from scratch again.
#
# Configure simulator parameters
#
# $SIMmode = 1;
# %sim = (
#    'tstart'     => '200707100000',    # Simulation data available from July 10th 2007 00:00
#    'tbegin'     => '200707110000',    # Simulation begins at July 11th 2007 00:00
#    'tend'       => '200707112355',    # Simulation ends at July 11th 2007 23:55
#    'cycletime'  => '30',                # 30s per 5min slot
# );

1;

3. Установка NfSen

После того как с конфиг файлом покончено, самое время установить NfSen
./install.pl /opt/nfsen/src/nfsen/etc/nfsen.conf
Лучше устанавливать из самой папки с исходниками, поэтому предварительно зайдем в папку
cd /opt/nfsen/src/nfsen/
Устанавливать из папки нужно потому что в установочном скрипте не прописаны возможные пути запуска у при установке он ругается на нехватку perl модулей
Всё. NfSen установлен
Запустим — /opt/nfsen/bin/nfsen start

4. Настройка Nginx

Самое время настроить веб-сервер дабы полюбоваться тем, что мы только что установили. Пожалуй проще всего просто заменить содержимое файла /etc/nginx/sites-available/default нужным содержимым и все заработает, но чет меня потянуло предварительно удалить default и заменить его на nfsen

rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default
touch /etc/nginx/sites-available/nfsen
ln /etc/nginx/sites-available/nfsen /etc/nginx/sites-enabled/nfsen

Содержимое файла конфига:

server {
    listen  80; ## listen for ipv4; this line is default and impilied
    #listen  [::]:80 default ipv6only=on; ## listen for ipv6

    server_name nfsen.example.com.ua;
    root /opt/nfsen/www;

    access_log /var/log/nginx/nfsen-access.log;
    error_log /var/log/nginx/nfsen-error.log;

    location = / {
    root  /opt/nfsen/www;
    index nfsen.php;
    }

        location ~ \.php$ {
        try_files $uri =404;
        root           /opt/nfsen/www;
            fastcgi_pass   unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_index  nfsen.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

}

Проверяем, правильно ли мы скопировали конфиг, команда nginx -t :

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ошибок нет. Перезапускаем nginx
service nginx restart
и идем в браузер на страницу http://nfsen.example.com.ua смотрим что у нас получилось

Вроде работает, но чего-то не хватает

5. NfSen as a service

Хорошо бы нфсен сделать сервисом
Ложим файлик nfsen.service в /lib/systemd/system/

cat /lib/systemd/system/nfsen.service

[Unit]
Description=Nfsen NetFlow/sFlow Sensor
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/nfsen/bin/nfsen start
ExecStop=/opt/nfsen/bin/nfsen stop

[Install]
WantedBy=multi-user.target

и применяем
sudo systemctl daemon-reload
sudo systemctl enable nfsen.service
Теперь можно следить за ним как за сервисом

6. Базовая авторизация

Нам вроде скрывать и нечего, но вкладка «Details» несёт некоторую угрозу для процессора ибо может подсчитывать разные запросы, за разные промежутки времени, поэтому включим basic autorisation — плашку с запросом логина/пароля при входе
Для генерации пароля используется утилитка apache2-utils
Устанавливаем apt install apache2-utils
Генерируем пароль htpasswd -b -c /etc/nginx/.htpasswd netops password
Если паролей нужно более одного, то следующие генерируем без ключа -c

htpasswd -b /etc/nginx/.htpasswd admin pass

Adding password for user admin

Теперь добавим пару строк в конфиг nginx’a

        location ~ \.php$ {
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
        try_files $uri =404;
        root           /opt/nfsen/www;
            fastcgi_pass   unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_index  nfsen.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

Добавляем в раздел php ибо страницы сайта у нас динамические
Проверяем всё ли в порядке nginx -t
И перезапускаем веб-сервер service nginx restart
Теперь при входе, сайт просит нас авторизоваться

7. Закроем не нужные порты или firewall по минимуму

Хорошей практикой будет прикрыть все лишние порты на сервере которые мы не используем
В убунту для этого есть ufw (расшифровывается как uncomplicated firewall) который по умолчанию отключен

ufw status

Status: inactive

Чтобы при включении не отвалиться от сервера, первым делом разрешим ssh
ufw allow 22/tcp
и включим файрвол
ufw enable

$ ufw enable

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

$ ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)   

Теперь вернем обратно наш веб-интерфейс
ufw allow 80/tcp
И конечно же нужно добавить порты на которых коллектим потоки с оборудования, а так как их там много и руками это все вводит лень, чуть-чуть подшаманим в командной строке

cat /opt/nfsen/src/nfsen/etc/nfsen.conf | grep summit | awk -F\' '{print "ufw allow " $6"/udp"}'

ufw allow 65012/udp
ufw allow 65017/udp
ufw allow 65015/udp
ufw allow 65011/udp
ufw allow 65013/udp
ufw allow 65114/udp
ufw allow 65057/udp
ufw allow 65016/udp
ufw allow 65021/udp
ufw allow 65095/udp
ufw allow 65024/udp
ufw allow 65081/udp

Вывалившийся список скопируем и вставим в консоль и перепроверим обратно статус ufw

ufw status

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
65012/udp                  ALLOW       Anywhere                  
65017/udp                  ALLOW       Anywhere                  
65015/udp                  ALLOW       Anywhere                  
65011/udp                  ALLOW       Anywhere                  
65013/udp                  ALLOW       Anywhere                  
65114/udp                  ALLOW       Anywhere                  
65057/udp                  ALLOW       Anywhere                  
65016/udp                  ALLOW       Anywhere                  
65021/udp                  ALLOW       Anywhere                  
65095/udp                  ALLOW       Anywhere                  
65024/udp                  ALLOW       Anywhere                  
65081/udp                  ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
65012/udp (v6)             ALLOW       Anywhere (v6)             
65017/udp (v6)             ALLOW       Anywhere (v6)             
65015/udp (v6)             ALLOW       Anywhere (v6)             
65011/udp (v6)             ALLOW       Anywhere (v6)             
65013/udp (v6)             ALLOW       Anywhere (v6)             
65114/udp (v6)             ALLOW       Anywhere (v6)             
65057/udp (v6)             ALLOW       Anywhere (v6)             
65016/udp (v6)             ALLOW       Anywhere (v6)             
65021/udp (v6)             ALLOW       Anywhere (v6)             
65095/udp (v6)             ALLOW       Anywhere (v6)             
65024/udp (v6)             ALLOW       Anywhere (v6)             
65081/udp (v6)             ALLOW       Anywhere (v6)  

На этом базовую настройку NfSen’a будем считать завершенной. С обзором функционала, примерами создания профайлов и анализа трафика можно ознакомиться здесь

[Голосов: 0 Средний бал: 0]