Ben's notes

Linux, Unix, network, radio...

User Tools

Site Tools


nfsen_ubuntu

Ubuntu 18 - NfSen

Install and configure NfSen on Ubuntu 18 server

  • NfSen 1.3.8
  • nfdump 1.6.17

Installation

  • Clone nfdump from git https://github.com/phaag/nfdump.
    git clone https://github.com/phaag/nfdump
  • Extract files.
    tar zxf nfsen-1.3.8.tar.gz
  • Install development tools.
    apt-get update
    apt-get upgrade
    apt-get install build-essential
  • Install prerequisites.
    add-apt-repository universe
    apt-get install autoconf rrdtool librrds-perl librrdp-perl librrd-dev libmailtools-perl apache2 libapache2-mod-php php bison flex libsocket6-perl liburi-perl libnet-idn-encode-perl libtool m4 automake pkg-config libbz2-dev
  • Create user netflow.
    useradd netflow
  • Add user netflow to apache group.
    usermod -G www-data netflow
  • Create seperate /opt filesystem (for lots of data).
  • Compile and install nfdump.
    cd nfdump
    ./autogen.sh
    ./configure --prefix=/opt/nfdump --enable-nfprofile
    make
    make install
  • Install nfsen.
    cd nfsen-1.3.8
    cd etc
    cp nfsen-dist.conf nfsen.conf
    vi nfsen.conf
      $BASEDIR = "/opt/nfsen";
      $HTMLDIR = "/opt/nfsen/www/";
      $PREFIX  = '/opt/nfdump/bin';
      $WWWUSER  = "www-data";
      $WWWGROUP = "www-data";
    
      $MAIL_FROM   = 'nfsen@yourdomain.tld';
      $SMTP_SERVER = 'fqdn.mail.server';
      
      %sources = (
          'source1' => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
          'source2' => { 'port' => '9996', 'col' => '#cc3333', 'type' => 'netflow' },
          'source3' => { 'port' => '9997', 'col' => '#99ff33', 'type' => 'netflow' },
      );
    
    # OR
    
    %sources = (
        'ccr1016'      => { 'port' => '9995', 'IP' => 'x.x.x.x', 'col' => '#0000ff', 'type' => 'netflow' },
        'apfloor1'     => { 'port' => '9995', 'IP' => 'x.x.x.x', 'col' => '#8B0000' },
        'apfloor2'     => { 'port' => '9995', 'IP' => 'x.x.x.x', 'col' => '#DC143C'},
        'apfloor3'     => { 'port' => '9995', 'IP' => 'x.x.x.x', 'col' => '#FF7F50'},
    );
    
    
    cd ..
    sudo ./install.pl ./etc/nfsen.conf
  • Add apache config.
    <Directory "/opt/nfsen/www">
       AllowOverride None
       Require all granted
    </Directory>
    
    Alias /nfsen "/opt/nfsen/www"
  • Enable and start apache:
    systemctl enable apache2
    systemctl start apache2
  • Start nfsen.
    /opt/nfsen/bin/nfsen start

Auto start at boot

  • Create /etc/systemd/system/nfsen.service:
    [Unit]
    Description=NfSen Service
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/opt/nfsen/var/run/nfsend.pid
    ExecStart=/opt/nfsen/bin/nfsen start
    ExecStop=/opt/nfsen/bin/nfsen stop
    Restart=on-abort
    
    [Install]
    WantedBy=multi-user.target
  • Enable service:
    systemctl enable nfsen
    systemctl start nfsen
nfsen_ubuntu.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1