Dado que la versión 5.5 de PHP ya no es compatible con la comunidad, recomendamos que las apps nuevas usen el entorno de ejecución de PHP 7.

Configura el servicio de protección DoS para PHP

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 enfrenta a ataques de denegación del servicio o tipos de abuso similares. Puedes agregar direcciones IP o subredes a una lista de bloqueo, y las solicitudes enrutadas desde esas direcciones o subredes se descartarán antes de que se llame al código de la aplicación. No se consumen asignaciones de recursos, facturadas o no, para estas solicitudes.

De forma predeterminada, App Engine muestra una página de error genérica a las direcciones de la lista de bloqueo. En su lugar, puedes configurar tu app para entregar una respuesta personalizada.

Antes de comenzar

Crea un archivo dos.yaml en el directorio root de la aplicación. En este archivo, debes especificar las redes y las direcciones IP que están en la lista de bloqueo.

Bloquea solicitudes con listas de bloqueo de DoS

Puedes agregar direcciones IP y subredes IP a una lista de bloqueo para evitar que accedan a la app.

dos.yaml está limitado a 100 entradas, por lo que es posible que sea 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 en tu app.

Crea entradas de lista de bloqueo para direcciones IP

Puedes bloquear el acceso de una o más direcciones IP a la app si defines 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 direcciones IP individuales.

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

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

Crea entradas de lista de bloqueo para subredes de IP

Puedes bloquear el acceso de una subred IP a la app si la 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

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

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

Crea mensajes de error personalizados para las solicitudes de la lista de bloqueo

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 incluir máquinas infectadas de usuarios legítimos. En esta página, esos usuarios podrían encontrar explicaciones sobre el motivo de la denegación del 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 el archivo app.yaml, especifica un controlador de errores para las respuestas de DoS. Para ello, proporciona la ruta al archivo estático y agrega el tipo de error_handlers de dos_api_denial:

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

Borra todas las entradas de las listas de bloqueo

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

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

    blacklist:
    

    Borrar dos.yaml no quita las listas de bloqueo.

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

Visualiza errores de denegación de DoS en Console

Puedes ver un gráfico de la cantidad de solicitudes que se rechazan:

  1. Ve al panel de App Engine en Google Cloud 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 la lista de bloqueo de DoS

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

 gcloud app deploy dos.yaml

Próximos pasos

  • Configura Cloud Monitoring para identificar los problemas con rapidez y recibir alertas.
  • Lee la experiencia de un cliente sobre cómo respondió a un ataque de denegación del servicio distribuido (DSD) (enero de 2013).