Gestion et Surveillance de Réseau Configurez votre routeur pour exporter des flux ------------------------------------- 1. Exportation de flux à partir d'un routeur Ceci est un exemple d'exportation de flux depuis le routeur du groupe 1, rtr1.ws.nsrc.org vers le PC nommé pc1.ws.nsrc.org ou 10.10.1.1. Dans chacun de vos groupes, pour les routeurs 1 à 6, vous devez désigner une personne chargée de taper les commandes permettant de configurer un routeur pour Netflow et un PC de destination des exportations Netflow. Notre routeur est rtr1 ou 10.10.0.201 (routeur du Groupe 1) Connectez-vous au routeur : # ssh 10.10.0.201 -l cisco (si vous n'avez pas configuré ssh, utilisez telnet) # telnet 10.10.0.201 rtr1.ws.nsrc.org> enable Entrez le mot de passe enable rtr1.ws.nsrc.org# configure terminal rtr1.ws.nsrc.org(config)# interface FastEthernet 0/0 rtr1.ws.nsrc.org(config)# ip route-cache flow rtr1.ws.nsrc.org(config)# exit Si l'interface FastEthernet 0/1 est active (et pour toutes les interfaces éventuellement configurées): rtr1.ws.nsrc.org# configure terminal rtr1.ws.nsrc.org(config)# interface FastEthernet 0/1 rtr1.ws.nsrc.org(config)# ip route-cache flow rtr1.ws.nsrc.org(config)# exit On active l'exportation des flux: rtr1.ws.nsrc.org#conf t rtr1.ws.nsrc.org(config)# ip flow-export destination 10.10.0.1 9996 rtr1.ws.nsrc.org(config)# ip flow-export destination 10.10.0.2 9996 rtr1.ws.nsrc.org(config)# ip flow-export version 5 rtr1.ws.nsrc.org(config)# ip flow-cache timeout active 5 Ceci permet de diviser les flux de longue durée en fragments de 5 minutes. Vous pouvez choisir n'importe quel nombre de minutes entre 1 et 60. Si vous conservez la valeur par défaut de 30 minutes vos rapports de trafic présenteront des pointes. rtr1.ws.nsrc.org(config)# snmp-server ifindex persist Cette commande a pour effet d'activer la persistance globale d'ifIndex, garantissant ainsi la conservation des valeurs ifIndex en cas de redémarrage du routeur. Configurez maintenant le mode de fonctionnement des commandes "ip flow top-talkers" : rtr1.ws.nsrc.org(config)#ip flow-top-talkers rtr1.ws.nsrc.org(config-flow-top-talkers)#top 20 rtr1.ws.nsrc.org(config-flow-top-talkers)#sort-by bytes rtr1.ws.nsrc.org(config-flow-top-talkers)#end Nous allons maintenant vérifier ce que nous avons fait. rtr1.ws.nsrc.org# show ip flow export rtr1.ws.nsrc.org# show ip cache flow Consultez les "top talkers" des interfaces de votre routeur rtr1.ws.nsrc.org# show ip flow top-talkers Si tout semble correct, enregistrez votre configuration courante (running-config) dans la mémoire RAM non volatile (c.-à-d. en "startup-config" (configuration de démarrage)): rtr1.ws.nsrc.org#wr mem Vous pouvez maintenant quitter le routeur : rtr1.ws.nsrc.org#exit Et, sur la machine où les flux sont exportés, vous pouvez vérifier qu'ils arrivent effectivement en tapant la commande suivante (en tant qu'utilisateur root) # tcpdump -v udp port 9996 En outre (VEUILLEZ NOTER) que nous réexportons les données NetFlow provenant du routeur de passerelle vers tous les PC de la classe. Vous pouvez vérifier que ces flux arrivent en tapant : # tcpdump -v udp port 9009 Pour les besoins de ces exercices, nous supposerons que vous êtes sur un PC recevant uniquement les flux provenant du routeur de passerelle et nous utiliserons le port 9009. Configurer votre collecteur : ------------------------ 1. Installez NFdump Nfdump est le collecteur de flux de Netflow Nous allons installer plusieurs paquets supplémentaires dont nous aurons besoin un peu plus tard : Installez-les uniquement si vous n'avez pas déjà installé mrtg et rrdtool : # apt-get install rrdtool # apt-get install librrds-perl # apt-get install librrdp-perl # apt-get install mrtg # aot-get install libmailtools-perl Si mrtg et rrdtool sont déjà installés, il vous suffit de taper les lignes suivantes : # apt-get install librrd-dev # apt-get install nfdump Ou encore, sur une seule ligne : # apt-get install rrdtool mrtg librrds-perl librrdp-perl librrd-dev nfdump libmailtools-perl Cela permet d'installer, entre autres, nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen 2. Installation et configuration de NfSen (connecté en tant qu'utilisateur root) # cd /usr/local/src # wget http://noc.ws.nsrc.org/software/nfsen-1.3.5.tar.gz # tar xvzf nfsen-1.3.5.tar.gz # cd nfsen-1.3.5 # cd etc # cp nfsen-dist.conf nfsen.conf # joe nfsen.conf Définissez la variable $BASEDIR $BASEDIR="/var/nfsen"; Définissez correctement les utilisateurs afin qu'Apache puisse accéder aux fichiers : $WWWUSER = 'www-data'; $WWWGROUP = 'www-data' Modifiez le chemin des outils en fonction de l'endroit où se trouvent réellement les éléments : # nfdump tools path $PREFIX = '/usr/bin'; Spécifiez un tampon de petite taille, de façon à ce que les données soient rapidement visibles. # Receive buffer size for nfcapd - see man page nfcapd(1) $BUFFLEN = 2000; Modifiez la définition %sources comme indiqué ci-dessous : %sources=( 'rtrX'=>{'port'=>'9009','col'=>'#0000ff','type'=>'netflow'}, ); Enregistrez et fermez le fichier. 3. Créez l'utilisateur NetFlow sur le système # useradd -d /var/netflow -G www-data -m -s /bin/false netflow 4. Initialisez NfSen. Chaque fois que vous apporterez des modifications à nfsen.conf vous devrez répéter cette étape. Assurez-vous que nous sommes au bon emplacement : # cd /usr/local/src/nfsen-1.3.5 Maintenant, enfin, nous allons installer : # perl install.pl etc/nfsen.conf Démarrez NfSen cd /var/nfsen/bin ./nfsen start 5. Visualisez les flux sur le Web : # apt-get install php5 Vous pouvez trouver la sortie nfsen à l'adresse suivante : http://pcN.ws.nsrc.org/nfsen/nfsen.php 6. Vérifiez que des flux arrivent : En supposant que vous exportez des flux à partir d'un ou plusieurs routeurs vers votre boîtier collecteur sur le port 9009, vous pourrez contrôler que des données arrivent avec la commande tcpdump : # tcpdump -v udp port 9009 7. Complétez votre configuration Netflow (Ceci n'est qu'un exemple- Nous n'allons pas le faire) Retournez à l'endroit où vous avez extrait votre distribution nfsen. # cd /usr/local/src/nfsen-1.3.5 # vi etc/nfsen.conf Mettez vos sources à jour en fonction des nouveaux éléments que vous pourriez avoir.. (Ceci n'est qu'un exemple !) %sources = ( 'rtr' => {'port' => '9000', 'col' => 'e4e4e4' }, 'rtr2' => { 'port' => '9001', 'col' => '#0000ff' }, 'rtr3' => { 'port' => '9002','col' => '#00cc00' }, 'rtr4' => { 'port' => '9003','col' => '#000000' }, 'rtr5' => { 'port' => '9004','col' => '#ff0000' }, 'rtr6' => { 'port' => '9005','col' => '#ffff00' }, ); Enregistrez et fermez le fichier nfsend.conf. Rappelez-vous que vous avez modifié nfsen.conf ; vous devez donc ré-exécuter le script d'installation : # perl install.pl etc/nfsen.conf Maintenant démarrez et arrêtez nfsen : # /var/nfsen/bin/nfsen stop # /var/nfsen/bin/nfsen start Vous pouvez ajouter le script de démarrage nfsen dans /etc/init.d/rc.local ou dans un emplacement similaire afin de le lancer au démarrage.) 8. Installation du plugin PortTracker (facultatif ou à titre de référence) - Allez dans le répertoire PortTracker dans la distribution des sources nfsen : # cd /usr/local/src/nfsen-1.3.5/contrib/PortTracker # joe do_compile # path of nfdump sources NFDUMP="/home/sysadmin/nfdump-1.6.2" # path of rrd include file rrd.h RRDINCLUDE=/usr/include # path of rrd library LIBRRD=/usr/lib - Compilez nftrack : # ./do_compile ... # cp nftrack /usr/local/bin/ - Créez un répertoire pour les données nftrack # mkdir -p /var/log/netflow/porttracker - Placez le répertoire des données nftrack dans le module PortTracker.pm : # joe PortTracker.pm ... my $PORTSDBDIR = "/var/log/netflow/porttracker"; ... - Installez les plugins dans la distribution NFSen # cp PortTracker.pm /var/nfsen/plugins/ # cp PortTracker.php /var/www/nfsen/plugins/ - Ajoutez la définition des plugins dans la configuration nfsen.conf # cd ~/nfsen-1.3.5 # vi etc/nfsen.conf ... @plugins = ( [ 'live', 'PortTracker'], ); ... - Ré-exécuter l'installation (répondez aux questions) # perl install.pl etc/nfsen.conf - Initialisez les fichiers de la base de données portracker # sudo -u www-data nftrack -I -d /var/log/netflow/porttracker (Cela peut prendre un certain temps ! - 8 Go de fichiers seront créés) - Définissez les autorisations de façon à ce que l'utilisateur netflow exécutant nfsen, et l'utilisateur www-data exécutant l'interface Web puissent accéder aux données PortTracker : # chown -R netflow:www-data /var/log/netflow/porttracker # chmod -R 775 /var/log/netflow/porttracker - Rechargez : # /var/nfsen/bin/nfsen reload - Vérifiez que le chargement a réussi : # grep -i 'porttracker.*success' /var/log/syslog Nov 27 02:46:13 noc nfsen[17312]: Loading plugin 'PortTracker': Success Nov 27 02:46:13 noc nfsen[17312]: Initializing plugin 'PortTracker': Success - Attendez quelques minutes, et ouvrez l'interface utilisateur graphique de nfsen http://pcN.ws.nsrc.org/nfsen/nfsen.php ... et sélectionnez l'onglet Plugins.