jeudi 4 juin 2015

Gestion des journaux - 2ème partie: utilisation de Tenshi- Gestion et supervision réseau



D'abord assurez vous que vos routeurs sont configurés pour envoyer les
logs (journaux) à votre serveur
 Mettre à jour la configuration de syslog-ng
Si vous ne l'avez pas encore fait, loggez vous sur votre machine virtuelle et devenez l'utilisateur root:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo bash
#
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Configurer syslog-ng pour qu'il réception et sauvegarde les journaux de tout routeur dans un seul fichier, pour faciliter l'inspection et l'analyse:
Éditer `/etc/syslog-ng/conf.d/10-network.conf`,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# cd /etc/syslog-ng/conf.d/
# editor 10-network.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
... et ajouter ceci avant la dernière accolade fermante ( }; ):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
file("/var/log/network/everything", owner(root) group(root)
perm(0644));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Au final, le contenu de ce fichier doit ressembler à:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
filter f_routers { facility(local0); };
log {
source(s_src);
filter(f_routers);
destination(routers);
};
destination routers {
file("/var/log/network/$YEAR/$MONTH/$DAY/$HOST-$YEAR-$MONTH-$DAY-
$HOUR.log"
owner(root) group(root) perm(0644) dir_perm(0755) create_dirs(yes)
template("$YEAR $DATE $HOST $MSG\n"));
file("/var/log/network/everything", owner(root) group(root)
perm(0644));
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ceci activera la collecte de TOUT messages syslog qui correspond à la
catégorie (facility) local0 et le stockage dans un seul fichier, afin que nous puissions lancer un script de supervisision sur ces messages.
Assurez-vous d'avoir sauvé le fichier et quittez l'éditeur.
Redémarrez syslog-ng afin qu'il charge la nouvelle configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# service syslog-ng restart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Rotation des journaux
Créez un script qui effectuera la remise à zéro du fichier des journaux
afin qu'il ne devienne pas trop gros (copier & coller).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# editor /etc/logrotate.d/everything
/var/log/network/everything {
daily
copytruncate
rotate 1
postrotate
/etc/init.d/tenshi restart
endscript
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Puis sauvez le fichier et quitter l'éditeur.
## Installation de tenshi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# apt-get install tenshi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Configuration de tenshi
Configuration de Tenshi pour que celui-ci vous envoie des alarmes par mail quand le routeur est reconfiguré (copier & coller):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# editor /etc/tenshi/includes-available/network
set logfile /var/log/network/everything
set queue network_alarms tenshi@localhost sysadm@localhost [*/1 * *
* *] Log check
group_host 10.10
network_alarms SYS-5-CONFIG_I
network_alarms PRIV_AUTH_PASS
network_alarms LINK
group_end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Puis sauvez le fichier et quitter l'éditeur.
Créer un lien symbolique pour que le fichier de configuration de Tenshi soit chargé (copier & coller):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# ln -s /etc/tenshi/includes-available/network /etc/tenshi/includesactive
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Enfin, redémarrer Tenshi:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# service tenshi restart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Tester Tenshi
Loggez vous sur votre routeur, et effectuez des commandes "config" diverses (Exemples ci-dessous):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ ssh cisco@rtrX [où "X" est le numéro de votre
routeur]
rtrX> enable
Password: <password>
rtrX# config terminal
rtrX(config)# int FastEthernet0/0
rtrX(config-if)# description Description Change for FastEthernet0/0 for Tenshi
rtrX(config-if)# ctrl-z
rtrX# write memory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ne vous déconnectez pas immédiatement - comme dans les exercices syslog-ng précédemment, effectuez un shutdown / no shutdown de
l'interface loopback:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtrX# conf t
rtrX(config)# interface Loopback 999
rtrX(config-if)# shutdown
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
attendre quelques secondes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtrX(config-if)# no shutdown
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Finir et sauvez la config ("write mem"):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtrX(config-if)# CTRL-z (équivalent à 'exit' 2 fois)
rtrX# write memory
rtr1# exit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vérifiez que vous recevez des mails de la part de Tenshi pour l'utilisateur sysadm. Une méthode de vérification rapide est de regarder dans le répertoire du mail:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ ls -l /var/mail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
* Note: Tenshi inspecte /var/log/network/everything une fois par minute,donc vous devrez attendre jusqu'à une minute pour que le mail arrive jusqu'à l'utilisateur sysadm.
Assurez vous que vous vous êtes loggés en tant que sysadm (et pas root).
Soit vous ouvrez une nouvelle session avec ssh sur votre machine virtuelle,
soit vous quittez l'utilisateur root (exit).
Ensuite, faire:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ mutt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Utilisez les flèches pour sélectionner un message envoyé par "tenshi@localhost", puis appuyer sur `ENTER` pour le lire, et `q` pour revenir à l'index, et `q` à nouveau pour quitter mutt.
Si les mails n'arrivent pas, vérifier alors les choses suivantes:
* Les journaux arrivent-ils dans le fichier `/var/log/network/ everything` ?
$ tail /var/log/network/everything
* Ces messages de logs montrent-il bien un nom de machine tel que 'rtr5',
voire une adresse IP comme 10.10.5.254 ? Souvenez-vous, tenshi est configuré de telle façon qu'il ne regarde que les noms de machine commençant pas 'rtr ou bien les IP commençant par '10.10' (ceci
dépend de la façon dont vous avez configuré tenshi)
* Vérifiez la configuration tenshi. Redémarrer tenshi si vous la modifiez.
* Si vous êtes coincé quand même, demander à un instructeur de vous aider.
## Faculcatif: Ajouter une nouvelle règle à Tenshi
Voyez si vous arrivez à ajouter une nouvelle règle à Tenshi pour qu'un email soit envoyé si un individu essaye de faire "enable" sur votre routeur, avec un mauvais mot de passe.
Indices:
* "PRIV_AUTH_FAIL" est la chaîne que Cisco IOS utilise dans les messages dans ce cas.
* Pour tester votre nouvelle règle, connectez vous à votre routeur, tapez "enable" suivi d'un mot de passe incorrect

Utilisation de syslog-ng-Gestion et surveillance de réseau



Notes :
------
* Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant
qu'utilisateur root.
* Les commandes précédées de "#" signifient que vous devez
travailler
en tant qu'utilisateur root.
* Les commandes comportant des lignes de commande plus spécifiques
(par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez
des commandes sur des équipements à distance, ou dans un autre
programme.

Exercices
---------
Veuillez identifier les participants qui utilisent le même routeur que vous, s'il y'en a. Constituez un groupe et faites ensemble l'exercice suivant. Il s'agit de désigner une personne pour se
connecter au routeur de votre groupe, mais chacun d'entre vous participera à la configuration effective.
1. Configurez votre routeur virtuel afin qu'il envoie des messages syslog à votre serveur :
Vos routeurs sont capables d'envoyer des messages syslog à de multiples destinations, ainsi un routeur peut envoyer des messages à 4 voire 5 destinations différentes. Nous devons donc configurer le routeur pour qu'il envoie des messages à chacun des PC de votre groupe.
Vous allez vous connecter en SSH au routeur de votre groupe et effectuer les opérations suivantes :
$ ssh cisco@10.10.X.254
rtrX> enable
rtrX# config terminal
Répétez la commande "logging 10.10.X.X" pour chaque PC de votre groupe. En d'autres termes, si votre groupe est sur le routeur 6 et que vous utilisez les PC 18, 20, 22, 24 et 26 vous répéterez la
commande à cinq reprises avec l'IP de chaque machine (10.10.6.18, 10.10.6.20, et ainsi de suite).
rtrX(config)# logging 10.10.X.X
rtrX(config)# logging facility local5
rtrX(config)# logging userinfo
rtrX(config)# exit
rtrX# write memory
Regardons le résumé de la configuration des journaux (logs) avec 'show logging'
rtrX# show logging
Déconnectez-vous du routeur (exit)
rtrX# exit
C'est fait. Le routeur devrait maintenant envoyer des paquets UDP SYSLOG à votre PC sur le port 514. Pour vérifier, ouvrez une session sur votre PC et effectuez l'opération suivante :
$ sudo bash
# apt-get install tcpdump (ne vous inquiétez pas si il est déjà installé)
# tcpdump -e -s0 -ni eth0 port 514
Puis demandez à une personne de votre groupe de se connecter au routeur et d'entrer les commandes suivantes :
$ ssh cisco@10.10.X.254
rtrX> enable
rtrX# config terminal
rtrX(config)# exit
rtrX> exit
Des informations de TCPDUMP devraient s'afficher sur l'écran de votre PC. Celles-ci devraient ressembler à ce qui suit :
02:20:24.942289 ca:02:0d:b3:00:08 > 52:54:4a:5e:68:77, ethertype IPv4 (0x0800),
length 144: 10.10.0.6.63515 > 10.10.0.250.514: SYSLOG local5.notice, length: 102
02:20:24.944376 ca:02:0d:b3:00:08 > c4:2c:03:0b:3d:3a, ethertype IPv4 (0x0800),
length 144: 10.10.0.6.53407 > 10.10.0.241.514: SYSLOG local5.notice, length: 102
Vous pouvez maintenant configurer le logiciel de journalisation sur votre PC afin qu'il reçoive ces informations et les enregistre dans un nouvel ensemble de fichiers :
2. Installez syslog-ng
Ces exercices s'effectuent en tant qu'utilisateur root. Si vous n'êtes pas un utilisateur root sur votre machine, vous pouvez le devenir en tapant :
$ sudo bash
# apt-get install syslog-ng
2. Éditez /etc/syslog-ng/syslog-ng.conf
Localisez les lignes
source s_src {
system();
internal();
};
et remplacez-les par :
source s_src {
system();
internal();
udp();
};
Sauvez le fichier et quitter.
Maintant, créez une configuration pour nos logs d'équipement réseau:
# cd /etc/syslog-ng/conf.d/
# editor 10-network.conf
Dans ce fichier, copier et coller les lignes suivantes:
filter f_routers { facility(local5); };
log {
source(s_src);
filter(f_routers);
destination(routers);
};
destination routers {
file("/var/log/network/$YEAR/$MONTH/$DAY/$HOST-$YEAR-
$MONTH-$DAY-$HOUR.log"
owner(root) group(root) perm(0644) dir_perm(0755)
create_dirs(yes)
template("$YEAR $DATE $HOST $MSG\n"));
};
Sauvez le fichier et quitter.
3. Créez le répertoire /var/log/network/
# mkdir /var/log/network/
4. Redémarrez syslog-ng:
# service syslog-ng restart
5. Tester syslog
Pour s'assurer qu'il y ait des messages syslog, reconnectez vous au routeur et effectuez des commandes "config", puis déconnectez vous,
c'est à dire:
# ssh cisco@10.10.X.254
rtrX.ws.nsrc.org> enable
rtrX.ws.nsrc.org# config terminal
rtrX.ws.nsrc.org(config)# exit
rtrX.ws.nsrc.org> exit
Veillez à vous déconnecter du routeur. Si un trop grand nombre de personnes se connectent et oublient de se déconnecter, d'autres ne pourront pas accéder au routeur.

6. Sur votre PC, regardez si des messages commencent à apparaître sous /var/log/network/2015/.../
$ cd /var/log/network
$ ls
$ cd 2015
$ ls
... ceci vous montrera le contenu du répertoire pour le mois en cours
... faites 'cd' et le nom de ce répertoire
$ ls
... recommencer au niveau suivant (le jour du mois)
$ ls
En cas de problème
------------------
Si aucun fichier n'apparait sous le répertoire /var/log/network, alors
une autre commande à essyer pendant qu'on est loggé sur le routeur, en
mode configuration, est de faire un shutdown / no shutdown sur une
interface
Loopback (locale), par eemple:
$ ssh cisco@rtrX
rtrX> enable
rtrX# conf t
rtrX(config)# interface Loopback 999
rtrX(config-if)# shutdown
Attendre quelques secondes
rtrX(config-if)# no shutdown
Puis quitter, et sauver la configuration ("write mem"):
rtrX(config-if)# exit
rtrX(config)# exit
rtrX# write memory
rtr1# exit
Vèrifiez les logs sous '/var/log/network'
# cd /var/log/network
# ls
... suivre la hiérarchie des répertoires.
Toujours pas de logs ?
Essayez la commande suivante pour envoyer un message de log en local:
# logger -p local0.info 'Hello World!'
Si aucun fichier n'a été créé sous '/var/log/network', alors vérifier la configuration pour des fautes de frappe. Ne pas oublier de redémarrer le service syslog-ng à chaque fois que vous changez la configuration.
Quelles autres commandes pouvez vous employer sur le routeur (ATTENTION!) qui provoqueront l'envoi de messages syslog ? Vous pouvez essayer de vous loger sur le router et taper un mot de passe incorrect pour "enable" Assurez-vous de faire un "ls" dans le répertoire de vos logs pour
voir si des logs ont été créés à un moment ou un autre

Installation des outils nfdump et NfSen- Suite Supervision Netflow


Objectifs
* Apprendre à installer les outils nfdump et NfSen
Notes
* Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant qu'utilisateur root.
* Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root.
* Les commandes comportant des lignes de commande plus spécifiques
(par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez des commandes sur des équipements à distance, ou dans un autre programme.
Prérequis
Il est attendu que vous ayez déja configuré votre routeur pour exporter les flux vers un PC dans votre groupe et que votre groupe voisin a configuré leur routeur pour qu'il exporte les flux vers le même PC.
Configurer votre collecteur

  • Installer Nfdump et les outils associés.

Nfdump fait partie des outils de collection Netflow. Nous allons installer plusieurs outils supplémentaires dont nous aurons besoin un peu plus tard.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo apt-get install rrdtool mrtg librrds-perl librrdp-perllibrrd-dev \libmailtools-perl php5 bison flex
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si on vous demande "Make /etc/mrtg.cfg owned by and readable only by root?"
choisir "<Yes>" et appuyer sur ENTREE pour continuer.
 Compilation et installation de nfdump
Il nous manque des outils: nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen
Il y a un paquetage dans Ubuntu mais celui ci est trop ancien.
Nous avons donc re-compilé un paquetage plus récent, prêt à être
téléchargé du NOC:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
cd /tmp/
wget http://noc.ws.nsrc.org/downloads/nfdump_1.6.6-1_i386.deb
wget http://noc.ws.nsrc.org/downloads/nfdump-flowtools_1.6.6-1_i386.deb
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Installation:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
sudo dpkg --install nfdump_1.6.6-1_i386.deb
sudo dpkg --install nfdump-flow-tools_1.6.6-1_i386.deb
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

  • Test et installation de nfcapd et nfdump

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
mkdir /tmp/nfcap-test
nfcapd -E -p 9001 -l /tmp/nfcap-test
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
... au bout d'un certain temps, une série de flux devrait être
affichée
sur votre écran.
Arrêtez l'outil avec CTRL-C, et inspectez le contenu de /tmp/nfcaptest
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ ls -l /tmp/nfcap-test
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vous devriez voir un ou plusieurs fichiers nommés nfcapd.2013xxyyzz
Inspectez ce(s) fichier(s) avec nfdump:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz | less
nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz -s srcip/bytes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vous devriez y trouvez quelques informations utiles :)


  • Installation et configuration de NfSen

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
cd /usr/local/src
sudo wget http://noc.ws.nsrc.org/downloads/nfsen-1.3.6p1.tar.gz
sudo tar xvzf nfsen-1.3.6p1.tar.gz
cd nfsen-1.3.6p1
sudo wget http://noc.ws.nsrc.org/downloads/nfsen-socket6.patch
sudo patch -p0 < nfsen-socket6.patch
cd etc
sudo cp nfsen-dist.conf nfsen.conf
sudo editor nfsen.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ajuster la variable $BASEDIR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$BASEDIR="/var/nfsen";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ajuster le chemin où résident les outils:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# nfdump tools path
$PREFIX = '/usr/bin';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Configurer le bon utilisateur afin qu'Apache puisse accéder aux fichiers:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$WWWUSER = 'www-data';
$WWWGROUP = 'www-data';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Paramétrer la taille du buffer (tampon) à une petite taille, pour qu'on reçoive des données rapidement:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# Receive buffer size for nfcapd - see man page nfcapd(1) $BUFFLEN = 2000;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Trouver la section avec la définition des sources (%sources), et la modifier ainsi:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
%sources=(
'rtr1' => {'port'=>'9001','col'=>'#0000ff','type'=>'netflow'},
'rtr2' => {'port'=>'9002','col'=>'#00ff00','type'=>'netflow'},
);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Maintenaint, sauver le fichier et quitter l'éditeur.

  • Créer l'utilisateur netflow sur le système

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo useradd -d /var/netflow -G www-data -m -s /bin/false netflow
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

  • Installer NfSen et commencer à l'utiliser

Assurons nous que nous sommes au bon endroit:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ cd /usr/local/src/nfsen-1.3.6p1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Enfin, on peut installer:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo perl install.pl etc/nfsen.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Appuyer sur ENTREE quand on vous demande le chemin de Perl.
## Installer le script de démarrage (initialisation)
Afin que nfsen démarre et s'arrête automatiquement quand votre machine démarre, ajoutez un lien depuis le répertoire init.d pointant sur le script d'initialisation de nfsen:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen
sudo update-rc.d nfsen defaults 20
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Démarrer nfsen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
sudo service nfsen start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
## View flows via the web:
La page nfsen se trouve ici:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
http://pcX.ws.nsrc.org/nfsen/nfsen.php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si vous voyez un message similaire:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Frontend - Backend version missmatch!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
... ce n'est pas grave, il suffit de recharder la page et il disparaît.
Fini! Continuons avec le labo 3, exercice3-NfSen-PortTracker
* NOTES:
## Ajour de sources supplémentaires
Pour ajouter de nouvelles sources à nfsen, il suffit de faire ainsi:
- rédiger /var/nfsen/etc/nfsen.conf, and ajouter les sources, par
exemple:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
%sources = (
'rtrX' => { 'port' => '900X', 'col' => '#0000ff', 'type' =>'netflow' },
'rtrY' => { 'port' => '900Y', 'col' => '#00ff00', 'type' =>'netflow' },
'rtr10' => { 'port' => '9010', 'col' => '#ff0000', 'type' =>'netflow' }, # <- new);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

  • - Reconfigurer NfSen.

Il faudra faire ceci chaque fois que aller modifier /var/nfsen/etc/
nfsen.conf:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo /etc/init.d/nfsen reconfig
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vous devriez alors voir:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
New sources to configure : rtr10
Continue? [y/n] y
Add source 'rtr10'
Reconfig done!

Supervision Netflow- Gestion et Surveillance de réseau

Objectifs
* Apprendre à exporter des flux depuis un routeur Cisco
Notes
* Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant
qu'utilisateur root.
* Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root.
* Les commandes comportant des lignes de commande plus spécifiques (par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez des commandes sur des équipements à distance, ou dans un autre programme.
Exporter les flux depuis un routeur Cisco
Pendant cet exercice, on vous demande d'exporter les flux depuis votre routeur vers deux PC dans la classe. Vous devez travaiiler en groupe. C'est à dire, pour le groupe 1, les utilisateurs des
pc1, pc2, pc3 et pc4 doivent travailler ensemble, et choisir une machine sur laquelle les flux arriveront.
Par ailleurs, vous exporterez un second flux depuis le routeur de votre groupe, vers le groupe voisin du vôtre. Par exemple, si vous êtes dans le groupe 1, et si le groupe 2 a désigné le pc5 comme
celui qui recevra les flux, alors vous configurerez votre routeur pour qu'il utilise pc5 comme seconde destination pour les flux. Et si vous choisissez pc1 pour recevoir les flux de votre routeur
(rtr1), alors il devra également recevoir des flux du routeur 2 (rtr2).

Pour résumer:
Group 1, Routeur 1
-----------------
rtr1 ==> pc1 port 9001
rtr1 ==> pc5 port 9002
Group 2, Routeur 2
-----------------
rtr2 ==> pc5 port 9001
rtr2 ==> pc1 port 9002
Choisir la meilleure combinaison pour vos groupes.
On peut faire ça de la manière suivante:
* groupes 1 et 2
* groupes 3 et 4
* groupes 5 et 6
* groupes 7 et 8
Si il y a un groupe 9, voyez avec les instructeurs.
Si vous avez 3 groupes, on peut faire:
rtr1 ==> pc1 port 9001
rtr1 ==> pc5 port 9001
rtr2 ==> pc5 port 9002
rtr2 ==> pc9 port 9001
rtr3 ==> pc9 port 9002
rtr3 ==> pc1 port 9002
... la règle étant:
- chaque routeur doit exporter vers deux destination: une dans votre groupe, une dans un autre groupe
- chaque PC désigné dans le groupe reçoit deux flux: un de votre groupe, et un depuis un autre groupe
Configuration:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

$ ssh cisco@rtr1.isetn.rnu.tn
rtr1.isetn.rnu.tn> enable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si ssh n'est pas encore activé:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ telnet 10.10.1.254
Username: cisco
Password:
Router1>enable
Password:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Rappel - ceci est un EXEMPLE pour le cas suivant - à vous d'adapter!
rtr1 ==> pc1 on port 9001
rtr1 ==> pc5 on port 9002
Les autres groupes (2,3,4,5,6,7,8,9) feront différemment.
La section suivante active l'export des flux sur l'interface FastEthernet 0/0.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn# configure terminal
rtr1.isetn.rnu.tn#(config)# interface FastEthernet 0/0
rtr1.isetn.rnu.tn#(config-if)# ip flow ingress
rtr1.isetn.rnu.tn#(config-if)# ip flow egress
rtr1.isetn.rnu.tn#(config-if)# exit
rtr1.isetn.rnu.tn#(config)# ip flow-export destination 10.10.1.1 9001
rtr1.isetn.rnu.tn#(config)# ip flow-export destination 10.10.2.5 9002
rtr1.isetn.rnu.tn#(config)# ip flow-export version 5
rtr1.isetn.rnu.tn#(config)# ip flow-cache timeout active 5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ceci découpe les flux de long durée en fragments de 5 minute. Vous pouvez choisir n'importe quel intervalle de temps entre 1 et 60 minutes. Si vous laissez la valeur par défaut de 30 minutes, vos
graphes auront des pics de traffic.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~

rtr1.ws.nsrc.org(config)# snmp-server ifindex persist

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ceci active la persistence des index SNMP de vos interfaces. C'est
pour
garantir que les valeurs de ifIndex ne changent pas si vous ajoutez
ou supprimez des modules interface à vos équipements réseau.
Maintenant, configurons les paramètres de ip flow top-talkers:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn(config)#ip flow-top-talkers
rtr1.isetn.rnu.tn(config-flow-top-talkers)#top 20
rtr1.isetn.rnu.tn(config-flow-top-talkers)#sort-by bytes
rtr1.isetn.rnu.tn(config-flow-top-talkers)#end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
On va maintenant vérifier ce qu'on à fait:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.ws.nsrc.org# show ip flow export
rtr1.ws.nsrc.org# show ip cache flow
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Notez la distribution de la taille des paquets. Quel sont les deux
tailles de paquets les plus présentes ?
See your "top talkers" across your router interfaces
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn# show ip flow top-talkers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si cela a l'air ok, alors écrire la configuration running-config
dans
la NVRAM (c'est à dire la configiration de démarrage):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

rtr1.isetn.rnu.tn#wr mem

Vous pouvez maintenant quitter le routeur:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn#exit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vérifier que les flux arrivent bien depuis votre routeur, jusqu'au PC
désigné pour recevoir les flux dans votre groupe.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo tcpdump -Tcnfp port 9001
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Attendez quelques secondes, et vous devriez voir quelque chose
ressemblant
à ceci:
06:12:00.953450 IP s2.isetn.rnu.tn.54538 > noc.isetn.rnu.tn.9009:
NetFlow v5, 9222.333 uptime, 1359871921.013782000, #906334, 30 recs
started 8867.952, last 8867.952
10.10.0.241/0:0:53 > 10.10.0.250/0:0:49005 >> 0.0.0.0
udp tos 0, 1 (136 octets)
started 8867.952, last 3211591.733
10.10.0.241/10:0:0 > 0.0.0.0/10:0:4352 >> 0.0.0.0
ip tos 0, 62 (8867952 octets)
[...]
Si vous utilisez Netflow v9, notez que l'exemple ci-dessus ne sera
pas
identique, comme la version de tcpdump dans Ubuntu ne décode pas
toujours
correctement le Netflow v9.
Vérifier que les flux venant du routeur de votre groupe voisi
arrivent
bien sur le PC désigné pour recevoir les flux dans VOTRE groupe (il
faut
attendre que ceux-ci soient prêts et que l'export des flux soit
activé):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo tcpdump -Tcnfp port 9002
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ce labo est terminé.

Maintenant, allons faire l'exercice 2 exercise2-install-nfdumpnfsen.