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é pcX.ws.nsrc.org / 10.10.X.Y. Dans chacun de vos groupes, pour les routeurs 1 à N, 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 rtrX ou 10.10.X.254 (routeur du Groupe X) Connectez-vous au routeur : # ssh 10.10.X.254 -l cisco (si vous n'avez pas configuré ssh, utilisez telnet) # telnet 10.10.X.254 rtr1.ws.nsrc.org> enable Entrez le mot de passe enable Configurez l'inteface FastEthernet0/0 pour activer netflow. Remplacez X par le numéro de votre groupe, et Y par un PC de votre groupe, et Z par un autre. rtr1.ws.nsrc.org# configure terminal rtr1.ws.nsrc.org(config)# interface FastEthernet 0/0 rtr1.ws.nsrc.org(config-if)# ip flow ingress rtr1.ws.nsrc.org(config-if)# ip flow egress rtr1.ws.nsrc.org(config-if)# exit rtr1.ws.nsrc.org(config)# ip flow-export destination 10.10.X.Y 9996 rtr1.ws.nsrc.org(config)# ip flow-export destination 10.10.X.Z 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 9900 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.6p1.tar.gz # tar xvzf nfsen-1.3.6p1.tar.gz # cd nfsen-1.3.6p1 # cd etc # cp nfsen-dist.conf nfsen.conf # editor 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'=>'9996','col'=>'#ffff00','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.6p1 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 9996, vous pourrez contrôler que des données arrivent avec la commande tcpdump : # tcpdump -v udp port 9996 Installez le script de démarrage pour que nfsen démarre automatiquement quand le système est initialisé, avec un lien dans init.d, de la façon suivante: # sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen # update-rc.d nfsen defaults 20 7. Complétez votre configuration Netflow Retournez à l'endroit où vous avez extrait votre distribution nfsen. # cd /usr/local/src/nfsen-1.3.6p1 # vi etc/nfsen.conf Mettez vos sources à jour en fonction des nouveaux éléments que vous pourriez avoir.. %sources=( 'gw' => {'port' => '9900', 'col' => '#ff0000' }, 'rtrX'=>{'port'=>'9996','col'=>'#ffff00','type'=>'netflow'}, ); 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 8. Installation du plugin PortTracker (facultatif ou à titre de référence) Il nous faut installer nfdump 1.6.5 ou plus récent. La version de nfdum incluse dans Ubuntu 10.04 est 1.6.3p1, donc ça ne suffit pas. # apt-get install bison flex # cd /usr/local/src # wget http://noc.ws.nsrc.org/downloads/nfdump-1.6.6.tar.gz # tar xvzf nfdump-1.6.6.tar.gz # cd nfdump-1.6.6 # ./configure --prefix /usr --enable-nfprofile --enable-nftrack # make Créér un répertoire pour les données nftrack: # mkdir -p /var/log/netflow/porttracker # chown www-data /var/log/netflow/porttracker Dans le répertoire /usr/local/src/nfdump-1.6.6: Modificer le chemin dans PortTracker.pm # editor extra/PortTracker.pm Trouvez la ligne: my $PORTSDBDIR = "/data/ports-db"; et la remplacer par: my $PORTSDBDIR = "/var/log/netflow/porttracker"; Installer le plugin dans l'installation NFSen: # cp extra/PortTracker.pm /var/nfsen/plugins/ # cp /usr/local/src/nfsen-1.3.6p1/contrib/PortTracker/PortTracker.php /var/www/nfsen/plugins/ Ajoutez la définition pour ce plugin dans nfsen.conf # cd /usr/local/src/nfsen-1.3.6p1 # editor etc/nfsen.conf Trouver la section des plugins, et la modifier comme ceci: @plugins = ( [ 'live', 'PortTracker'], ); * Re-lancer l'installation (répondre 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 TRÈS longtemps - 8 Go de fichiers seront créés) - Définissez les permissions 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.