Nfsen
Jump to navigation
Jump to search
Description

INCOMPLETE SECTION OR ARTICLE
This section/article is being written and is therefore not complete.
Thank you for your comprehension.
Thank you for your comprehension.
[fprobe] --> [nfcapd] --> [nfdump] --> [nfsen]
Installation
Prerequisites
$ sudo aptitude install rrdtool librrd-dev librrd4 librrds-perl librrdp-perl \ flex build-essential perl-byacc perl
Prior to installing nfsen, you also need to install following Perl dependencies:
$ sudo cpan cpan[1]> install Mail::Header cpan[2]> install Mail::Internet cpan[3]> exit
fprobe
$ sudo aptitude install fprobe
Once asked, choose your network interface (e.g. eth1) and the collector IP/port (localhost:9995)
nfdump
$ cd /data/src/ $ wget https://sourceforge.net/projects/nfdump/files/stable/nfdump-1.6.13/nfdump-1.6.13.tar.gz $ tar xzvf nfdump-1.6.13.tar.gz $ cd nfdump-1.6.13/ $ ./configure --prefix=/usr --enable-nfprofile $ make $ sudo make install
nfsen
$ cd /data/src/ $ wget https://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.7/nfsen-1.3.7.tar.gz $ tar xzvf nfsen-1.3.7.tar.gz $ cd nfsen-1.3.7/ $ cp etc/nfsen-dist.conf etc/nfsen.conf
Edit etc/nfsen.conf and modify according to your needs:
$BASEDIR = "/opt/nfsen";
$BINDIR="${BASEDIR}/bin";
$LIBEXECDIR="${BASEDIR}/libexec";
$CONFDIR="${BASEDIR}/etc";
$HTMLDIR = "/var/www/nfsen/";
$DOCDIR="${HTMLDIR}/doc";
$VARDIR="${BASEDIR}/var";
$PROFILESTATDIR="${BASEDIR}/profiles-stat";
$PROFILEDATADIR="${BASEDIR}/profiles-data";
$BACKEND_PLUGINDIR="${BASEDIR}/plugins";
$FRONTEND_PLUGINDIR="${HTMLDIR}/plugins";
$PREFIX = '/usr/bin';
$USER = "netflow";
$WWWUSER = "www-data";
$WWWGROUP = "www-data";
$BUFFLEN = 200000;
$SUBDIRLAYOUT = 1;
$ZIPcollected = 1;
$ZIPprofiles = 1;
$PROFILERS = 2;
$DISKLIMIT = 98;
$PROFILERS = 6;
%sources = (
'secbox' => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
);
$low_water = 90;
$syslog_facility = 'local3';
@plugins = (
# profile # module
# [ '*', 'demoplugin' ],
);
%PluginConf = (
# For plugin demoplugin
demoplugin => {
# scalar
param2 => 42,
# hash
param1 => { 'key' => 'value' },
},
# for plugin otherplugin
otherplugin => [
# array
'mary had a little lamb'
],
);
$MAIL_FROM = '[email protected]';
$SMTP_SERVER = 'localhost';
$MAIL_BODY = q{
Alert '@alert@' triggered at timeslot @timeslot@
};
1;
Create netflow user (according to the conf file) for nfcapd:
$ sudo useradd -G www-data netflow $ id netflow uid=1003(netflow) gid=1003(netflow) groups=1003(netflow),33(www-data)
Install nfsen:
$ cd /data/src/nfsen-1.3.7/ $ sudo ./install.pl etc/nfsen.conf

Note
The script shows the following error at the end, don't worry! Create profile info for profile 'live'. Can not get semaphore: at libexec/Nfsync.pm line 48.
Configure nginx:
$ sudo aptitude install php5-fpm
Edit /etc/nginx/sites-available/default as follows:
server {
listen 80;
server_name localhost.local;
root /var/www;
index index.php index.html index.htm;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
[...]
location /nfsen {
alias /var/www/nfsen/;
}
# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[...]
}
Restart nginx and Start nfsen:
$ sudo systemctl restart nginx $ /opt/nfsen/bin/nfsen start
You can optionnaly create an automatic redirection as follows:
$ cd /var/www/nfsen/
$ cat index.php
<?php Header('Location: nfsen.php'); ?>
Start script
Create following script:
$ cat /usr/lib/systemd/system/nfsen.service [Unit] Description=Nfsen Netflow 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
Install:
$ sudo systemctl daemon-reload $ sudo systemctl enable nfsen.service
Start if not already started:
$ sudo systemctl start nfsen.service
Comments
Keywords: fprobe nfcapd nfdump nfsen netflow