Alojo todos mis sitios web en Droplets de DigitalOcean y también uso Cloudflare como mi proveedor de CDN. Uno de los beneficios de usar Cloudflare es que reduce el tráfico general hacia tus usuarios y también oculta tu dirección IP real detrás de su CDN.
Mi característica favorita de Cloudflare es su protección DDoS gratuita. Ha salvado mis servidores múltiples veces de diferentes ataques DDoS. Tienen una API genial que puedes usar para habilitar y deshabilitar su protección DDoS fácilmente.
¡Este capítulo va a ser un ejercicio! Te desafío a que escribas un breve script bash que habilite y deshabilite automáticamente la protección DDoS de Cloudflare para tu servidor si es necesario.
Requisitos previos
Antes de seguir esta guía, por favor configura tu cuenta de Cloudflare y prepara tu sitio web. Si no estás seguro de cómo hacerlo, puedes seguir estos pasos aquí: Crear una cuenta de Cloudflare y añadir un sitio web.
Una vez que tengas tu cuenta de Cloudflare, asegúrate de obtener la siguiente información:
- Una cuenta de Cloudflare
- Clave API de Cloudflare
- ID de zona de Cloudflare
Además, asegúrate de que curl esté instalado en tu servidor:curl --version
Si curl no está instalado, necesitas ejecutar lo siguiente:
Para RedHat/CentOS:yum install curl
Para Debian/Ubuntu:apt-get install curl
Desafío - Requisitos del script
El script necesita monitorear el uso de CPU en tu servidor y, si el uso de CPU se eleva según el número de vCPUs, habilitaría automáticamente la protección DDoS de Cloudflare a través de la API de Cloudflare.
Las principales características del script deberían ser:
- Verificar la carga de CPU en el servidor
- En caso de un aumento de CPU, el script activa una llamada API a Cloudflare y habilita la función de protección DDoS para la zona especificada
- Después de que la carga de CPU vuelva a la normalidad, el script desactivará la opción "Estoy bajo ataque" y la restablecerá a la normalidad
Ejemplo de script
Ya he preparado un script de demostración que puedes usar como referencia. Pero te animo a que intentes escribir el script tú mismo primero y solo entonces mires mi script.
Para descargar el script, simplemente ejecuta el siguiente comando:wget https://raw.githubusercontent.com/bobbyiliev/cloudflare-ddos-protection/main/protection.sh
Abre el script con tu editor de texto favorito:nano protection.sh
Y actualiza los siguientes detalles con tu información de Cloudflare:CF_ZONE_ID=YOUR_CF_ZONE_ID
CF_EMAIL_ADDRESS=YOUR_CF_EMAIL_ADDRESS
CF_API_KEY=YOUR_CF_API_KEY
Después de eso, haz que el script sea ejecutable:chmod +x ~/protection.sh
Finalmente, configura 2 trabajos de Cron para que se ejecuten cada 30 segundos. Para editar tu crontab, ejecuta:crontab -e
Y añade el siguiente contenido:* * * * * /path-to-the-script/cloudflare/protection.sh
* * * * * ( sleep 30 ; /path-to-the-script/cloudflare/protection.sh )
Ten en cuenta que necesitas cambiar la ruta al script con la ruta real donde has almacenado el script.
Conclusión
Esto es bastante directo y una solución económica; una de las desventajas del script es que si tu servidor se vuelve no receptivo debido a un ataque, el script podría no activarse en absoluto.
Por supuesto, un enfoque mejor sería usar un sistema de monitoreo como Nagios y, basándote en las estadísticas del sistema de monitoreo, podrías activar el script, pero este desafío de script podría ser una buena experiencia de aprendizaje.
Aquí hay otro recurso excelente sobre cómo usar la API de Discord y enviar notificaciones a tu canal de Discord con un script Bash:
Cómo usar Webhooks de Discord para obtener notificaciones sobre el estado de tu sitio web en Ubuntu 18.04
Nota: Este contenido fue publicado inicialmente en DevDojo.
No hay comentarios.:
Publicar un comentario