Agenda: ejercicios-rancid.txt

File ejercicios-rancid.txt, 16.3 KB (added by admin, 6 years ago)
Line 
1Gestión de Red
2
3Ejercicio práctico con RANCID
4=============================
5
6Notas
7-----
8
9* Los comandos precedidos por el signo de pesos "$", deben ser
10  ejecutados como un usuario general - y no como superusuario (root).
11* Los comandos precedidos por el signo de número "#", deben ser
12  ejecutados por el superusuario (root).
13* Los comandos precedidos por lineas de comando más específicas
14  (e.g. "rtrX>" or "mysql>") deben ser ejecutados en equipos remotos,
15  dentro de otras aplicaciones.
16* Si la línea de comandos termina con una barra invertida "\", quiere
17  decir que el comando continua en la próxima línea y todas líneas
18  deben ser tratadas como un comando de sola línea.
19* Referencias a "N", representan su número de grupo.
20
21
22Ejercicios
23---------
24
251. Ingrese en su PC con ssh
26
272. Conviértase en root, e instale el sistema de control de versiones Subversion:
28
29        Además de Subversion, instalaremos telnet y el cliente de correo Mutt.
30        Puede que ambos paquetes ya hayan sido instalados en un ejercicio previo.
31        En tal caso, no se preocupe. El comando apt-get simplemente no los
32        instalará.
33
34        $ sudo -s
35        # apt-get install subversion telnet mutt
36
373. Instalar Rancid
38
39        # apt-get install rancid
40
41        - Le mostrará una advertencia. Seleccione <Ok> y oprima ENTER para continuar.
42        - Le mostrará otra advertencia sobre la necesidad de hacer una copia de sus datos     
43          en Rancid. Como no tenemos datos, simplemente seleccione <YES> y oprima
44          ENTER para continuar.
45         
464. Agregue un "alias" para el usuario rancid en el archivo de /etc/aliases:
47
48        # editor /etc/aliases
49       
50        rancid-all:     sysadm
51        rancid-admin-all:   sysadm
52
53        Grabe y salga. Luego ejeucute:
54
55        # newaliases
56
575. Edite la configuración de Rancid
58
59        # editor /etc/rancid/rancid.conf
60
61Busque esta línea:
62
63        #LIST_OF_GROUPS="sl joebobisp"
64
65Y debajo de ésta, agregue:
66
67        LIST_OF_GROUPS="all"
68
69Sin el carácter "#" al comienzo de la línea, y alineada hacia la izquierda.
70
71Vamos a usar Subversion con nuestro sistema de control de versiones, y no CVS,
72así que busque la línea con el parámetro RCSSYS:
73
74                RCSSYS=cvs; export RCSSYS
75
76Y cámbiela a:
77
78        RCSSYS=svn; export RCSSYS
79
80también busque la línea con CVSROOT:
81
82                CVSROOT=$BASEDIR/CVS; export CVSROOT
83               
84y cámbiela a:
85
86        CVSROOT=$BASEDIR/svn; export CVSROOT
87
88Asegúrese de que "svn" esté en minúscula. Grabe y salga del editor.
89
906. Cambie al usuario rancid
91
92
93# CRITICO! CRITICO! CRITICO!
94# CRITICO! CRITICO! CRITICO!
95# CRITICO! CRITICO! CRITICO!
96
97Ponga mucha atención a cuál ID de usuario (userid) está usando durante el resto
98de los ejercicios. Si no está seguro, simplemente ejecute "id" en la línea de
99comandos en cualquier momento.
100
101
102    Desde una línea de comandos de root ("#"), cambie su identidad para
103    convertirse en el usuario 'rancid':
104
105        # su -s /bin/bash rancid
106       
107    Confirme que es el usuario rancid ahora:
108
109        $ id
110
111    Debería ver algo similar a esto (puede que los números no concuerden):
112
113        uid=104(rancid) gid=109(rancid) groups=109(rancid)
114
115
116    ***** SI NO ES RANCID AHORA, NO SIGA ******
117
118    **************** OTRA VEZ! ****************
119
120    ***** SI NO ES RANCID AHORA, NO SIGA ******
121
1227. Configure el script para iniciar sesiones (logins) automáticas:
123
124        $ editor /var/lib/rancid/.cloginrc
125       
126    Agregue las siguientes dos líneas:
127
128        add user *.ws.nsrc.org cisco
129        add password *.ws.nsrc.org nsrc+ws nsrc+ws
130 
131     La primera línea indica que debe usarse el nombre de usuario "cisco".
132     En la segunda línea, el primer y segundo "cisco" son los passwords
133     de acceso y modo privilegiado (enable) para para el enrutador. El
134     asterisco "*" en los nombres es un comodín, lo cual indica que Rancid
135     deberá usar estas credenciales para todos los dispositivos cuyos nombres
136     terminen en .ws.nsrc.org
137
138    Grabe y salga.   
139
140    Ahora proteja este archivo para que no pueda ser leído por otros usuarios:
141
142        $ chmod 600 /var/lib/rancid/.cloginrc
143   
144
1458. Compruebe que puede iniciar sesiones hacia el enrutador de su grupo
146   
147    Ingrese a su enrutador con clogin. La primera vez probablemente recibirá
148    una advertencia de SSH sobre la clave pública. Confirme con "y". Pero
149    no debería tener que escribir la contraseña del enrutador. Debería ser
150    automático.
151
152       $ /var/lib/rancid/bin/clogin rtrX.ws.nsrc.org
153
154       (reemplace X con su número de grupo. Por ejemplo, si usted es grupo 1, el nombre
155        sería rtr1.ws.nsrc.org)
156       
157    Debería ver algo como esto:   
158   
159       spawn ssh -c 3des -x -l cisco rtr2.ws.nsrc.org
160       The authenticity of host 'rtr2.ws.nsrc.org (10.10.2.254)' can't be established.
161       RSA key fingerprint is 73:f3:f0:e8:78:ab:49:1c:d9:5d:49:01:a4:e1:2a:83.
162       Are you sure you want to continue connecting (yes/no)?
163       Host rtr1.ws.nsrc.org added to the list of known hosts.
164       yes
165       Warning: Permanently added 'rtr1.ws.nsrc.org' (RSA) to the list of known hosts.
166       Password:
167
168       rtrX>enable
169       Password:
170       rtrX#
171       
172    Termine la conexión al enrutador:
173   
174       rtrX#exit
175       
176       
1779. Inicialize el repositorio SVN para Rancid:
178
179        Asegúrese de ser rancid antes de continuar:
180       
181                $ id
182               
183        Si no ve algo como
184       
185             "uid=108(rancid) gid=113(rancid) groups=113(rancid)"
186
187        NO CONTINUE hasta haberse convertido en el usuario rancid. Vea el paso 6
188        para más detalles.
189
190        Ahora inicialize el repositorio SVN:
191
192        $ /usr/lib/rancid/bin/rancid-cvs
193
194        Deberias ver algo como:
195
196        Committed revision 1.
197        Checked out revision 1.
198        At revision 1.
199        A         configs
200        Adding         configs
201
202        Committed revision 2.
203        A         router.db
204        Adding         router.db
205        Transmitting file data .
206        Committed revision 3.
207
208******** Sólo haga lo siguiente si tiene problemas *******
209
210        Si esto no funciona, entonces puede que le falte el paquete subversion, o
211        que algo no se configuró apropiadamente durante los pasos anteriores.
212        Debe verificar que Subversion está instalado, así que antes de ejecutar
213        rancid-cvs, haga lo siguiente:
214
215                $ exit
216                # apt-get install subversion
217                # su -s /bin/bash rancid
218                $ cd /var/lib/rancid
219                $ rm -rf all
220                $ rm -rf svn
221
222        Ahora intente de nuevo:
223
224                $ /usr/lib/rancid/bin/rancid-cvs
225
226**********************************************************
227
22810. Cree el archivo que contendrá la lista de dispositivos
229
230        $ editor /var/lib/rancid/all/router.db
231
232    Agregue esta línea:
233
234        rtrX.ws.nsrc.org:cisco:up
235       
236    Grabe y salga
237
23811. Vamos a probar rancid!
239
240        $ /usr/lib/rancid/bin/rancid-run
241
242    Esto tardará unos momentos.
243
244    Pruébelo de nuevo porque la primera vez puede que no registre
245    correctamente:   
246
247        $ /usr/lib/rancid/bin/rancid-run
248
24912. Revise los registros de eventos (logs) de Rancid:
250
251        $ cd /var/lib/rancid/logs
252        $ ls -l
253
254    ... Inspeccione el contenido de los archivos:
255
256        $ less all.*
257       
258    NOTA! Al usar "less" - para ver el siguiente archivo presione ":n".
259    Para ver el archivo anterior, presione ":p". Salga con "q".
260
26113. Mire las configuraciones
262
263        $ cd /var/lib/rancid/all/configs
264        $ less rtrX.ws.nsrc.org
265       
266    Si todo salió bien, debería ver la configuración del enrutador.
267    NOTA! Re-emplaza "X" con el numero de su grupo.
268
26914. Vamos a cambiar la descripción de una interfaz en el enrutador
270
271        $ /usr/lib/rancid/bin/clogin rtrX.ws.nsrc.org
272       
273    En la línea de comandos "rtrX#" escriba:
274
275        rtrX# conf term
276
277    Verá:
278
279        Enter configuration commands, one per line.  End with CNTL/Z.
280        rtrX(config)#
281
282    Ingrese:
283
284        rtrX(config)# interface LoopbackXX      (sustituya XX con el # de su PC)
285       
286    Verá lo siguiente:
287
288        rtrX(config-if)#
289
290    Ingrese:
291
292        rtr2(config-if)# description <escriba su nombre aquí>
293        rtr2(config-if)# end
294        rtrX# write memory
295        rtrX# exit
296       
29715. Ejecutemos Rancid de nuevo:
298
299        $ /usr/lib/rancid/bin/rancid-run
300
301    Mire los registros de eventos
302
303        $ ls /var/lib/rancid/logs/
304
305    Debería ver un nuevo archivo de eventos indicando la última ejecución de Rancid
306    con la fecha y hora como parte del nombre.
307
30816. Veamos las diferencias
309
310        $ cd /var/lib/rancid/all/configs
311        $ ls -l
312
313    Debería ver el archivo del enrutador de su grupo:
314
315        $ svn log rtrX.ws.nsrc.org
316       
317    (Donde "X" es el numero de su grupo)
318
319    Fíjese en las revisiones. Veamos las diferencias entre las dos versiones:
320
321        $ svn diff -r 5:7 rtrX.ws.nsrc.org | less
322
323    ... ¿Puede ver los cambios?
324   
325    Note que svn es el comando del sistema de control de versiones para
326    manejar repositorios de información. Si escribe:
327   
328        $ ls -lah
329       
330    Verá un directorio escondido llamado ".svn" - este contiene toda la información
331    sobre los cambios entre las configuraciones de los enrutadores recogidos
332    cada vez que se ejecuta rancid.
333   
334    Nunca, nunca toque o edite el directorio .svn a mano!
335   
336   
33717. Revise su correo
338
339        Ahora saldremos del shell de rancid para volver a el shell de root, y
340        de ahí saldremos a el shell de "sysadmin". Vamos a usar el programa
341        "mutt" para ver si rancid nos ha estado enviando correos:
342
343        $ exit                                  (salir del shell de rancid)
344        # exit                                  (salir del shell de root)
345        $ id
346        ... comprobar que somos sysadmin de nuevo;
347       
348        ... si no, salga e ingrese de nuevo a su PC como sysadmin.
349       
350        $ mutt
351
352    (Cuando se le pregunte sobre crear el directorio "Mail", diga Yes)
353
354    Si todo sale como está planificado, debería poder leer los e-mails enviados
355    por Rancid. Puede seleccionar el e-mail enviado por "rancid@pcX.ws.nsrc.org"
356    y ver qué tiene dentro.
357
358    Note que será la descripción de su enrutador y cualquier diferencia
359    que se haya registrado desde la última vez que se ejecutó rancid-run.   
360   
361    Salga de mutt.
362
363    (use 'q' para salir al índice, y 'q' de nuevo para salir de mutt)
364
36518. Hagamos que Rancid se ejecute cada 30 minutos por medio de Cron
366
367        cron es un sistema disponible en Linux para automatizar la ejecución de
368        tareas. Primero debemos convertirnos de nuevo en root:
369       
370        $ sudo -s
371       
372        Ahora crearemos una nueva tarea para el usuario rancid:
373   
374        # crontab -e -u rancid
375
376        Le preguntará por su opción de editor. Indique el editor que haya estado
377        usando hasta ahora en clase
378
379    Agregue esta línea al final del archivo (COPIE Y PEGUE):
380
381        */30  *  *  *  *  /usr/lib/rancid/bin/rancid-run
382
383        
 Y salga.
384           
385    Ya está. El comando "rancid-run" se ejecutará automáticamente cada 30 minutos
386    a partir de ahora, todos los días.
387 
38819. Ahora agregue todos los enrutadores
389
390    Conviértase en el usuario rancid y edite el archivo siguiente:
391
392        # su -s /bin/bash rancid
393        $ editor /var/lib/rancid/all/router.db
394
395    Agregue los otros enrutadores de la clase en el archivo.
396
397    Si hay más o menos enrutadores en clase, incluya el número correcto
398    (esto es sólo un ejemplo):
399
400        COPIE Y PEGUE:
401
402        rtr1.ws.nsrc.org:cisco:up
403        rtr2.ws.nsrc.org:cisco:up
404        rtr3.ws.nsrc.org:cisco:up
405        rtr4.ws.nsrc.org:cisco:up
406        rtr5.ws.nsrc.org:cisco:up
407        rtr6.ws.nsrc.org:cisco:up
408        rtr7.ws.nsrc.org:cisco:up
409        rtr8.ws.nsrc.org:cisco:up
410        rtr9.ws.nsrc.org:cisco:up
411
412
413        Note que "cisco" significa que estos son equipos Cisco. Esta información
414        ayuda a Rancid a identificar cómo debe comunicarse con el equipo. Rancid
415        también soporta muchos otros fabricantes, tales como Juniper, HP, etc.
416
417    Asegúrese de que las entradas están alineadas hacia la izquierda
418    del archivo.   
419
42020. Ejecute rancid otra vez:
421
422        $ /usr/lib/rancid/bin/rancid-run
423
424        Tomará un minuto o más, espere.
425
42621. Revise los registros:
427
428        $ cd /var/lib/rancid/logs
429        $ ls -l
430
431    ... Busque el último archivo y mírelo
432
433        $ less all.YYYYMMDD.HHMMSS
434       
435        Este debería ser el último archivo en la lista producida por "ls -l"
436
437        Debería haber un número de entradas indicando que los enrutadores se
438        han agregado a Subversion, y otras informaciones.   
439
44022. Revise las configuraciones
441
442        $ cd /var/lib/rancid/all/configs
443        $ more *.ws.nsrc.org
444
445        Use la barra espaciadora para continuar a los demás archivos, o también:
446       
447                $ less *.ws.nsrc.org
448               
449        Y oprima la barra espaciadora para desplazarse hacia abajo en la página
450        y luego presione ":n" para ver el próximo archivo. Recuerde que en ambos
451        casos puede salir con "q".
452
453        Si todo salió bien, debería ver las configuraciones de todos los enrutadores.
454
45523. Ejecute Rancid de nuevo para ver si alguien ha cambiado la configuración
456    de su enrutador.
457
458        $ /usr/lib/rancid/bin/rancid-run
459     
460
46123. Juegue con clogin:
462
463        $  /usr/lib/rancid/bin/clogin -c "show clock" rtrX.ws.nsrc.org
464       
465        Qué puede observar?
466
467        Y lo que es mas interesante es que podemos sacar provecho de esta
468        herramienta y escribir un script sencillo para hacer cambios en
469        múltiples dispositivos rápidamente:
470
471        $ editor /tmp/newuser
472
473    ... en este archivo escriba (o COPIE Y PEGUE):
474
475configure terminal
476username pc<número_de_PC> secret 0 NewPassword
477exit
478write
479
480   Guarde, salga y ejecute lo siguiente:
481
482                $ for r in 1 2 3 4
483               
484                Su línea de comandos cambiará a ">". Continue escribiendo:
485               
486                > do
487                > /var/lib/rancid/bin/clogin -x /tmp/newuser rtr$r.ws.nsrc.org
488                > done
489       
490        Ahora su línea de comandos volverá a ser "$" y el comando clogin de Rancid
491        se ejecutará y enviará los comandos que acaba de escribir a los enrutadores
492        rtr1, rtr2, rtr3 y rtr4. Esto es programación en shell sencilla en Linux,
493        pero es muy poderosa.
494
495    Q. Cómo verificaría que esto se ha ejecutado correctamente ?
496
497        Pista: "show run | inc <patrón>"
498   
499    A. Conéctese a rtr1, rtr2, rtr3 y rtr4. Escriba "enable" y luego 
500       "show run | inc username" para verificar que el nuevo usuario NewUser existe.           
501       Salga con "exit". Naturalmente esto lo podríamos automatizar de la misma
502       manera.
503   
50424. Agregar el repositorio Subversion de Rancid a WebSVN
505
506    Si todavía está como usuario rancid, salga para volver a ser root. Recuerde
507    que puede ejecutar "id" para comprobar qué usuario es efectivamente.
508
509        $ exit
510        #
511
512    Instale WebSVN:
513
514        # apt-get install websvn
515       
516                * Responda <Yes> para configurar WebSVN ahora y oprima ENTER
517                * Responda <Ok> a la siguiente pregunta sobre soporte para servidores
518                 y presione ENTER
519                * Cuando se le pregunte sobre "svn parent repositories" cambie el camino
520                 a:
521               
522                  /var/lib/rancid/svn
523                 
524                  Diga <Ok> y oprima ENTER. Haga los mismo para "svn repositories" en
525                  la siguiente pantalla. O sea, use el camino:
526                 
527                  /var/lib/rancid/svn
528                 
529                  y no lo que se muestra por defecto. <Ok> y luego ENTER.
530                * Diga <Ok> a la pregunta de permisos y luego ENTER.
531
53225. Repare los permisos. El servidor web debe poder leer la carpeta svn (Subversion)
533
534        # chgrp -R www-data /var/lib/rancid/svn
535        # chmod g+w -R /var/lib/rancid/svn
536
53726. Ahora puede ver los archivos de Rancid desde su navegador!
538
539        http://pcX.ws.nsrc.org/websvn
540
541    Vaya al directorio 'all/configs'.
542    Puede ver todas las configuraciones de sus enrutadores ahí.
543
544
54527. Compruebe las revisiones
546   
547    WebSVN le permite ver con facilidad las diferencias entre versiones.
548
549        * Navegue a http://pcXXX.ws.nsrc.org/websvn de nuevo y vaya a all/configs.
550        * Vaya al enlace de su enrutador (rtrX.ws.nsrc.org) name. Verá otra pantalla.
551        * Oprima "Compare with Previous" al comienzo de la pantalla.
552        * Ahora podrá ver los últimos cambios.
553       
554    Oprima "REPOS 1" para volver a la página principal:
555   
556        * Oprima "all/" bajo "Path"
557        * Oprima "configs/"
558        * Seleccione dos enrutadores contiguos. Ej. rtr1 y rtr2, rtr3 y rtr4.
559        * Oprima Compare Paths
560       
561    Esto le mostrará las diferencias entre dos configuraciones de enrutadores
562    distintos.
563
564    WebSVN es una manera conveniente de ver las diferencias rápidamente en una
565    interfaz gráfica entre múltiples archivos de configuración. Note que esto
566    es un potencial problema de seguridad, así que debería restringir el acceso
567    al URL http://<host>/websvn usando contraseñas (y SSL), y listas de control de
568    acceso.
569
570
571+----
572Rev. 17 Oct 2013