Agenda: ejercicios-netflow-nfsen.txt

File ejercicios-netflow-nfsen.txt, 12.4 KB (added by admin, 8 years ago)
Line 
1Gestion y Monitoreo de Redes
2Instalacion y Configuracion de NetFlow
3
4Notas:
5------
6* Comandos que empiezan con un "$" implica que deberia ejecutar el comando
7  como un usuario general - no como root.
8* Comandos que empiezan con un "#" implica que deberia trabajar como el usuario root.
9* Comandos con lineas mas especificas (como "GW-RTR>" o "mysql>") implica que esta
10  ejecutando el comando en un equipo remoto o dentro otro programa.
11* Si una linea termina con un "\" esto indica que el comando sigue en la proxima
12  linea y Ud. deberia tratar el comando si como fuera en una sola linea.
13
14Ejercicios
15-----------
16
17Flujo de este practica.
18
19* Si hay tiempo/routers - configurar los routers para exportar flujos a los pcs
20  en cada grupo.
21* Si no hay tiempo/routers - configurar los pcs con el software to coleccion para
22  very los flujos en el router de su grupo.
23* Opcional: agregar el plug-in Port Tracker al software NfSsen
24
25Ejercicios Parte I
26------------------
27
28En este curso tenemos todo los flujos de cada router de cada grupo redireccionado
29desde la maquina noc.ws.nsrc.org a cada pc en cada grupo - asi, no vamos a configurar
30su router porque ya esta configurado. Ver el ejemplo al final de este documento para
31saber como configurar un router cisco exportor flujos.
32
33
340. HAZ UNA CONECCION SSH A SU PC
35
361. CONFIGURAR SU PC PARA COLECCIONAR LOS FLUJOS Y VERLOS POR EL WEB
37
38   Verifica que los flujos (flows) estan llegando a su pc:
39
40        # sudo bash
41        # apt-get install tcpdump
42        # tcpdump -i eth0 -v port 900N
43
44   Donde "N" es el numero de su grupo (1, 2, 3, 4, 5, o 6).
45
46   Despues que un corto plazo deberia ver algo como esto (ejemplo por grupo 2):
47
48        root@pc4:~# tcpdump -i eth0 -v port 9002
49        tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
50        01:06:49.481983 IP (tos 0x0, ttl 63, id 242, offset 0, flags [none], proto UDP (17), length 388)
51        10.10.0.2.62089 > 10.10.2.4.9002: UDP, length 360
52
53   Instalar NFdump desde fuente.
54
55   Primero instalamos los paquetes de apoyo por el software NFdump. Instalamos NFdump
56   desde fuente para permitir instalar el plug-in Port Tracker mas adelante.
57
58   Si algunos de este paquetes ya estan instalado no se preocupa el sistema apt-get
59   arregal todo :-)
60
61        # apt-get install rrdtool mrtg librrds-perl librrdp-perl librrd-dev \
62          libmailtools-perl bison flex php5
63
64   La instalacion va a demorar algunos minutos en terminar.
65
66   Si recibes el mensaje que empieza con:
67
68        "If your MRTG configuration file is readable by users other than the user MRTG
69        runs as ('root' by default) it can present a security risk, as this file
70        contains SNMP community names.
71
72        ..."
73
74        Selecciona "<Yes>" para seguir
75
76   Bajar el fuente por el paquete NFdump. Ponemos el software en un directorio
77   done podemos trabajar.
78
79        # cd /usr/local/src
80        # wget http://noc.ws.nsrc.org/downloads/nfdump.tar.gz
81
82   Si necesitas el fuente de NFdump en el futuro se lo encuentro en
83   http://sourceforge.net/projects/nfdump/
84
85        # tar xvzf nfdump.tar.gz
86        # cd nfdump-1.6.3p1
87        # ./configure --enable-nfprofile
88        # make
89        # make install
90
91   Ya esta instalado NFdump.
92
93   Ahora, bajamos el fuente de NfSen
94
95        # cd /usr/local/src
96        # wget http://noc.ws.nsrc.org/downloads/nfsen.tar.gz
97
98   Si necesitas el fuente de NfSen en el futuro se lo encuentro en
99   http://sourceforge.net/projects/nfsen/
100
101        # tar xvzf nfsen.tar.gz
102        # cd nfsen-1.3.5/etc
103        # cp nfsen-dist.conf nfsen.conf
104        # vi nfsen.conf
105
106   Ahora busca y cambia varias lineas dentro el archivo nfsen.conf.
107
108   Cambia el variable $BASEDIR:   
109
110        $BASEDIR="/var/nfsen";
111
112   Ajuste el directorio donde estan los herramientas de NFdump:
113
114        # nfdump tools path
115        $PREFIX = '/usr/local/bin';
116
117   Cambia los usuarios para que Apache (servidor http) tiene acceso a los archivos:
118
119        $WWWUSER = 'www-data';
120        $WWWGROUP = 'www-data'   
121
122   Ajusta el tamano del buffer para que veamos graficos mas rapido. Y, enlace el
123   proceso de nfsen al 127.0.0.1:
124
125        # Receive buffer size for nfcapd - see man page nfcapd(1)
126        $BUFFLEN = "2000 -b 127.0.0.1";
127
128   Encuentra la definicion de fuentes ($sources) y cambiarla a:
129
130        %sources=(
131        'rtrX'=>{'port'=>'900X','col'=>'#0000ff','type'=>'netflow'},
132        );                                 
133
134   Donde "X" es el numero de su grupo. Si hay entradas puede hacer comentario o
135   borrarlas. Por ejemplo:
136
137        %sources = (
138        'rtrX'          => {'port'=>'900X','col'=>'#0000ff','type'=>'netflow'},
139        #'upstream1'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
140        #'peer1'        => { 'port' => '9996', 'IP' => '172.16.17.18' },
141        #'peer2'        => { 'port' => '9996', 'IP' => '172.16.17.19' },
142        );
143
144   Ahora graba y salga del archivo.
145
146   Crear un usuario netflow:
147
148        # useradd -d /var/netflow -G www-data -m -s /bin/false netflow
149
150   Inicializa NfSen. Cada vez que cambias etc/nfsen.conf tiene que hacer este
151   paso de nuevo:
152 
153        # cd /usr/local/src/nfsen-1.3.5
154        # perl install.pl etc/nfsen.conf
155
156   Si le pregunta por el directorio de Perl solo apreta para aceptar la seleccion.
157   Si le pregunta si quieres configurar los fuentes nuevos responde "Y".
158
159   Arranca NfSen
160
161        # /var/nfsen/bin/nfsen start
162
163   Asegura que nfsen arranca cada vez que su maquina inicializa:
164
165   Edita el archivo /etc/rc.local
166
167        # vi /etc/rc.local
168
169   Agrega una linea _antes_ el fin del archivo para que se vea asi:
170
171        /var/nfsen/bin/nfsen start
172        exit 0
173
174   Salga y graba el archivo.
175
176   Antes de ver el interfaz web tiene que reinicializar el servidor web Apache:
177
178        # service apache2 restart
179
180   Ahora puedes ver los resultados de NfSen aqui:
181
182        http://pcN.ws.nsrc.org/nfsen/nfsen.php
183
184   Esto es la configuracion basica de NfSen. Con tiempo quedara con informacion
185   sobre los flujos del datos a traves su router de su grupo que pueden ser muy
186   utiles.
187
188
189
190Ejercicios Opcionales
191---------------------
192
1931. EXTENDER LA CONFIGURACION DE NETFLOW
194 
195   Sola muestra - no vamos a hacer esto en este curso.
196
197   Si hay mas routers que estan apuntando sus flujos a su maquina usando otros
198   puertos de UDP puede tener multiples flujos representados en los diagramas
199   de NfSen.
200
201        # cd /usr/local/src/nfsen-1.3.5
202        # vi etc/nfsen.conf
203
204   Por cada flujo llegando a un puerto diferente agrega una linea en la seccion de
205   $sources.
206
207   Solo muestra
208
209        %sources = (
210        'rtr' => {'port' => '9000', 'col' => 'e4e4e4' },
211        'rtr2' => { 'port' => '9001', 'col' => '#0000ff' },
212        'rtr3' => { 'port' => '9002','col' => '#00cc00' },
213        'rtr4' => { 'port' => '9003','col' => '#000000' },
214        'rtr5' => { 'port' => '9004','col' => '#ff0000' },
215        'rtr6' => { 'port' => '9005','col' => '#ffff00' },
216        );
217
218   Nota el cambio de colores por cada entrada ('#0000ff', '#00cc00', etc.).
219
220   Graba y salga del archivo nfsen.conf
221
222   Recuerda que cambiaste la configuracion de NfSen, asi tiene que hacer lo
223   siguiente:
224
225        # /var/nfsen/bin/nfsen stop
226        # perl install.pl etc/nfsen.conf
227        # /var/nfsen/bin/nfsen reconfig
228
229   Si le pregunta por el directorio de Perl solo apreta para aceptar la seleccion.
230   Si le pregunta si quieres configurar los fuentes nuevos responde "Y".
231
232   Ahora arrance nfsen:
233
234        # /var/nfsen/bin/nfsen start
235
236   Ahora revisa los graficos al:
237
238        http://pcN.ws.nsrc.org/nfsen/nfsen.php
239
240   Se lo demora algunos minutos para empezar salir los graficos nuevos.
241
242
243
2442. INSTALAR EL PLUGIN PORT TRACKER
245----------------------------------
246
247   [OJO! Con las maquinas virtuales es muy probable que no hay bastante espacio de
248   disco duro para que funciona la instalacion de Port Tracker. La instalacion requiere
249   que haya 8GB libre en el disco. Usa "df -h" para ver cuanto espacio hay.]
250
251   Para empezar.
252
253        # cd /usr/local/src/nfsen-1.3.5/contrib/PortTracker/
254
255   Edita el archivo do_compile y cambia la linea:
256
257        NFDUMP="/path/to/nfdump-1.6.1p0"
258
259    para que dice:
260
261        NFDUMP="/usr/local/src/nfdump-1.6.3p1"
262
263   y sigue con la instalacion.
264
265        # ./do_compile
266        # cp nftrack /usr/local/bin/.
267        # cd /usr/local/src/nfdump-1.6.3p1/extra
268        # cp PortTracker.pm /var/nfsen/plugins/
269        # cd /usr/local/src/nfsen-1.3.5/contrib/PortTracker/
270        # cp PortTracker.php /var/www/nfsen/plugins/.
271        # mkdir -p /data/netflow/porttracker
272
273   Especifica a Port Tracker donde va a grabar los datos. Edita el archivo
274   /var/nfsen/plugins/PortTracker.pm
275
276        # vi /var/nfsen/plugins/PortTracker.pm
277
278   Encuentra la linea que dice:
279
280        my $PORTSDBDIR = "/data/port-db";
281
282   y cambia la linea a:
283
284        my $PORTSDBDIR = "/data/netflow/porttracker";
285
286   Graba y salga del archivo.
287
288   Ahora edita el archivo /usr/local/src/nfsen-1.3.5/etc/nfsen.conf:
289
290        # /usr/local/src/nfsen-1.3.5
291        # vi etc/nfsen.conf
292
293   Y busca la seccion:
294
295        @plugins = (
296            # profile    # module
297            # [ '*',     'demoplugin' ],
298        );
299
300   Y la cambia a:
301
302        @plugins = (
303            # profile    # module
304            # [ '*',     'demoplugin' ],
305            [ 'live',   'PortTracker'],
306        );
307
308   Ahora vamos a reconfigurar nfsen para usar el plugin:
309
310        # /var/nfsen/bin/nfsen stop
311        # perl install.pl etc/nfsen.conf
312
313   Apreta <ENTER> cuando le pregunta por la ubicacion de Perl.
314
315   Arranca nfsen de nuevo:
316
317        # /var/nfsen/bin/nfsen start
318
319   Cambia los permisos y duenos de archivos por Port Tracker:
320
321        # chown netflow:www-data /data/netflow/porttracker/
322
323   Inicializa el base de datos de Port Tracker. Esto pude demorar porque
324   Port Tracker va a crear 8GB de archivos.
325
326        # sudo -u www-data nftrack -I -d /data/netflow/porttracker
327        # chmod 775 /data/netflow/porttracker/
328
329    (This can take a LONG time! - 8 GB worth of files will be created)
330
331   Ponemos los permisos en los archivos para que el servidor web puede leer
332   los datos:
333
334        # chown -R netflow:www-data /data/netflow/porttracker
335        # chmod -R 775 /data/netflow/porttracker
336 
337   Recargar nfsen:
338
339        # /var/nfsen/bin/nfsen reload
340
341   Verifica que funciono:
342
343        # grep -i 'porttracker.*success' /var/log/syslog
344        Nov 27 02:46:13 noc nfsen[17312]: Loading plugin 'PortTracker': Success
345        Nov 27 02:46:13 noc nfsen[17312]: Initializing plugin 'PortTracker': Success
346
347   Espera algunos minutes y puede ver los resultados en el interfaz Web:
348
349        http://pcN.ws.nsrc.org/nfsen/nfsen.php
350
351   Selecciona el menu "Plugins" para ver como funciona Port Tracker.
352
353
354CONFIGURAR SU ROUTER PARA EXPORTAR LOS FLUJOS
355----------------------------------------------
356
357Esto es un ejemplo de configuracion por el router del grupo 1, or rtr1.ws.nsrc.org.
358En el ejemplo el router manda los flujos (flows) al PC 10.10.1.1, or pc1.ws.nsrc.org.
359Puede adapter este ejemplo a su router y situacion.
360
361   Haz un log in en el router 1 de grupo 1, 10.10.1.254. Vamos a suponer que esta
362   configurado ssh por este router:
363
364        # ssh cisco@10.10.1.254
365        rtr1.ws.nsrc.org> enable
366
367   Tipea la contrasena de "enable" por el router, y luego:
368
369        rtr1.ws.nsrc.org# configure terminal
370        rtr1.ws.nsrc.org(config)# interface FastEthernet 0/0
371        rtr1.ws.nsrc.org(config)# ip route-cache flow
372        rtr1.ws.nsrc.org(config)# exit
373
374   Repite por FastEthernet 0/1 (y todo los interfaces que existen)
375
376        rtr1.ws.nsrc.org# configure terminal
377        rtr1.ws.nsrc.org(config)# interface FastEthernet 0/1
378        rtr1.ws.nsrc.org(config)# ip route-cache flow
379        rtr1.ws.nsrc.org(config)# exit   
380
381   Especifica a donde van los flujos y a que puerto:
382
383        rtr1.ws.nsrc.org#conf t
384        rtr1.ws.nsrc.org(config)# ip flow-export destination 10.10.1.1 9001
385        rtr1.ws.nsrc.org(config)# ip flow-export version 5
386        rtr1.ws.nsrc.org(config)# ip flow-cache timeout active 5
387
388   Para que los valores de ifIndex se mantiene despues que una reinicializacion
389   del router:
390
391        rtr1.ws.nsrc.org(config)# snmp-server ifindex persist
392
393   Ahora configuramos los top-talkers:
394
395        rtr1.ws.nsrc.org(config)#ip flow-top-talkers
396        rtr1.ws.nsrc.org(config-flow-top-talkers)#top 20
397        rtr1.ws.nsrc.org(config-flow-top-talkers)#sort-by bytes
398        rtr1.ws.nsrc.org(config-flow-top-talkers)#end
399 
400   Ahora verificamos que hemos hecho:
401
402        rtr1.ws.nsrc.org# show ip flow export
403        rtr1.ws.nsrc.org# show ip cache flow
404
405   Vea los clientes usando mas datos/paquetes en su router:
406
407        rtr1.ws.nsrc.org# show ip flow top-talkers
408
409   Si todo se vea bien escribir la configuracion en memoria a memoria
410   permanente:
411
412        rtr1.ws.nsrc.org#wr mem
413   
414   Puede salir del router:
415
416        rtr1.ws.nsrc.org#exit
417   
418   En la maquina donde los flows estan llegando puede verificar que esta
419   funcionando (como root):
420
421        # tcpdump -v udp port 9001
422
423   Despues que algunos segundos deberia ver algo como:
424
425        tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
426        06:38:25.726825 IP (tos 0x0, ttl 63, id 242, offset 0, flags [none], proto UDP (17), length 244)
427           10.10.0.1.60715 > pc1.ws.nsrc.org.9001: UDP, length 216
428        06:38:52.709868 IP (tos 0x0, ttl 63, id 242, offset 0, flags [none], proto UDP (17), length 532)
429          10.10.0.1.60715 > pc1.ws.nsrc.org.9001: UDP, length 504