Puntos de control
Build GCP networking footprint
/ 15
Create Cloud Firewall Rules and CloudNAT
/ 15
Create a CloudRouter and Configure a CloudNAT
/ 20
Create Virtual Machines
/ 20
Create Internal LoadBalancer
/ 20
Configure Packet Mirror Policy
/ 10
Duplicación de paquetes de Google Cloud con IDS de código abierto
- GSP474
- Descripción general
- Descripción del lab de duplicación de paquetes
- Configuración y requisitos
- Tarea 1. Crea un entorno de redes
- Tarea 2. Crea reglas de firewall y Cloud NAT
- Tarea 3. Crea máquinas virtuales
- Tarea 4. Crea un balanceador de cargas interno
- Tarea 5. Instala el IDS de código abierto Suricata
- Tarea 6. Configura y revisa Suricata
- Tarea 7. Configura la política de duplicación de paquetes
- Tarea 8. Prueba la duplicación de paquetes
- Tarea 9. Prueba las alertas y la inspección de IDS de Suricata
- ¡Felicitaciones!
GSP474
Descripción general
La duplicación de tráfico es una función clave en las redes de Google Cloud para la seguridad y el análisis de redes. Su funcionalidad es similar a la de una conexión de red o a una sesión de intervalo en las redes tradicionales. En resumen, Duplicación de paquetes captura el tráfico de red (de entrada y salida) de determinadas "fuentes duplicadas", lo copia y lo reenvía a "colectores".
Es importante tener en cuenta que la duplicación de paquetes captura la carga útil completa de cada paquete y, por lo tanto, consume ancho de banda adicional. Como no se basa en ningún período de muestreo, se puede utilizar para mejorar la resolución de problemas, las soluciones de seguridad y el análisis basado en aplicaciones de capas superiores.
Se establece sobre la base de una "política de duplicación de paquetes", que contiene los siguientes atributos:
- Región
- Redes de VPC
- Fuentes duplicadas
- Colector (destino)
- Tráfico duplicado (filtro)
Estos son algunos puntos clave que también se deben considerar:
- Solo es posible duplicar el tráfico de TCP, ICMP y UDP. No obstante, esto debería satisfacer la mayoría de los casos de uso.
- Las "fuentes duplicadas" y los "colectores" deben estar en la MISMA región, pero pueden estar en diferentes zonas y hasta distintas VPC, siempre que estas últimas intercambien tráfico de forma correcta.
- Se aplican cargos adicionales de ancho de banda, especialmente entre zonas. Para limitar el tráfico que se duplica, se pueden utilizar filtros.
Un caso de uso primordial para la duplicación de paquetes es utilizarla en una solución de Sistema de Detección de Intrusiones (IDS). Algunas soluciones de IDS basadas en la nube requieren que se ejecute un servicio especial en cada VM de origen o se coloque un dispositivo virtual IDS en línea entre la fuente de red y el destino. Ambas soluciones tienen implicaciones significativas. Por ejemplo, la solución basada en servicios, aunque esté completamente distribuida, requiere que el sistema operativo invitado admita el software. La solución en línea puede crear un cuello de botella en la red, ya que todo el tráfico se debe canalizar a través del dispositivo IDS. Esta última solución tampoco podrá capturar el tráfico de "este a oeste" dentro de las VMs en la misma VPC.
La duplicación de paquetes de Google Cloud no requiere ningún software adicional en las VMs y está completamente distribuida en cada una de las máquinas virtuales duplicadas. El IDS de "colector" se ubica fuera de la ruta mediante un balanceador de cargas de red interno (ILB) y recibe tráfico de "norte a sur" y de "este a oeste".
Descripción del lab de duplicación de paquetes
Para demostrar cómo se puede utilizar la duplicación de paquetes con un IDS, considera este ejemplo en el que se usa el IDS de código abierto Suricata.
- Una sola VPC con 2 subredes, una para fuentes duplicadas y otra para el colector
- 2 servidores web creados con una dirección IP pública
- 1 servidor de colector (IDS) creado SIN IP pública por motivos de seguridad
- Cloud NAT habilitado para acceder a Internet según sea necesario
- Todas las VMs creadas en la misma región y zona por motivos de simplicidad y costos
En este lab, crearás un entorno de Google Cloud, configurarás el ILB de “colector” y la política de duplicación de paquetes, e instalarás y configurarás [Suricata] (https://suricata-ids.org/) en una instancia virtual para que actúe como un IDS. Una vez completadas estas acciones, se realizarán pruebas de red para validar la configuración y el uso de la duplicación de paquetes con el IDS de código abierto. Se utilizarán una configuración y un conjunto de reglas básicos de Suricata para simplificar la demostración.
Objetivos:
- Compilar un entorno de Herramientas de redes de Google Cloud como se muestra en el diagrama anterior
- Crear 2 máquinas virtuales con los comandos de
gcloud
para que actúen como servidores web - Crear una sola máquina virtual con los comandos de
gcloud
para que actúe como IDS - Crear un balanceador de cargas interno (ILB) para que actúe como "colector" en la duplicación de paquetes
- Instalar y configurar un IDS de código abierto (Suricata) en la VM de IDS
- Revisar algunas reglas básicas de alertas del IDS
- Crear una política de duplicación de paquetes
- Probar la duplicación de paquetes generando tráfico de red a la subred "duplicada"
- Probar el IDS de Suricata mediante la generación de tráfico de red para simular un evento IDS y revisar los respectivos registros
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón Abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta. -
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}} También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}} También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales. -
Haga clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
- Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Tarea 1. Crea un entorno de redes
En esta sección, crearás una VPC y, luego, 2 subredes dentro de ella. Todo esto se realizará con los comandos de la CLI de gcloud
dentro de Google Cloud Shell.
- Ejecuta el siguiente comando para crear una red privada virtual:
- Agrega una subred a la VPC para el tráfico duplicado en
:
- Agrega una subred a la VPC para el colector en
:
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 2. Crea reglas de firewall y Cloud NAT
Deberás crear un total de tres reglas de firewall para completar este lab.
- La regla 1 habilita el puerto HTTP estándar (TCP 80) y el protocolo ICMP a todas las VMs de todas las fuentes.
- La regla 2 habilita al IDS para recibir TODO el tráfico de TODAS las fuentes. Ten cuidado de NO asignar a la VM de IDS una IP pública en las secciones posteriores.
- La regla 3 habilita el rango de puerto TCP 22 de la “IAP de Google Cloud” para todas las VMs, lo que te permite establecer una conexión SSH a través de la consola de Cloud.
Ejecuta los siguientes comandos para crear las reglas de firewall:
Haz clic en Revisar mi progreso para verificar el objetivo.
Crea un Cloud Router
- Como requisito previo para Cloud NAT, primero se debe configurar un Cloud Router en la región correspondiente:
Configura una puerta de enlace de Cloud NAT
- Para proporcionar acceso a Internet a las VMs sin una IP pública, se debe crear una puerta de enlace de Cloud NAT en la región correspondiente:
La VM de IDS se creará sin una IP pública para garantizar que no se pueda acceder a ella desde Internet. Sin embargo, necesitará acceso a Internet para descargar actualizaciones e instalar paquetes de Suricata.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 3. Crea máquinas virtuales
Crea una plantilla de instancias para un servidor web
- Esta plantilla prepara un servidor Ubuntu en
además de instalar un servicio web sencillo:
Crea un grupo de instancias administrado para los servidores web
- Este comando utiliza la plantilla de instancias del paso anterior para crear 2 servidores web:
Crea una plantilla de instancias para la VM de IDS
- Esta plantilla prepara un servidor Ubuntu en
sin contar con una IP pública:
Crea un grupo de instancias administrado para la VM de IDS
- Este comando utiliza la Plantilla de instancias del paso anterior para crear 1 VM que se configurará como tu IDS. La instalación de Suricata se abordará en una sección posterior.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 4. Crea un balanceador de cargas interno
La duplicación de paquetes utiliza un balanceador de cargas interno (ILB) para reenviar el tráfico duplicado a un grupo de colectores. En este caso, el grupo de colectores contiene una sola VM.
- Crea una verificación de estado básica para los servicios de backend:
- Crea un grupo de servicios de backend para utilizarlo en un ILB:
- Agrega el grupo de instancias administrado de IDS que se creó al grupo de servicios de backend del paso anterior:
- Crea una regla de reenvío de frontend para que actúe como el extremo de recopilación:
--is-mirroring-collector,
.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 5. Instala el IDS de código abierto Suricata
Nota: En las 2 secciones a continuación, te conectarás a la VM de IDS con una conexión SSH y ejecutarás los comandos en su shell. Ten cuidado de no ejecutar los comandos en Cloud Shell.
Establece una conexión SSH a la VM de IDS
-
En el menú de navegación de la consola de Cloud, navega a Compute Engine > Instancias de VM.
-
Haz clic en el botón SSH de la VM de IDS.
Se abrirá una ventana nueva que te permitirá ejecutar comandos dentro de la VM de IDS.
- Actualiza la VM de IDS:
- Instala las dependencias de Suricata:
- Instala Suricata:
Verifica la instalación
- Ejecuta el siguiente comando para verificar la instalación y la versión de Suricata:
El resultado debería ser similar al siguiente:
Tarea 6. Configura y revisa Suricata
Los comandos y los pasos de la siguiente sección también se deben realizar en la ventana de SSH de la VM de Suricata o IDS.
- Detén el servicio de Suricata y crea una copia de seguridad del archivo de configuración predeterminado:
Descarga y reemplaza el nuevo archivo de configuración de Suricata y el archivo abreviado de reglas
El nuevo archivo de configuración actualiza la interfaz del colector y solo alerta sobre un conjunto de tráfico muy pequeño, como se configuró en los archivos my.rules
y suricata.yaml
. Las configuraciones predeterminadas para los conjuntos de reglas y alertas de Suricata son bastante extensas y superfluas para este lab.
- Ejecuta los siguientes comandos para copiar los archivos.
Inicia el servicio de Suricata
A veces, se debe reiniciar el servicio. En caso de que esto suceda, se incluye el comando restart
en este paso:
Revisa reglas simples de Suricata para probarlas
Para este lab, el conjunto de reglas de Suricata se redujo a 4. Sin embargo, la instalación predeterminada de Suricata consta de un extenso conjunto de reglas.
- Condensar las alertas en una lista breve y sencilla es una mejor opción para este ejercicio del lab, para que se pueda probar cada una con facilidad.
El resultado debería mostrar un total de 4 reglas con sus respectivas descripciones.
/etc/suricata/rules/
o /var/lib/suricata/rules
. Para este lab, se reconfiguraron en una ubicación diferente en el paso 2.
Tarea 7. Configura la política de duplicación de paquetes
Para esta sección del lab, regresa a Cloud Shell.
La configuración de la política de duplicación de paquetes se puede completar en un comando simple (o mediante un "asistente" en la GUI). En este comando, se especifican los 5 atributos mencionados en la sección en la que se describe la duplicación de paquetes.
- Región
- Redes de VPC
- Fuentes duplicadas
- Colector (destino)
- Tráfico duplicado (filtro)
Puedes notar que no se menciona el "tráfico duplicado". Esto se debe a que la política se configurará para duplicar "TODO" el tráfico, por lo que no se necesita realizar ningún filtro. La política duplicará el tráfico de entrada y salida, y lo reenviará al dispositivo IDS de Suricata, que es parte del ILB del colector.
- Para configurar la política de duplicación de paquetes, ejecuta lo siguiente en Cloud Shell:
En este punto, la configuración de la duplicación de paquetes y Suricata debería estar completa. En las siguientes secciones, se probarán ambas.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 8. Prueba la duplicación de paquetes
En esta sección, deberás acceder al shell de la VM de IDS. Si la ventana de la shell aún está abierta, utilízala. Si se cerró, vuelve a conectarte.
También utilizarás Cloud Shell para que actúe como “cliente de Internet”.
Tómate unos minutos para encontrar la IP externa de las dos VMs WEB.
Desde el Menú de navegación de la consola de Cloud, haz clic en Compute Engine > Instancias de VM y anota las IPs externas de las dos VMs WEB. Estas se llaman [PUBLIC_IP_WEB1] y [PUBLIC_IP_WEB2], respectivamente.
También puedes recopilar la misma información mediante los comandos de gcloud
desde Cloud Shell:
Regresa a la shell de la VM de IDS
Prueba la duplicación de paquetes
- Ejecuta una captura de paquetes (tcpdump) en la VM de Suricata o IDS con los siguientes filtros:
Genera tráfico a la subred “duplicada”
- Mediante la terminal de Cloud Shell, haz ping a la dirección pública asignada a “WEB1”. Para ello, reemplaza [PUBLIC_IP_WEB1] por la dirección IP pública correspondiente, la cual se puede ver en la consola de Cloud:
La duplicación de paquetes debería hacer una copia exacta de ese tráfico y reenviarlo a la VM de IDS, y tú deberías poder consultarlo en la captura de paquetes del paso 1. El resultado en la VM de IDS debería ser similar al siguiente, en el que X.X.X.X es la dirección IP de origen de las solicitudes de ICMP. En el resultado tcpdump, deberías observar la IP privada del servidor web. Google Cloud realiza la traducción de red en el perímetro.
Lo mismo debería suceder si haces ping a la dirección pública de WEB2.
- Haz ping a la dirección pública asignada a WEB2. Para ello, reemplaza [PUBLIC_IP_WEB2] por la dirección IP pública correspondiente.
La duplicación de paquetes debería reenviar ese tráfico a la VM de IDS, y tú deberías poder consultarlo en la captura de paquetes del paso 1. El resultado en la VM de IDS debería ser similar al siguiente: Ten en cuenta que deberías observar la IP privada del servidor web en el resultado de tcpdump. Google Cloud realiza la traducción de red en el perímetro.
Para demostrar mejor que la duplicación de paquetes muestra más que solo los encabezados de capa 3, la siguiente prueba mostrará una solicitud HTTP GET estándar a uno de los servidores web, incluido el protocolo de enlace inicial de TCP de 3 vías.
-
Abre una pestaña nueva en tu navegador y luego la dirección pública asignada a WEB1 con el protocolo HTTP. También puedes abrirla mediante la utilidad “curl” de la consola de Cloud si así lo prefieres.
-
Reemplaza [PUBLIC_IP_WEB1] por la dirección IP pública de “WEB1”:
La duplicación de paquetes debería reenviar ese tráfico a la VM de IDS, y tú deberías poder consultarlo en la captura de paquetes del paso 1.
El resultado en la VM de IDS debería ser similar al siguiente:
- Lo mismo debería suceder si navegas a la dirección pública de WEB2. Reemplaza [PUBLIC_IP_WEB2] por la dirección IP pública de "WEB2":
La duplicación de paquetes debería reenviar ese tráfico a la VM de IDS, y tú deberías poder consultarlo en la captura de paquetes del paso 1.
El resultado en la VM de IDS debería ser similar al siguiente:
Ingresa Ctrl + c
en la VM de IDS para salir de tcpdump.
Tarea 9. Prueba las alertas y la inspección de IDS de Suricata
En la última sección de este lab, se probará la integración de la duplicación de paquetes con el IDS de código abierto Suricata. Tómate un minuto y revisa las 4 reglas de Suricata que se establecieron para crear alertas en el paso 4, en la sección “Configura y revisa Suricata”:
En los siguientes 4 pasos, generarás tráfico de red que activará cada una de estas reglas. Las alertas para cada una de ellas se deberían mostrar en el archivo de registro de eventos de Suricata.
TEST1 y TEST2 se iniciarán desde el SERVIDOR WEB y examinarán el tráfico de salida.
TEST3 y TEST4 se iniciarán en Cloud Shell y examinarán el tráfico de entrada.
TEST 1: Examina la regla o la alerta UDP de salida
- Ejecuta el siguiente comando desde uno de los servidores web para generar tráfico de DNS de salida:
- Ahora observa la alerta en el archivo de registro de eventos de Suricata en la VM de IDS.
Cambia a la ventana de SSH para la VM de IDS
- Ejecuta el siguiente comando en la ventana de SSH para la VM de IDS:
La entrada de registro debería ser similar a la siguiente:
TEST 2: Examina la regla o la alerta de “TCP” de salida
- Ejecuta el siguiente comando desde uno de los servidores web para generar tráfico de TCP de salida. Para ello, reemplaza [PUBLIC_IP_WEB2] por la dirección IP pública de "WEB2":
-
Ingresa
Ctrl + c
para salir. -
Ahora observa la alerta en el archivo de registro de eventos de Suricata en la VM de IDS.
Cambia a la ventana de SSH para la VM de IDS
- Ejecuta el siguiente comando desde la ventana de SSH de la VM de IDS:
La entrada de registro debería ser similar a la siguiente:
TEST 3: Examina la regla o la alerta de “ICMP” de entrada
-
Ejecuta el siguiente comando desde Cloud Shell para generar tráfico de ICMP de entrada.
-
Reemplaza [PUBLIC_IP_WEB1] por la dirección IP pública de “WEB1”.
- Ahora observa la alerta en el archivo de registro de eventos de Suricata en la VM de IDS:
La entrada de registro debería ser similar a la siguiente:
TEST 4: Examina la regla o la alerta de “HTTP” de entrada
Usa el navegador web de tu estación de trabajo local o curl
en Cloud Shell para navegar con el protocolo HTTP por la dirección pública asignada a WEB1, la cual es la página de index.php.
- Reemplaza [PUBLIC_IP_WEB1] por la dirección IP pública de “WEB1”.
- Ahora observa la alerta en el archivo de registro de eventos de Suricata en la VM de IDS:
La entrada de registro debería ser similar a la siguiente:
¡Felicitaciones!
De esta manera, se completa el lab sobre el uso de la duplicación de paquetes de Google Cloud con el IDS de código abierto Suricata.
Próximos pasos/Más información
Para obtener información adicional sobre la duplicación de paquetes, consulta la siguiente documentación:
Para obtener más información sobre Suricata, consulta https://suricata-ids.org/
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Actualización más reciente del manual: 18 de noviembre de 2024
Prueba más reciente del lab: 6 de septiembre de 2023
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.