Installation ntopng v1.2.1

Bonjour à tous,

Suite à quelques petit problèmes sur des questions de surveillance du flux réseau (sur des sorties WAN pour être précis), il a fallu que je trouve un petit outil qui serait capable de faire de l’analyse détaillé de flux (IP source/destination, port source/destination, protocole, …)

La solution qui s’est révélé à moi était la classique ntop…
Sauf que… Bah il est moche, il a des problèmes connus lorsqu’il emmagasine trop de données etc…

En farfouillant un peu sur la toile, je suis tombé sur son petit frère (?) répondant au doux nom de « ntopng ». (Ils sont pas aller chercher bien loin, mais bon…).
La blague, c’est que mon serveur tourne sous une Debian Wheezy (7.8 full update etc…), et que ntopng n’est pas packagé pour la Wheezy… Zut alors…

Qu’à cela ne tienne, je remonte mes manches et je dégaine mes make favoris.
N’ayez pas peur, ça se fait bien sous wheezy (Enfin, pour les deux installations que j’ai faites, je n’ai pas eu de problèmes particulier).

Les bases qui vont bien

Vous vous doutez bien qu’il faut un peu préparer les choses pour que ça se fasse bien non ?
On va installer quelques paquets pour permettre la compilation sans problèmes :

apt-get install libglib2.0-dev autoconf libpcap-dev libsqlite3-dev redis-server pkg-config geoip-bin subversion \
build-essential libgeoip-dev  libtool libxml2-dev

Quand c’est fait, normalement, vous ne devriez pas avoir d’erreur pour installer la bête.

Tans qu’on y est, on va en profiter pour préparer notre « zone » de travail.
Personnellement, quand je fais des choses comme ça, j’aime bien posser dans /usr/local/src , la FHS nous dit que c’est fait pour ça après tout.

cd /usr/local/src
# On télécharge les sources de ntopng 1.2.1
wget  http://downloads.sourceforge.net/project/ntop/ntopng/ntopng-1.2.1.tgz

# On extrait l’archive
tar xf ntopng-1.2.1.tgz

On se lance dans l’aventure ?

La compilation

Bien, c’est là que les choses se gattent… On va dans le dossier des sources que l’on a extrait il n’y a pas 2 minutes :

cd ntopng-1.2.1

Maintenant, on va lancer le petit script qui va plus ou moins nous préparer le terrain :

./autogen.sh

Maintenant, le plus bizarre, la compilation :

# Tout d’abord, on envoie un coup de configuration de l’environnement :
./configure
# Ensuite, on prépare/precompile GeoIP, sinon on va gentiellement se faire envoyer sur les roses :
make geoip

# Quand ça c’est fait, on lance la vrai compilation de ntopng :
make
# Si ça c’est bien passé, (oui, il faut lire un peu), on peut tranquillement lancer l’installation :
make install

Normalement, l’installation vous donne une liste de commande à exécuter pour installer proprement ntopng.
Pour ma part, la création du package échoue, et je n’arrive pas à corriger le problème…
Ceci étant, ce n’est pas grâve parce qu’on peut toujours le lancer en mode classique. (Du coup, pas en daemon)

On exécute donc les commandes suivantes pour « installer » ntopng :

cp ntopng /usr/local/bin 							# Copie des binaires
cp ./ntopng.8 /usr/local/man/man8						# Permet d’avoir accès au man d’ntopng
cp -r ./httpdocs /usr/local/share/ntopng 					# Interface Web 
cp -r ./scripts /usr/local/share/ntopng 					# Script de polling
find	 /usr/local/share/ntopng -name "*~"   | xargs /bin/rm -f 		# Supprime les fichiers de backup d’édition
find /usr/local/share/ntopng -name ".svn" | xargs /bin/rm -rf 			# Supprime les fichiers svn

Bon, bah ntopng est maintenant prêt à démarrer :p

Lancement de ntopng

On va se faciliter la vie, on peut le lancer dans un tmux ou un screen pour qu’il évite d’exploser si on perd la connexion ssh à la machine.

    apt-get install tmux		# Pour installer tmux
    apt-get install screen		# Pour installer screen

On lance tmux (Parce que je le préfère à screen, mais c’est une question de point de vue) :

tmux

La petite info qui sera pratique, pour sortir de tmux sans le tuer, il faut utiliser la séquence de commande « Ctrl+b d » (« Ctrl+a d » pour screen). Cela à pour effet de « détacher » le tmux (ou le screen) il sera donc récupérable par la suite

Et si on lançait ntopng ça serait bien non ?

# Dans le tmux
ntopng -i <interface>

Pensez bien à remplacer <interface> par l’interface qui vous intéresse !
Il est possible de dire à ntopng de démarrer avec plusieurs interfaces en multipliant les « -i »
Sauf que, il ne saura pas analyser les deux (ou plus interfaces en simultané). Il faudra switcher dans l’interface de ntopng.

Accès à l’interface web de ntopng
Pour accéder à l’interface de ntopng, rien de plus simple :
http://<IP_machine>:3000

Et voilà un ntopng fonctionnel, c’est magique non ?