Configura el Servicio de protección contra DoS para Go

El servicio de protección contra denegación del servicio (DoS) de App Engine te permite proteger tu aplicación para que no se quede sin cuota cuando se la somete a ataques de denegación de servicio o formas similares de abuso. Puedes incluir direcciones IP o subredes en la lista negra, de forma que las solicitudes enrutadas desde esas direcciones o subredes se bloqueen antes de que se llame al código de tu aplicación. Para estas solicitudes no se consumen asignaciones de recursos, facturadas o no.

De forma predeterminada, App Engine entrega una página de error genérica a las direcciones de la lista negra. En su lugar, 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 las direcciones IP y redes en tu lista negra.

Cómo bloquear solicitudes con listas negras de DoS

Puedes incluir direcciones IP y subredes IP en la lista negra para evitar que accedan a tu aplicación.

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 son parte de un ataque de DoS a tu aplicación.

Cómo crear entradas en la lista negra para direcciones IP

Puedes bloquear el acceso de una o más direcciones IP a tu aplicación si defines esas direcciones IPv4 o IPv6 en tu 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 direcciones IP individuales.

Para ver ejemplos, consulta la referencia de dos.yaml.

Después de crear el archivo dos.yaml, debes subirlo a la aplicación.

Cómo crear entradas en la lista negra para subredes IP

Puedes bloquear el acceso de una subred IP a tu aplicación si la defines en formato CIDR. Puedes usar la herramienta IP a CIDR para ayudarte a crear reglas con la notación CIDR.

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

Para ver ejemplos, consulta la referencia de dos.yaml.

Después de crear el archivo dos.yaml, debes subirlo a la aplicación.

Cómo crear mensajes de error personalizados para solicitudes en la lista negra

De forma predeterminada, se entrega una página de error genérica a las solicitudes bloqueadas por el servicio de protección contra DoS. Los ataques de denegación de servicio distribuidos podrían involucrar una máquina infectada de un usuario legítimo. Esta página podría proporcionar una explicación para estos 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 bloqueadas por el servicio de protección contra DoS.

  2. En tu archivo app.yaml, proporciona la ruta de acceso a tu archivo estático y agrega el tipo error_handlers de dos_api_denial con el fin de especificar un controlador de errores para las respuestas DoS:

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

Cómo borrar todas las entradas de la lista negra

Para borrar todas las entradas de la lista negra:

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

    blacklist:
    

    Borrar el archivo dos.yaml no quita las listas negras.

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

Observa errores de denegación de DoS en Console

Puedes ver un gráfico del número de solicitudes que se rechazan:

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

    Abrir el gráfico de detalles de 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 aplicación en App Engine. Por ejemplo, ejecuta el siguiente comando para actualizar el servicio de protección contra DoS con el contenido del archivo dos.yaml:

 gcloud app deploy dos.yaml

Próximos pasos

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

Enviar comentarios sobre...

Entorno estándar de App Engine para Go