quinta-feira, 15 de março de 2018

Servidor de Flow NFDUMP/NFSEN


Voltando a postar depois de um bom tempo sem me dedicar ao blog... Vamos ao que interessa, eu estive procurando um servidor opensource para realizar a captura e analise do trafego de netflow da minha rede, ai me indicam o NFDUMP/NFSEN, porém não consigo encontrar um tutorial em português para a instalação do mesmo, devido a isso estou trazendo neste post um pequeno tutorial de como instalar e configurar um servidor para netflow na rede, utilizando o NFDUMP para coleta dos dados e o NFSEN para colocar os dados em forma gráfica.

Requisitos:
Uma maquina com sistema operacional Debian ou derivados (pode ser instalado em sistemas derivados do Red-Hat, mas como tenho mais familiaridade com o Debian vou fazer nele).
Recomendo deixar dedicada uma partição “/data” na hora da instalação do sistema operacional, nessa partição que será instalado e armazenado os arquivos de instalação e os dados coletados que por sinal esse ultimo é bem grande dependendo do tamanho e trafego gerado em sua rede.

1° passo: Atualizar o sistema operacional

# apt-get update
# apt-get upgrade

Depois de atualizar o sistema vamos instalar os pacotes necessários para rodar o NFDUMP

2° passo: Instalação de pacotes do NFDUMP

# apt-get update && apt-get install gcc flex librrd-dev make

Instalados os pacotes, podemos agora baixar o NFDUMP e fazer sua instalação no servidor

3° passo: Baixando e instalando o NFDUMP

# cd /usr/src/

Realizando o download do NFDUMP:

# wget http://sourceforge.net/projects/nfdump/files/stable/nfdump-1.6.8p1/nfdump-1.6.8p1.tar.gz
Extraindo a pasta do instalador:

# tar zxvf nfdump-1.6.8p1.tar.gz

Entrando na pasta que acabamos de extrair:

# cd nfdump-1.6.8p1

Executando o instalador do NFDUMP e também habilitando o “nfprofile” para utilizarmos o 

NFDUM com o NFSEN:

# ./configure --enable-nfprofile
# make && make install

Feito isso, é hora de testar e ver se os passos executados até agora deram certo.

# mkdir /tmp/nfcap-test
# nfcapd -E  -p 9001 -l /tmp/nfcap-test

PS: caso não apareça nada é provável que o seu firewall esteja bloqueando ou pode ser o SElinux, verifique-os.

Agora vamos consultar o arquivo gerado e ver se está com a captura correta de dados

# ls -l /tmp/nfcap-test

Deve aparecer um ou mais arquivos no formato “nfcapd.ANOMESDIAHRMIN” , os arquivos gerados contem em seu nome depois do ponto o ANO, MÊS, DIA, HR e MIN que foi gerado, deixando mais fácil do administrador localizar um arquivo.

Localizado o arquivo desejado, podemos executar os seguintes comandos:

# nfdump -r /tmp/nfcap-test/nfcapd.201Ywwxxyyzz | less
# nfdump -r /tmp/nfcap-test/nfcapd.201Ywwxxyyzz -s srcip/bytes

Feito isso e mostrando os resultados desejados, podemos partir para a segunda parte o NFSEN.

4° passo: Instalar os pacotes necessários para o NFSEN.

# apt-get install apache2 libapache2-mod-php php-common libmailtools-perl rrdtool librrds-perl

5° passo: Baixar e Instalar o NFSEN.

# cd /usr/src/

Realizando o download do NFSEN:

# wget http://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz

Extraindo a pasta do instalador:

# tar zxvf nfsen-1.3.6p1.tar.gz

Entrando na pasta do NFSEN:

# cd nfsen-1.3.6p1

Agora vamos instalar o modulo Socket6 do perl:

# perl -MCPAN -e 'install Socket6'

Feito isso vamos copiar o arquivo de configuração para realizarmos as modificações necessárias:

# cp etc/nfsen-dist.conf /etc/nfsen.conf
# vim /etc/nfsen.conf

Procure e modifique as sequintes linhas no arquivo:

$BASEDIR = "/var/nfsen";
$WWWUSER = "www-data";
$WWWGROUP = "www-data";
%sources = (
'MYROUTER' => { 'port' => '9001', 'col' => '#0000ff', 'type' => 'netflow' },
);

Explicando as linhas:

$BASEDIR = "/var/nfsen"; Aqui definimos o caminho que sera instalado o NFSEN;
$USER = "www-data"; : Estamos definindo aqui o usuario do apache para acesso ao netflow;
$WWWGROUP = "www-data"; : Definindo o grupo do usuario;
%sources = ( : Aqui definimos os equipamentos que enviarão trafego de netflow para nosso servidor, se tiver mais de um equipamento pode adicionar outra linha com outra porta “9002” por exemplo.

Depois de tudo isso, vamos para a etapa final da configuração:

Criar uma pasta para o nfsen

# mkdir -p /data/nfsen

Instalar o nfsen

# ./install.pl /etc/nfsen.conf

Entrar na pasta da instalação do nfsen

# cd /data/nfsen/bin

Iniciar o nfsen:

# ./nfsen start

Agora só falta configurar o nfsen para iniciar junto com o linux:

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

Pronto, terminamos a instalação do servidor de flow agora é só acessar e se divertir:
http://ipdoservidor/nfsen/nfsen.php

Encontrou algum erro no tutorial? Ficou com duvida em algum ponto? No seu cenário não funcionou? Deixe um comentário abaixo e vamos tentar solucionar J

7 comentários:

  1. Waldder Cabral
    Vc não faz idéia do quanto te agradeço por este tuto.
    Pesquisei n site pra tentar instalar ese programa e todos sem resultado.
    Bastou encontrar seu tuto.
    MUUUIITO OBRIGADo

    ResponderExcluir
  2. Olá , tentei realizar a instalação e parou exatamente na instalação do Nfsen, ao realizar a última fase de instalação:

    root@syslog-tf:/usr/src/nfsen-1.3.6p1# ./install.pl /etc/nfsen.conf
    Check for required Perl modules: All modules found.
    NFSEN user 'netflow' not found on this system

    Não encontrou este usuário "netflow" , e por isso não criou a pasta de instalação abaixo do nfsen.

    Entrar na pasta da instalação do nfsen

    # cd /data/nfsen/bin


    Tem como resolver isso ?

    ResponderExcluir
  3. Ou tenho que instalar tudo novamente ? EStou a meses tentando instalar um servidor de log para meu roteador de borda....se puder me ajudar, ficarei muito grato.

    ResponderExcluir
  4. adduser --home /var/netflow --shell /bin/false --ingroup www-data --disabled-password netflow

    Debian 10

    ResponderExcluir
  5. root@syslog-tf:/usr/src/nfsen-1.3.6p1# ./install.pl /etc/nfsen.conf
    Check for required Perl modules: All modules found.
    RRD version '1.5001' not yet supported!

    ResponderExcluir
  6. Agora está tudo rodando, menos a página , o Apache abre a tela principal, mas não abre o nfsen. Os arquivos de log estão sendo criados no diretório, mas não consigo visulizar o conteúdo...se alguém puder me ajudar....falta pouco.

    ResponderExcluir
  7. Está gerando os arquivos no diretório, porém não está mostrando os dados dos IPs do CGNAT do ASR....ele cria os arquvivos....

    root@syslog-tf:/var/nfsen/profiles-data/live/peer1/2021/04/16# ls -la
    total 32
    drwxr-xr-x 2 netflow www-data 4096 abr 16 21:55 .
    drwxr-xr-x 3 netflow www-data 4096 abr 16 21:30 ..
    -rw-r--r-- 1 netflow www-data 276 abr 16 21:30 nfcapd.202104162125
    -rw-r--r-- 1 netflow www-data 276 abr 16 21:31 nfcapd.202104162130
    -rw-r--r-- 1 netflow www-data 561 abr 16 21:40 nfcapd.202104162135
    -rw-r--r-- 1 netflow www-data 561 abr 16 21:45 nfcapd.202104162140
    -rw-r--r-- 1 netflow www-data 561 abr 16 21:50 nfcapd.202104162145
    -rw-r--r-- 1 netflow www-data 561 abr 16 21:55 nfcapd.202104162150

    Mas executando o comando : nfdump -r nfcapd.202104162145 | less

    Date first seen Event XEvent Proto Src IP Addr:Port Dst IP Addr:Port X-Src IP Addr:Port X-Dst IP Addr:Port In Byte Out Byte
    Summary: total flows: 0, total bytes: 0, total packets: 0, avg bps: 0, avg pps: 0, avg bpp: 0
    Time window: 2021-04-16 21:45:00 - 2021-04-16 21:50:00
    Total flows processed: 0, Blocks skipped: 0, Bytes read: 516
    Sys: 0.002s flows/second: 0.0 Wall: 0.000s flows/second: 0.0

    ResponderExcluir