1 | Gestion y Monitoreo de Redes |
---|
2 | Instalacion y Configuracion de NetFlow |
---|
3 | |
---|
4 | Notas: |
---|
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 | |
---|
14 | Ejercicios |
---|
15 | ----------- |
---|
16 | |
---|
17 | Flujo 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 | |
---|
25 | Ejercicios Parte I |
---|
26 | ------------------ |
---|
27 | |
---|
28 | En este curso tenemos todo los flujos de cada router de cada grupo redireccionado |
---|
29 | desde la maquina noc.ws.nsrc.org a cada pc en cada grupo - asi, no vamos a configurar |
---|
30 | su router porque ya esta configurado. Ver el ejemplo al final de este documento para |
---|
31 | saber como configurar un router cisco exportor flujos. |
---|
32 | |
---|
33 | |
---|
34 | 0. HAZ UNA CONECCION SSH A SU PC |
---|
35 | |
---|
36 | 1. 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 | |
---|
190 | Ejercicios Opcionales |
---|
191 | --------------------- |
---|
192 | |
---|
193 | 1. 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 | |
---|
244 | 2. 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 | |
---|
354 | CONFIGURAR SU ROUTER PARA EXPORTAR LOS FLUJOS |
---|
355 | ---------------------------------------------- |
---|
356 | |
---|
357 | Esto es un ejemplo de configuracion por el router del grupo 1, or rtr1.ws.nsrc.org. |
---|
358 | En el ejemplo el router manda los flujos (flows) al PC 10.10.1.1, or pc1.ws.nsrc.org. |
---|
359 | Puede 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 |
---|