Laboratorio de la clase abierta de la academia Cisco sobre troubleshooting

Fecha: 16 de febrero del 2016

 

Escenario

 

 

En la clase abierta se plantearon las necesidades de estudiar y cómo estudiar para llegar a ser buenos profesionales

del networking y del ámbito IT en general, con perspectivas de ‘meter mano’ en redes complejas a futuro.

 

También se presentó un escenario de troubleshooting algo particular basado en un caso real, donde se pueden aplicar

todos los recursos teóricos para resolver problemas y así y todo seguía sin solución, pero ahora, en retrospectiva, se

podría resolver en los primeros pasos, en la recopilación de datos para establecer un diagnóstico.

 

Luego de resueltas las cosas parecen fáciles.

 

Planteo del escenario

 

Todas las conexiones internas del firewall Cisco ASA y hacia el exterior están siendo bloqueadas, los administradores

afirman que no se realizaron modificaciones en la configuración del equipo, sólo un proveedor está acomodando unas

conexiones de fibra en el datacenter, pero sin ningún impacto en la conexión entre los usuarios e internet.

 

 

Se transmitió a los alumnos la idea de realizar preguntas necesarias básicas para diagnosticar el problema:

 

 

 

Prueba inicial de conectividad en el firewall (hay internet)

 

Firewall# ping 8.8.8.8

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/6/10 ms

Firewall#

 

Prueba de permisos en el firewall

 

Se realizó mediante una herramienta propia del ASA que permite analizar el comportamiento del tráfico

al atravesar el dispositivo y sus consecuencias en base a las configuraciones del mismo.

 

Firewall# packet-tracer input inside tcp 192.168.1.200 1050 200.45.123.100 80 detailed

 

Phase: 1

Type: ROUTE-LOOKUP

Subtype: input

Result: ALLOW

Config:

Additional Information:

in   0.0.0.0         0.0.0.0         outside (OK, saldrá por internet)

 

Phase: 2

Type: ACCESS-LIST

Subtype:

Result: DROP (verificar, se están filtrando todos los paquetes)

Config:

Implicit Rule

Additional Information:

 Forward Flow based lookup yields rule:

 in  id=0xae7c5680, priority=500, domain=permit, deny=true

        hits=239738, user_data=0x8, cs_id=0x0, reverse, flags=0x0, protocol=0

        src ip=0.0.0.0, mask=0.0.0.0, port=0

        dst ip=0.0.0.0, mask=0.0.0.0, port=0, dscp=0x0

 

Result:

input-interface: inside

input-status: up

input-line-status: up

output-interface: outside

output-status: up

output-line-status: up

Action: drop

Drop-reason: (acl-drop) Flow is denied by configured rule

 

Firewall#

 

Verificación de permisos referentes a la navegación

 

Firewall# sh access-list ACL-FROM-INSIDE | incl 192.168.1.200 (luego de limpiar contadores de access-list)

  access-list ACL-FROM-INSIDE line 128 extended permit tcp host 192.168.1.200 any eq www (hitcnt=0) 0x4154c90a

  access-list ACL-FROM-INSIDE line 129 extended permit tcp host 192.168.1.200 any eq https (hitcnt=0) 0x4d3f625e    

  access-list ACL-FROM-INSIDE line 153 extended permit tcp host 192.168.1.200 any eq smtp (hitcnt=0) 0x2f1a0768

Firewall#

 

Se elimina ACL para permitir todo

 

Esto es permitido ya que la interface inside tiene un security-level 100 (red segura) y el tráfico fluye sin restricciones

hacia un security-level menor, en el caso la interface outside es 0 (red totalmente insegura).

 

Firewall(config)# no access-group ACL-FROM-INSIDE in interface inside

 

Se vuelve a verificar

 

Firewall#packet-tracer input inside tcp 192.168.1.200 1050 200.45.123.100 80

 

Phase: 1

Type: ROUTE-LOOKUP

Subtype: input

Result: ALLOW

Config:

Additional Information:

in   0.0.0.0         0.0.0.0         outside

 

Phase: 2

Type: ACCESS-LIST

Subtype:

Result: DROP  (se repite el problema)

Config:

Implicit Rule

Additional Information:

 Forward Flow based lookup yields rule:

 in  id=0xae7c5680, priority=500, domain=permit, deny=true

        hits=348151, user_data=0x8, cs_id=0x0, reverse, flags=0x0, protocol=0

        src ip=0.0.0.0, mask=0.0.0.0, port=0

        dst ip=0.0.0.0, mask=0.0.0.0, port=0, dscp=0x0

 

Result:

input-interface: inside

input-status: up

input-line-status: up

output-interface: outside

output-status: up

output-line-status: up

Action: drop

Drop-reason: (acl-drop) Flow is denied by configured rule

 

Se crea una nueva ACL de pruebas

 

Firewall(config)# access-list TEST extended permit ip any any

Firewall(config)# access-group TEST in interface inside

Firewall(config)#

 

Se verifica nueva ACL

 

Firewall#sh runn | incl access-group

access-group TEST in interface inside (lista aplicada)

access-group ACL-FROM-DMZ in interface dmz

access-group ACL-FROM-OUTSIDE in interface outside

Firewall#

 

Se verifican permisos

 

Firewall#packet-tracer input inside tcp 192.168.1.200 1050 200.45.123.100 80 detailed

 

Phase: 1

Type: ROUTE-LOOKUP

Subtype: input

Result: ALLOW

Config:

Additional Information:

in   0.0.0.0         0.0.0.0         outside

 

Phase: 2

Type: ACCESS-LIST

Subtype:

Result: DROP  (se repite la falla)

Config:

Implicit Rule

Additional Information:

 

Result:

input-interface: inside

input-status: up

input-line-status: up

output-interface: outside

output-status: up

output-line-status: up

Action: drop

Drop-reason: (acl-drop) Flow is denied by configured rule

 

Firewall#

 

Se verifica con tráfico real

 

El tráfico generado por equipos es bloqueado por el firewall.

                                                     

Se verifica ACL

 

Firewall# sh access-list TEST

access-list TEST; 1 elements; name hash: 0xd37fdb2b

access-list TEST line 1 extended permit ip any any (hitcnt=0) 0x984ebd70 (no contabiliza tráfico)

Firewall#

 

Se revierten los cambios

 

Se retira la access-list de test y se deja aplicada la lista de producción ya que esta no es el problema.

 

Firewall(config)# access-group ACL-FROM-INSIDE in interface inside

Firewall(config)# clear configure access-list TEST

 

Se verifican logs

 

En este punto se transmitió el problema de que los logs (mensajes informativos o de alerta), no llegarían al syslog server

ya que estaba desconectado y de reiniciar el firewall ‘por las dudas’ como muchos hacen de rutina, todos los mensajes

se pierden ya que están almacenados en la memoria RAM del equipo.

 

Firewall#show logg

---resumido---

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

Oct 06 2015 14:40:50: %ASA-3-201008: Disallowing new connections.

---resumido---

 

Busqueda de la causa del log en el manual del firewall y la web de Cisco

 

En esa ocación, pude recurrir al manual del ASA (la versión en papel para mi vale oro) y buscar dentro de la base de syslogs.

 

%ASA-3-201008: Disallowing new connections

 

The %ASA-3-201008: Disallowing new connections. error message is seen when ASA is unable to contact syslog server and

no new connections are allowed.

 

Solution

 

This message appears when you have enabled TCP system log messaging and the syslog server cannot be reached, or when

you use Cisco ASA Syslog Server (PFSS) and the disk on the Windows NT system is full.

 

Complete these steps in order to resolve this error message:

 

·         Disable TCP system log messaging if it is enabled. (1)

·         If you use PFSS, free up space on the Windows NT system where PFSS resides.

·         Also, make sure that the syslog server is up and you can ping the host from the Cisco ASA console.

·         Restart TCP system message logging in order to allow traffic. (2)

·         If the syslog server goes down and the TCP logging is configured either use the logging permit-hostdown (3) command or switch to UDP logging. (4)

 

También: http://www.cisco.com/c/en/us/support/docs/security/pix-500-series-security-appliances/63884-pix70-syslog.html

 

Se solicita la inmediata reconexión del syslog server al contratista

 

 

El firewall sigue bloqueando todo el tráfico que pasa por el, por lo que se debe ejecutar lo siguiente:

 

Firewall (config)#no logging host inside 192.168.1.10 6/1468 (reinicia el servicio (punto (1) de los pasos sugeridos por Cisco)

 

ó

 

Firewall (config)#no logging host inside 192.168.1.10 6/1468 (reinicia el servicio (punto (2) de los pasos sugeridos por Cisco)

Firewall (config)#logging host inside 192.168.1.10 6/1468

 

ó mejor todavía:

 

Firewall (config)# logging permit-hostdown (punto (3) de los pasos sugeridos por Cisco)

 

ó  transmitir en UDP:

 

Firewall (config)#logging host inside 192.168.1.10 17/514 (punto (4) de los pasos sugeridos por Cisco)

 

Tabla de númberos de protocolos (ver que se configuró IP + protocolo/puerto)

 

 

Luego de las modificaciones, el tráfico vuelve a la normalidad y los usuarios pueden utilizar internet, también se explicaron

los rudimentos básicos del flujo de tráfico en un firewall, se explicó también el concepto de tráfico de retorno y que hay

otras soluciones para el tráfico de management (syslog, SNMP, Telnet, SHH, etc) dentro de una VLAN a tal fin.

 

 

ASA5505# sh local-host 192.168.1.100

Detected interface 'outside' as the Internet interface. Host limit applies to all other interfaces.

Current host count: 1, towards licensed host limit of: 500

---resumido---

  Conn:

   ---resumido---

    TCP inside 192.168.1.100:49321 outside 181.119.20.178:80, idle 0:00:00, bytes 353045, flags UIO

Interface _internal_loopback: 0 active, 0 maximum active, 0 denied

ASA5505#

 

 

 

(2016) Sensei, aliens may cause downtime ?

Rosario, Argentina