Configura el servicio de protección DoS

El servicio de protección de denegación del servicio (DoS) de App Engine te permite proteger tu aplicación para que no se quede sin cuota cuando recibe ataques de denegación de servicio o formas similares de abuso. Puedes incluir en la lista negra las direcciones IP o las subredes, y las solicitudes enrutadas desde esas direcciones o subredes se eliminarán antes de que se llame al código de tu aplicación. No se consumen asignaciones de recursos, para estas solicitudes sin importar si se facturan o no.

De forma predeterminada, App Engine entrega una página de error genérica para las direcciones de la lista negra. En cambio, puedes configurar tu aplicación para entregar una respuesta personalizada.

Antes de comenzar

Crea un archivo dos.yaml en el directorio root de tu aplicación. En este archivo especificarás tus direcciones IP y redes de la lista negra.

Bloquea solicitudes con listas negras de DoS

Puedes incluir las direcciones IP y las subredes IP en la lista negra para evitar que accedan a tu app.

El archivo dos.yaml está limitado a 100 entradas, por lo que puede ser necesario bloquear subredes completas si te enfrentas a un ataque de DoS. Esta también es una forma eficaz de protegerte si descubres que varias direcciones IP de la misma red reciben un ataque de DoS en tu app.

Crea entradas en la lista negra para direcciones IP

Para bloquear el acceso de una o más direcciones IP a tu aplicación, puedes definir esas direcciones IPv4 o IPv6 en el archivo dos.yaml. Por ejemplo:

blacklist:
- subnet: 192.0.2.1
  description: A single IPv4 address
- subnet: abcd::123:4567
  description: A single IPv6 address

En un ataque de denegación de servicio distribuido (DSD), es probable que debas bloquear subredes completas en lugar de una dirección IP individual.

Consulta el ejemplo a continuación para obtener ayuda con la creación del archivo dos.yaml.

Después de crear el archivo dos.yaml, debes subirlo a tu app.

Crea entradas en la lista negra para subredes de IP

Puedes bloquear el acceso de una o más subredes de IP a tu app si las defines en formato CIDR. Puedes usar la herramienta IP a CIDR, que te ayudará a crear reglas que usan la notación CIDR.

blacklist:
- subnet: 1.2.3.4/24
  description: an IPv4 subnet
- subnet: abcd::123:4567/48
  description: an IPv6 subnet

Consulta el ejemplo a continuación para obtener ayuda con la creación del archivo dos.yaml.

Después de crear el archivo dos.yaml, debes subirlo a tu app.

Archivo dos.yaml de ejemplo

El siguiente es un ejemplo de archivo dos.yaml:

blacklist:
- subnet: 1.2.3.4
  description: a single IP address
- subnet: 1.2.3.4/24
  description: an IPv4 subnet
- subnet: abcd::123:4567
  description: an IPv6 address
- subnet: abcd::123:4567/48
  description: an IPv6 subnet

Crea mensajes de error personalizados para solicitudes en lista negra

Según la configuración predeterminada, se entrega una página de error genérica a las solicitudes bloqueadas por el servicio de protección DoS. Los ataques de denegación de servicio distribuidos podrían involucrar una máquina infectada de un usuario legítimo, y esta página podría proporcionar una explicación para aquellos usuarios acerca de por qué se denegó el acceso.

  1. Crea un archivo estático en el directorio de tu aplicación para entregar a las solicitudes que están bloqueadas por el servicio de protección DoS.

  2. En tu archivo app.yaml, especifica un controlador de errores para las respuestas DoS proporcionando la ruta de acceso a tu archivo estático y agregando el tipo de error_handlers del dos_api_denial.

    error_handlers:
    - error_code: dos_api_denial
      file: dos-response.html
    

Borra todas las entradas de la lista negra

Para borrar todas las entradas de la lista negra, haz lo siguiente:

  1. Edita el archivo dos.yaml para que solo contenga lo siguiente:

    blacklist:
    

    Borrar dos.yaml no quita las listas negras.

  2. Vuelve a implementar el archivo dos.yaml para que los cambios se apliquen.

Ve los errores de denegación de DoS en la consola

Puedes ver un gráfico de la cantidad de solicitudes que se rechazan. Para ello, haz lo siguiente:

  1. Ve al panel de App Engine en Google Cloud Platform Console:

    Abrir el gráfico de detalles del error de App Engine.

  2. Ajusta el marco de tiempo del gráfico según sea necesario para ver los resultados.

Sube tu lista negra de DoS

Usa la herramienta gcloud para implementar el archivo de configuración DoS actualizado en tu app de App Engine. Por ejemplo, ejecuta el siguiente comando para actualizar el servicio de protección DoS con el contenido de dos.yaml:

 gcloud app deploy dos.yaml

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación del entorno de App Engine Flexible para Python