Instalacja NFSen na Debian 9

    W pierwszej kolejności pobieramy niezbędne paczki:

    apt-get install gcc flex librrd-dev make libglib2.0-dev libxml2-dev apache2 libapache2-mod-php7.0 \
                         php7.0 php7.0-fpm php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-json php7.0-mbstring php7.0-mysql php7.0-tidy php7.0-xml php7.0-zip \
                         nfdump rrdtool librrds-perl librrdp-perl librrd-dev libmailtools-perl libio-socket-ssl-perl \
                         -y
    

    W następnym kroku pobieramy niezbędne moduły Perla

    perl -MCPAN -e 'install Socket6'
    

    Oraz najnowszą instalkę NFSen:

    wget https://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.8/nfsen-1.3.8.tar.gz
    tar xf nfsen-1.3.8.tar.gz
    

    Kopiujemy domyślną konfigurację do wybranego folderu.

    cp nfsen-1.3.8/etc/nfsen-dist.conf /opt/nfsen/nfsen.conf
    

    Teraz możemy przejść do edycji konfiguracji. Najważniejsze fragmenty poniżej:

    $BASEDIR = "/opt/nfsen"; # miejsce instalacji
    $USER    = "www-data"; # najlepiej standardowy user, w przypadku innego należy dodać go do grupy np. "useradd -d /var/nfsen -G www-data -m -s /bin/false netflow"
    $WWWUSER  = "www-data";
    $WWWGROUP = "www-data";
    $PREFIX  = '/usr/bin'; #sprawdźmy gdzie zainstalował się nam nfcapd
    %sources = (
        'cpd-core-r01'    => { 'IP' => '172.30.255.1', 'port' => '4739', 'col' => '#1abc9c', 'type' => 'netflow' }, # źródła netflowów
        'cpd-core-r02'    => { 'IP' => '172.30.255.2', 'port' => '4739', 'col' => '#3498db', 'type' => 'netflow' },
    

    Dodajemy obsługę strony www. Fragment konfiguracji poniżej:

    <VirtualHost nfsen.dataspace.pl:80>
      DocumentRoot /opt/nfsen/html/
      ServerName  nfsen.dataspace.pl
    

    Dodajemy regułki do firewalla. Najprostsza będzie poniższa reguła. Możemy też ustawić bardziej restrykcyjną.

    iptables -A INPUT -i ens22 -j ACCEPT # zakładając, że ens22 to interfejs
    

    Instalujemy i uruchamiamy NFSena (najlepiej wejść do folderu z instalką, inaczej może nie zadziałać).

    ./install.pl /opt/nfsen/nfsen.conf
    /opt/nfsen/bin/nfsen start
    

    Dodajemy do init.d

    ln -s /opt/nfsen/bin/nfsen /etc/init.d/nfsen
    update-rc.d nfsen defaults 20
    

    Przy zmianach konfiguracji stosujemy poniższą komendę.

    Uwaga! Może się zdarzyć, że będziemy musieli odpalić skrypt instalacyjny w przyszłości jeszcze raz, więc dobrze zachować pobrany katalog z instalacją gdzieś na dysku.

    service nfsen reconfig
    

    Uruchamiamy serwer www.

    a2ensite nfsen
    apachectl -t # sprawdzamy czy nie ma błędów
    service apache2 reload
    

    Wchodzimy na stronę i sprawdzamy poprawność działania. Powinniśmy odczekać ok. 5 minut, aby ujrzeć dane. Strona powinna wyglądać tak:

    Jeśli zamiast tego wyświetla nam się error:

    * ERROR: nfsend connect() error: No such file or directory! – nfsen nie został uruchomiony poprawnie. Sprawdź service nfsen status
    * ERROR: nfsend connect() error: Permission denied! – jest problem z uprawnieniami, najlepiej instalować nfsen dla usera www-data w celu uniknięcia problemów. Tymczasowym fixem jest znaleźć plik /opt/nfsen/var/run/nfsen.comm i dać wszystkich, wszelkie uprawnienia (chmod 777) – będzie działać dopóki nie zrestartujemy serwisu nfsen. Chown -R dla folderów nfsena także nie rozwiąże problemu.
    Jeśli wyświetlają się nam puste grafy to problem jest z odebraniem danych przez nfsen, może to powodować źle skonfigurowany firewall (np. iptables).

    Zabezpieczenie dostępu

    Jeśli chcemy ograniczyć dostęp do strony to do konfiguracji dodajemy

                    <Directory "/opt/nfsen/html/">
                      AuthType Basic
                      AuthName "NFSEN Reserved Area"
                      AuthUserFile /etc/apache2/nfsen_passwd
                      Require valid-user
    #                 Require all granted # usuwamy lub komentujemy te linię
                      AllowOverride All
                      Options FollowSymLinks MultiViews
                    </Directory>
    

    I dodajemy użytkownika oraz ustawiamy właściciela oraz uprawnienia (w tym wypadku użytkownik nazywa się „ds”.

    htpasswd -c /etc/apache2/nfsen_passwd ds
    # New password:
    # Re-type new password:
    # Adding password for user ds
    

    Jeśli chcemy usunąć użytkownika to wpisujemy komendę:

    htpasswd -D /etc/apache2/nfsen_passwd ds
    # Deleting password for user ds
    

    Potrzebujesz pomocy z konfiguracją i utrzymaniem serwera?

    Outsourcing IT może być rozwiązaniem dla Ciebie!