nShield: protección anti ddos con iptables.
nShield es una herramienta que nos ayudara a proteger nuestros servidores, ya sean dedicados, vps o caseros. Esta fabulosa aplicación esta escrita en Python, por tanto es necesario tener instalado este lenguaje de programación. También es indispensable tener Nginx instalado, pero no te preocupes si no tienes ni Python, ni Nginx instalado, el script de instalación lo hará por ti.
El script se autoconfigura de forma predeterminada para ejecutarse cada 30 minutos y verifica el archivo de configuración para ejecutar una serie de operaciones:
- Recibe las actualizaciones de Bots, spammers, listados de IP negras, etc…, los listados los toma de http://iplists.firehol.org.
- Permite que los métodos básicos Anti-DDoS denieguen el tráfico maligno.
- Crea límites de velocidad para cuando el server esta siendo atacado.
- Permite HTTP (S) Proxying para proteger su sitio con un proxy. Necesario verificar manualmente el SSL en la primera conexión.
La instalación de este script protector es muy simple, tan solo ejecuta el siguiente comando:
cd /home/ && git clone https://github.com/fnzv/nShield.git && bash nShield/install.sh
Ten presente que las reglas de iptables que tengas puestas, serán reemplazadas por las propietarias de este script anti ddos.
El script anti ddos instalará python si no esta instalado, descargará todo el repositorio, incluyendo los archivos de configuración de ejemplo, ejecutará un script bash para configurar algunos ajustes y un cron que se ejecutará cada 30 minutos para verificar las conexiones mas comunes.
La verificación HTTPS se ejecuta de forma manual la primera vez, con el siguiente comando:
python nshield-main.py -ssl
Deberás insertar una dirección de correo electrónico valida (para usar Let’s Encrypt) y cambiar las DNS de tu dominio de manera que apunten al servidor nShield.
Ejemplo:
I Will generate SSL certs for sami.pw with Let's Encrypt DNS challenge Insert your email address? (Used for cert Expiration and Let's Encrypt TOS agreement samiii@protonmail.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Renewing an existing certificate Performing the following challenges: dns-01 challenge for sami.pw ------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.sami.pw with the following value: wFyeYk4yl-BERO6pKnMUA5EqwawUri5XnlD2-xjOAUk Once this is deployed, ------------------------------------------------------------------------------- Press Enter to Continue Waiting for verification... Cleaning up challenges
Esta herramienta es compatible con cualquier sistema linux que use iptables.
Puedes acceder al proyecto nShield en GitHub donde encontraras toda la documentación oficial y la propia herramienta para su descarga e instalación.