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)
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