| 1 | % Supervision NetFlow |
|---|
| 2 | % |
|---|
| 3 | % Gestion et Surveillance de Réseau |
|---|
| 4 | |
|---|
| 5 | # Introduction |
|---|
| 6 | |
|---|
| 7 | ## Objectifs |
|---|
| 8 | |
|---|
| 9 | * Apprendre à installer les outils nfdump et NfSen |
|---|
| 10 | |
|---|
| 11 | ## Notes |
|---|
| 12 | |
|---|
| 13 | * Les commandes précédées de "$" signifient que vous devez exécuter |
|---|
| 14 | la commande en tant qu'utilisateur général - et non en tant |
|---|
| 15 | qu'utilisateur root. |
|---|
| 16 | * Les commandes précédées de "#" signifient que vous devez travailler |
|---|
| 17 | en tant qu'utilisateur root. |
|---|
| 18 | * Les commandes comportant des lignes de commande plus spécifiques |
|---|
| 19 | (par exemple "rtrX>" ou "mysql>") signifient que vous exécutez |
|---|
| 20 | des commandes sur des équipements à distance, ou dans un autre |
|---|
| 21 | programme. |
|---|
| 22 | |
|---|
| 23 | # Configurer votre collecteur |
|---|
| 24 | |
|---|
| 25 | ## Installer Nfdump et les outils associés. |
|---|
| 26 | |
|---|
| 27 | Nfdump fait partie des outils de collection Netflow, qui comprennent: |
|---|
| 28 | |
|---|
| 29 | nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen |
|---|
| 30 | |
|---|
| 31 | Il y a un paquetage dans Ubuntu, mais il n'est pas à jour, donc nous |
|---|
| 32 | allons l'installer à partir des sources. D'abord, assurons-nous que nous |
|---|
| 33 | avons les outils de compilation et leurs dépendences: |
|---|
| 34 | |
|---|
| 35 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 36 | $ sudo apt-get install build-essential |
|---|
| 37 | $ sudo apt-get install rrdtool mrtg librrds-perl librrdp-perl librrd-dev \ |
|---|
| 38 | libmailtools-perl php5 bison flex |
|---|
| 39 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 40 | |
|---|
| 41 | Maintenant nous pouvons procéder au téléchargement et à la compilation. |
|---|
| 42 | Notez que la dernière étape doit s'effectuer en tant que 'root'. |
|---|
| 43 | |
|---|
| 44 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 45 | $ cd |
|---|
| 46 | $ wget http://noc.ws.nsrc.org/downloads/nfdump.tar.gz |
|---|
| 47 | $ tar xvzf nfdump.tar.gz |
|---|
| 48 | $ cd nfdump-1.X.Yp1 |
|---|
| 49 | $ ./configure --help # facultatif - pour voir les options disponibles |
|---|
| 50 | $ ./configure --enable-nfprofile --enable-nftrack |
|---|
| 51 | $ make |
|---|
| 52 | $ sudo make install |
|---|
| 53 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 54 | |
|---|
| 55 | ### Test de nfcapd et nfdump |
|---|
| 56 | |
|---|
| 57 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 58 | mkdir /tmp/nfcap-test |
|---|
| 59 | nfcapd -E -p 9001 -l /tmp/nfcap-test |
|---|
| 60 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 61 | |
|---|
| 62 | ... au bout d'un certain temps, une série de flux devrait être affichée |
|---|
| 63 | sur votre écran. |
|---|
| 64 | |
|---|
| 65 | Arrêtez l'outil avec CTRL-C, et inspectez le contenu de /tmp/nfcap-test |
|---|
| 66 | |
|---|
| 67 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 68 | $ ls -l /tmp/nfcap-test |
|---|
| 69 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 70 | |
|---|
| 71 | Vous devriez voir un ou plusieurs fichiers nommés |
|---|
| 72 | `nfcapd.<ANNEE><MOIS><JOUR><HH><MM>` |
|---|
| 73 | |
|---|
| 74 | Inspectez ce(s) fichier(s) avec nfdump: |
|---|
| 75 | |
|---|
| 76 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 77 | nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz | less |
|---|
| 78 | nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz -s srcip/bytes |
|---|
| 79 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 80 | |
|---|
| 81 | Vous devriez y trouvez quelques informations utiles :) |
|---|
| 82 | |
|---|
| 83 | |
|---|
| 84 | ## Installation et configuration de NfSen |
|---|
| 85 | |
|---|
| 86 | Télécharger et compiler. Le patch (correctif) est nécessaire pour corriger |
|---|
| 87 | un problème rapporté à <http://sourceforge.net/p/nfsen/bugs/31/> |
|---|
| 88 | |
|---|
| 89 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 90 | $ cd |
|---|
| 91 | $ wget http://noc.ws.nsrc.org/downloads/nfsen-1.3.6p1.tar.gz |
|---|
| 92 | $ tar xvzf nfsen.tar.gz |
|---|
| 93 | $ cd nfsen-1.x.yp1 |
|---|
| 94 | $ patch -p0 < nfsen-socket6.patch |
|---|
| 95 | $ cd etc |
|---|
| 96 | $ cp nfsen-dist.conf nfsen.conf |
|---|
| 97 | $ editor nfsen.conf |
|---|
| 98 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 99 | |
|---|
| 100 | Ajuster la variable $BASEDIR |
|---|
| 101 | |
|---|
| 102 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 103 | $BASEDIR="/var/nfsen"; |
|---|
| 104 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 105 | |
|---|
| 106 | Configurer le bon utilisateur afin qu'Apache puisse accéder aux fichiers: |
|---|
| 107 | |
|---|
| 108 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 109 | $WWWUSER = 'www-data'; |
|---|
| 110 | $WWWGROUP = 'www-data'; |
|---|
| 111 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 112 | |
|---|
| 113 | Paramétrer la taille du buffer (tampon) à une petite taille, pour qu'on |
|---|
| 114 | reçoive des données rapidement: |
|---|
| 115 | |
|---|
| 116 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 117 | # Receive buffer size for nfcapd - see man page nfcapd(1) |
|---|
| 118 | $BUFFLEN = 2000; |
|---|
| 119 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 120 | |
|---|
| 121 | Trouver la section avec la définition des sources (%sources), et la |
|---|
| 122 | modifier ainsi: |
|---|
| 123 | |
|---|
| 124 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 125 | %sources=( |
|---|
| 126 | 'rtrX' => {'port'=>'9001','col'=>'#0000ff','type'=>'netflow'}, |
|---|
| 127 | ); |
|---|
| 128 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 129 | |
|---|
| 130 | (remplacer rtrX par le routeur de votre groupe, et supprimer / mettre |
|---|
| 131 | en commentaire les autres exemples de sources. Maintenaint, sauver |
|---|
| 132 | le fichier et quitter l'éditeur. |
|---|
| 133 | |
|---|
| 134 | ## Créer l'utilisateur netflow sur le système |
|---|
| 135 | |
|---|
| 136 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 137 | $ sudo useradd -d /var/netflow -G www-data -m -s /bin/false netflow |
|---|
| 138 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 139 | |
|---|
| 140 | |
|---|
| 141 | ## Installer NfSen et le démarrer |
|---|
| 142 | |
|---|
| 143 | Assurons nous que nous sommes au bon endroit: |
|---|
| 144 | |
|---|
| 145 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 146 | $ cd |
|---|
| 147 | $ cd nfsen-1.3.6p1 |
|---|
| 148 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 149 | |
|---|
| 150 | Enfin, on peut installer: |
|---|
| 151 | |
|---|
| 152 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 153 | $ sudo perl install.pl etc/nfsen.conf |
|---|
| 154 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 155 | |
|---|
| 156 | Appuyer sur ENTREE quand on vous demande le chemin de Perl. |
|---|
| 157 | |
|---|
| 158 | ## Installer le script de démarrage (initialisation) |
|---|
| 159 | |
|---|
| 160 | Afin que nfsen démarre et s'arrête automatiquement quand votre |
|---|
| 161 | machine démarre, ajoutez un lien depuis le répertoire init.d |
|---|
| 162 | pointant sur le script d'initialisation de nfsen: |
|---|
| 163 | |
|---|
| 164 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 165 | $ sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen |
|---|
| 166 | $ sudo update-rc.d nfsen defaults 20 |
|---|
| 167 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 168 | |
|---|
| 169 | Démarrer NfSen |
|---|
| 170 | |
|---|
| 171 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 172 | $ sudo service nfsen start |
|---|
| 173 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 174 | |
|---|
| 175 | Vérifier que'au moins un processus nfcapd à été démarré: |
|---|
| 176 | |
|---|
| 177 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 178 | # ps auxwww | grep nfcapd |
|---|
| 179 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 180 | |
|---|
| 181 | ## View flows via the web: |
|---|
| 182 | |
|---|
| 183 | La page nfsen se trouve ici: |
|---|
| 184 | |
|---|
| 185 | Sur Ubuntu 14.04 l'arborescence web a changé le DocumentRoot par défaut est |
|---|
| 186 | le /var/www/html/ |
|---|
| 187 | |
|---|
| 188 | # mv /var/www/nfsen /var/www/html/ |
|---|
| 189 | |
|---|
| 190 | ensuite accéder au site via |
|---|
| 191 | |
|---|
| 192 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 193 | http://pcX.ws.nsrc.org/nfsen/nfsen.php |
|---|
| 194 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 195 | |
|---|
| 196 | Si vous travaillez par paires, alors chacun d'entre vous ouvrira l'adresse |
|---|
| 197 | ci-dessus dans son navigateur (vers le PC qui reçoit les flux). |
|---|
| 198 | |
|---|
| 199 | Si vous voyez un message similaire: |
|---|
| 200 | |
|---|
| 201 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 202 | Frontend - Backend version missmatch! |
|---|
| 203 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 204 | |
|---|
| 205 | ... ce n'est pas grave, il suffit de recharder la page et il disparaît. |
|---|
| 206 | |
|---|
| 207 | Fini! Continuons avec le labo 3, exercice3-nfsen-top-talkers. |
|---|
| 208 | |
|---|
| 209 | * NOTES: |
|---|
| 210 | |
|---|
| 211 | ## Ajour de sources supplémentaires |
|---|
| 212 | |
|---|
| 213 | Si vous aviez plusieurs routers sur votre réseau qui envoient des flux |
|---|
| 214 | vers le même collecteur, vous pourriez soit configurer chacun d'entre |
|---|
| 215 | eux pour qu'ils envoient les flux vers des ports différents sur votre |
|---|
| 216 | collecteur, ou bien vous pourriez indiquer à nfsen l'adresse IP de chaque |
|---|
| 217 | routeur. Ceci permet à nfsen d'afficher les données propres à chaque |
|---|
| 218 | source de manière distincte. |
|---|
| 219 | |
|---|
| 220 | NE PAS FAIRE CECI MAINTENANT - vous n'avez pour le moment qu'un seul |
|---|
| 221 | routeur, mais si vous deviez le faire, vous procéderiez de la manière |
|---|
| 222 | suivate: |
|---|
| 223 | |
|---|
| 224 | - rédiger /var/nfsen/etc/nfsen.conf, and ajouter les sources, par exemple: |
|---|
| 225 | |
|---|
| 226 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 227 | %sources = ( |
|---|
| 228 | 'rtrX' => { 'port' => '900X', 'col' => '#0000ff', 'type' => 'netflow' }, |
|---|
| 229 | 'rtrY' => { 'port' => '900Y', 'col' => '#00ff00', 'type' => 'netflow' }, |
|---|
| 230 | 'gw' => { 'port' => '9010', 'col' => '#ff0000', 'type' => 'netflow' }, |
|---|
| 231 | ); |
|---|
| 232 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 233 | |
|---|
| 234 | - Reconfigurer NfSen. |
|---|
| 235 | |
|---|
| 236 | Il faudra faire ceci chaque fois que aller modifier /var/nfsen/etc/nfsen.conf: |
|---|
| 237 | |
|---|
| 238 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 239 | $ sudo /etc/init.d/nfsen reconfig |
|---|
| 240 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 241 | |
|---|
| 242 | Vous devriez alors voir: |
|---|
| 243 | |
|---|
| 244 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 245 | New sources to configure : rtr10 |
|---|
| 246 | Continue? [y/n] y |
|---|
| 247 | |
|---|
| 248 | Add source 'gw' |
|---|
| 249 | Add source 'rtrY' |
|---|
| 250 | |
|---|
| 251 | Start/restart collector on port '9002' for (rtr2)[pid] |
|---|
| 252 | Start/restart collector on port '9996' for (gw)[pid] |
|---|
| 253 | |
|---|
| 254 | Restart nfsend:[pid] |
|---|
| 255 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 256 | |
|---|