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