Fortinet - Análisis de problemas de red con un FortiGate
Fortinet
Las redes son cada vez más complejas y confusas. Por eso se necesitan herramientas para analizar e identificar los problemas.
En este sentido, el cortafuegos FortiGate ofrece una amplia gama de herramientas. Hoy me gustaría presentar algunas y explicar cómo utilizarlas.
La herramienta más sencilla es, por supuesto, el clásico ping, que se ejecuta en un FortiGate a través de la CLI con el comando execute ping. Sin embargo, todavía hay posibilidades de utilizar el ping de una manera más específica. Para ello, utilice el comando execute ping-options <'parameter'>. Aquí se pueden utilizar los siguientes parámetros:
-
adaptive-ping
FortiGate envía el siguiente paquete tan pronto como se haya recibido la última respuesta . - data-size <'bytes'> Especifique el tamaño del datagrama en bytes .
- df-bit <'yes | no'> Establezca df-bit en yes para evitar la fragmentación del paquete ICMP. Establezca df-bit en no para permitir la fragmentación del paquete ICMP.
- pattern <'2-byte_hex'> Se utiliza para rellenar el búfer de datos opcional al final del paquete ICMP. El tamaño del buffer se especifica con el parámetro data_size. Esto permite enviar paquetes de diferentes tamaños para probar el efecto del tamaño del paquete en la conexión.
- repeat-count <'repeats'> Especifica la frecuencia con la que se debe repetir el ping .
- Source {auto | <'source-intf_ip'> } Especifique la interfaz FortiGate desde la que debe enviarse el ping. Si especifica auto, la unidad FortiGate selecciona la dirección e interfaz de origen basándose en la ruta a <'host-name_str'> o <'host_ip'>. Especificar la dirección IP de una interfaz FortiGate se utiliza para probar conexiones a diferentes segmentos de red desde la interfaz especificada.
- timeout <'seconds'> Especifique en segundos cuánto tiempo se debe esperar hasta que haya transcurrido el tiempo de ping .
- tos <'service_type'> Establezca el campo ToS (Tipo de Servicio) en la cabecera del paquete para dar una indicación de la calidad de servicio deseada .
- Minimizarel retardo
- rendimiento Maximizar el rendimiento
- fiabilidad Maximizar la fiabilidad
- Minimizar los costes debajo coste
-
ttl
Especifica el tiempo de vida. El tiempo de vida es el número de saltos que el paquete ping puede realizar antes de ser descartado o devuelto. - validate-reply {yes | no} Seleccione yes para validar los datos de respuesta.
- view-settings Muestra la configuración actual de las opciones de ping.
- reset Restablece la configuración.
Por supuesto, puede combinar opciones para obtener el resultado deseado. He aquí un ejemplo:
Ejecutar ping-options source 192.168.10.254 repeat-count 50
ejecutar ping 10.10.10.234
Esta combinación ejecutaría un ping con la dirección de origen 192.168.10.254 y la dirección de destino 10.10.10.234. Se enviarían 50 paquetes PING.
Si desea averiguar qué regla de cortafuegos se aplica en un caso concreto, también puede averiguarlo a través de la CLI. Para ello se utiliza el siguiente comando:
diag firewall iprope lookup <'src_ip'> <'src_port'> <'dst_ip'> <'dst_port'> <'protocol'> <'Source interface'>
- <'src_ip'> Dirección de origen
- <'src_port'> Puerto de origen
- <'dst_ip'> Dirección de destino
- <'dst_port'> Puerto de destino
- <'protocol'> Qué protocolo se va a simular, por ejemplo TCP o UDP
- <'source interface'> Interfaz de origen desde la que se simula la solicitud
Si las peticiones se ejecutan correctamente, se obtienen resultados como los siguientes:
FortiGate # diag firewall iprope lookup 10.187.1.100 12345 8.8.8.8 53 udp port2
FortiGate # diag firewall iprope lookup 10.187.1.100 12345 8.8.8 53 tcp port2
La primera consulta da como resultado la política de cortafuegos con ID 0. Esta sería la regla de denegación implícita que siempre está en la parte inferior y bloquea cualquier tráfico de red que no encaje en una de las reglas anteriores.
Con la segunda consulta obtenemos como resultado que la política de cortafuegos con ID 2 es la responsable. Esto garantiza que se aplica la regla de cortafuegos correcta.
Pero, ¿qué hacer si todo parece encajar, pero sigue sin funcionar limpiamente?
Entonces hay que mirar directamente el tráfico de red. FortiGate ofrece varias posibilidades para ello. A través de la WebGUI o la CLI.
Captura de paquetes vía WebGUI
A través de Red --> Captura de paquetes en la WebGUI de FortiGate puede generar rápidamente datos para su análisis con la ayuda de unas pocas opciones.
- Seleccione la interfaz en la que FortiGate debe recopilar los datos.
- El número de paquetes a recoger, el máximo es 10.000.
Si activa los filtros, aún dispone de las siguientes opciones útiles:
- Host(s ) Introduzca las direcciones cuyos datos desea recopilar. Puede introducir varias direcciones con una , . Ejemplo: 192.168.10.254, 10.10.10.234
- Puerto (s) Aquí también puede definir varios puertos separados por un , . Ejemplo: 443, 80
- VLAN( s) Si utiliza varias VLANs en una interfaz de su red, puede especificar las VLANs específicamente. Ejemplo: 1, 4096
- Protocolo (s) Aquí introduce los números de los protocolos que desea analizar. Puede encontrar los números en la documentación oficial de IANA: IANA Protocol numbers
- Incluir paquetes IPv6 Esto le permite registrar no sólo paquetes IPv4, sino también paquetes IPv6, en caso de que se utilicen en su red.
- Incluir PaquetesNo IP Si desea grabar ARP, DHCP u otros protocolos que no siempre utilizan IPs, puede grabarlos mediante esta opción.
Guarde la selección. A continuación, puede seleccionarla en Red -> Captura de paquetes. Puede iniciar la grabación a través del menú del botón derecho.
Si descarga la grabación, lo que también es posible mientras la grabación sigue en curso, recibirá un archivo PCAP que podrá abrir y visualizar en una herramienta de análisis como Wireshark.
Packet sniffing a través de CLI
También puede observar rápida y cómodamente el tráfico de red objetivo a través de la línea de comandos.
El comando está estructurado de la siguiente manera:
diag sniffer packet <'interface'> <'filter'> <'verbose'> <'count'> a
- <'interface'> La interfaz que se utilizará para la escucha. El nombre es obligatorio aquí. Ejemplo: wan1 o WLAN-Gaeste. Ten en cuenta que el nombre distingue entre mayúsculas y minúsculas. Si tienes una interfaz de túnel llamada WLAN-Gaeste, wlan-gaeste no funcionará.
- <'filter'> Probablemente el parámetro más complejo y potente. Aqui tienes varias posibilidades que se pueden combinar:
-
src|dst host
Especificación de la dirección de origen o destino. - arp|ip|gre|esp|udp|tcp Qué protocolos se van a supervisar.
-
port
Qué puerto debe ser monitorizado. - <'verbose'> Con qué frecuencia deben registrarse los paquetes:
- 1: Cabeceras de salida de los paquetes.
- 2: Salida de cabeceras y datos de paquetes IP.
- 3: Salida de cabecera y datos de paquetes Ethernet.
- 4: Salida de cabeceras de paquetes con nombres de interfaz.
- 5: Salida de cabeceras y datos de IP de paquetes con nombres de interfaz.
- 6: Salida de cabeceras y datos de Ethernet de paquetes con nombre de interfaz.
-
Cuántos paquetes deben registrarse. Si se introduce un 0 aquí, la grabación es permanente. La grabación puede detenerse con Ctrl+C. - a Aquí se utilizan marcas de tiempo absolutas. Normalmente, el tiempo se muestra en orden ascendente desde el inicio de la grabación en segundos. A continuación, el parámetro muestra la hora y la fecha actuales.
Ejemplo: diag sniffer packet internal 'host 192.168.0.130 and 192.168.0.1 and tcp port 80' 1
Aquí sólo se registra el tráfico de red que ha tenido lugar entre los dos hosts en el puerto 80 con el protocolo TCP.
Espero haber podido darle una buena primera impresión de los métodos de análisis del FortiGate.