Wydrukuj tę dokumentację Pokaż jako slajdy

Konfiguracja moniforingu Netflows

System FreeBSD posiada możliwość monitorowania netflows za pomocą mechanizmu netgraph. Bardzo dobrze jest to wyjaśnione na forum FreeBSD.

Włączenie netgraph w systemie

Z konfiguracji do źródeł należy zablokować linie, które powodują pominięcie budowania netgraph:

##WITHOUT_NETGRAPH=     true

Ręczna instalacja bibliotek, modułów oraz programów

Jeżeli nie została zablokowana opcja w pliku /etc/src.conf, to można ręcznie dograć potrzebne moduły, biblioteki do systemu:

cd /usr/src/lib/libnetgraph/
make all install

cd /usr/src/sys/modules/netgraph
make all install

cd /usr/src/usr.sbin/ngctl
make all install

Po zainstalowaniu wszystkich potrzebnych rzeczy, można przejść dalej do komnfigurowania systemu.

/boot/loader.conf

Odpowiednie moduły powinien już załadować skrypt startowy ng_netflow, ale można dopisać do konfiguracji bootowania:

# NetGraph
netgraph_load="YES"
ng_netflow_load="YES"
ng_ksocket_load="YES"
ng_ether_load="YES"

Wgranie modułów ręcznie

kldload netgraph ng_netflow ng_ksocket ng_ether

Zainstalowanie pakietów

Za pomocą własnego repozytorium pakietów należy zainstalować potrzebne pakiety (nfdump zostanie doinstalowany jako zależność)

pkg install -Uy nfsen

Zmiany w nfsen.conf

Ze względu na fakt, że syslog facility local3 jest wykorzystywany przez bazę PostgreSQL, zatem trzeba zmienić, aby mieć logi w /var/log/messages lub innym dedykowanym pliku.

diff -udp /usr/local/etc/nfsen-dist.conf /usr/local/etc/nfsen.conf

--- /usr/local/etc/nfsen-dist.conf      2018-07-11 22:14:08.000000000 +0200
+++ /usr/local/etc/nfsen.conf   2018-07-17 16:20:41.493438000 +0200
@@ -44,10 +44,10 @@ $DOCDIR="${HTMLDIR}/doc";

 #
 # Var space for NfSen
-$VARDIR="${BASEDIR}/var/nfsen";
+$VARDIR="/var/db/nfsen";

 # directory for all pid files
-# $PIDDIR="$VARDIR/run";
+$PIDDIR="/var/run/nfsen";
 #
 # Filter directory
 # FILTERDIR="${VARDIR}/filters";
@@ -166,9 +166,7 @@ $PROFILERS = 6;
 # Ident strings must be 1 to 19 characters long only, containing characters [a-zA-Z0-9_].

 %sources = (
-    'upstream1'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
-    'peer1'        => { 'port' => '9996', 'IP' => '172.16.17.18' },
-    'peer2'        => { 'port' => '9996', 'IP' => '172.16.17.19' },
+    'freebsd'    => { 'port' => '4444', 'col' => '#0000ff', 'type' => 'netflow' },
 );

 #
@@ -183,7 +181,7 @@ $low_water = 90;
 # 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_facility = 'local4';

 #
 # SYSLOG mess
@@ -239,7 +237,7 @@ $syslog_facility = 'local3';
 #
 # Alert module: email alerting:
 # Use this from address
-$MAIL_FROM   = 'your@from.example.net';
+$MAIL_FROM   = 'root@bsdserwis.com';

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

Instalacja skryptów startowych

Za pomocą własnego repozytorium skryptów instalujemy skrypt startowy dla netgraph: /usr/local/etc/rc.d/ng_netflow

Modyfikacja skryptów startowych

Jeżeli zostały wykonane zmiany w nfsen.conf, to trzeba również poprawić skrypt startowy (powinna być zmienna deklarowana na początku i nic nie trzeba by zmieniać):

--- /usr/local/etc/rc.d/nfsen.orig      2018-06-10 18:08:03.000000000 +0200
+++ /usr/local/etc/rc.d/nfsen   2018-06-10 18:19:43.650752000 +0200
@@ -32,10 +32,10 @@ nfsen_start_precmd()
        # the perl install script that we're bypassing.
        # It also is better because you don't have to reinstall
        # to get this file back
-       if [ ! -e /usr/local/var/nfsen/profiles-stat/live/profile.dat ]; then
+       if [ ! -e /var/db/nfsen/profiles-stat/live/profile.dat ]; then
                time=$(/bin/date +%s);
                timeu=$(/bin/expr $time - 300);
-               profile_dat=/usr/local/var/nfsen/profiles-stat/live/profile.dat
+               profile_dat=/var/db/nfsen/profiles-stat/live/profile.dat
                /usr/bin/printf "name = live
                group = .
                tbegin = $time

Zmiany w rc.conf

ng_netgraph_enable="YES"
#ng_netgraph_iface="em0" # warto/s/c domy/slna

Dodatkowo za pomocą własnego repozytorium skryptów należy zainstalować konfigurację startową dla nfsen, albo też zmodyfikować sam plik /etc/rc.conf:

nfsen_enable="YES"
nfsen_chdir="/var/db/nfsen"
nfsen_user="www"

Wykonanie potrzebnych katalogów

su -m www -c "mkdir -p /var/db/nfsen/profiles-data/live/"
su -m www -c "mkdir -p /var/db/nfsen/profiles-stat/live/"
mkdir -p /var/run/nfsen
chown www:www /var/run/nfsen

Rekonfiguracja nfsen

Po wykonaniu zmian w pliku startowym dla nfsen, trzeba wykonać jego konfigurację:

nfsen reconfig

Uruchomienie potrzebnych usług

service ng_netflow start
service nfsen start

Uruchomienie panelu webowego

apache24

Za pomocą własnego repozytorium skryptów należy zainstalować plik konfiguracyjny 019-nfsen.conf. W konfiguracji globalnej lub danego wirtualnego hosta należy dodać konfigurację:

    Alias /nfsen/ /usr/local/www/nfsen/

a następnie wykonać przeładowanie serwera httpd.

nginx

Za pomocą własnego repozytorium skryptów należy zainstalować plik konfiguracyjny 019-nfsen.conf, a następnie dołączyć go w konfiguracji wirtualnego serwera.

Ponieważ pakiet nfsen może doinstalować w ramach zależności moduł phpNN-sockets, zatem warto wykonać restart usług:

service php-fpm restart
service nginx restart

Modyfikacja pliku konfiguracyjnego

W pliku /usr/local/www/nfsen/conf.php należy zmienić ścieżkę:

$COMMSOCKET = "/var/run/nfsen/nfsen.comm"

Aktualizacja bazy dla pkg

Modyfikacja pliku startowego wymaga, aby poprawić bazę sum kontrolnych plików dla pkg:

pkg check -r nfsen

Źródła w sieci internet

Informacje dotyczące samego Netflow


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

NetGraph (ostatnio edytowane 2018-09-16 21:26:43 przez wtps0n)