Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Buscador

Entradas Mensuales

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Foro de elhacker.net - Noticias

elhacker.NET en Facebook

Entradas populares

PostHeaderIcon Funcionamiento y configuración protección DDoS de CloudFlare




Ejemplo de protección bajo el enorme paragüas de CloudFlare. CloudFlare además de protección anti DDoS incluye opciones de CDN, caché y demás, con lo que mejora la velocidad del sitio. Tiene soporte total SSL (https) e incluye numerosas opciones extra.





Ejemplo de protección bajo el enorme paragüas de CloudFlare. CloudFlare además de protección DDoS incluye opciones de CDN, caché y demás, con lo que mejora la velocidad del sitio. Tiene soporte total SSL (https en la pestaña Crypto con opciones Full, Full Strict, Flexible) e incluye numerosas opciones extras como:

  • Prevención y protección Hotlinking (imágenes)
  • Caché páginas (CDN y offline) (Optimización CSS, JS y HTML)
  • Ofuscación e-mails
  • Verificación integridad del navegador (empty user agent)
  • Previene usuarios se hagan pasar por GoogleBot usando User-Agent mirando el rango de ip (66.249.64.0/19) (Prevent fake googlebots from crawling) 
  • Reglas personalizadas en una página (Page Rules)
  • Optimización de imágenes (Plan pro y superiores)
  • Web Aplication Firewall (WAF) OWASP

¿Cómo funciona CloudFlare?

Para el que no lo sepa CloudFlare es como un servidor proxy enorme, CloudFlare sirve la página a los usuarios, pero primero se conecta al servidor real, y luego le sirve la página al visitante, simplemente hace de intermediario, de proxy transparente.

CloudFlare tiene 4 planes:

  • Gratuito
  • Pro - 20$ mes
  • Professional - 200$ mes
  • Enterprise - Media de 5.000$ mes

Se puede instalar el mod_cloudflare para el servidor web Apache 2.2.x y 2.4.x para ver las ip's reales que acceden y que en los logs salgan las ip's reales de acceso y no las ip's de CloudFlare.

La "lista blanca" la cantidad inmensa de ip's que tiene CloudFlare (servidores también en Madrid)



El rango 188.114.98.0/24 se encuentra en Madrid en ESPanix

https://www.cloudflare.com/ips

IPv4

199.27.128.0/21
173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/12
Podemos usar iptables para denegar el tráfico http y https que no provengan de las ip's de CloudFlare:

for i in `curl https://www.cloudflare.com/ips-v4`; do iptables -I INPUT -p tcp -s $i --dport http -j ACCEPT; done

Reglas iptables


# cloudflare ips range
#http
-A INPUT -s 199.27.128.0/21 -p tcp --dport http -j ACCEPT
-A INPUT -s 173.245.48.0/20 -p tcp --dport http -j ACCEPT
-A INPUT -s 103.21.244.0/22 -p tcp --dport http -j ACCEPT
-A INPUT -s 103.22.200.0/22 -p tcp --dport http -j ACCEPT
-A INPUT -s 103.31.4.0/22 -p tcp --dport http -j ACCEPT
-A INPUT -s 141.101.64.0/18 -p tcp --dport http -j ACCEPT
-A INPUT -s 108.162.192.0/18 -p tcp --dport http -j ACCEPT
-A INPUT -s 190.93.240.0/20 -p tcp --dport http -j ACCEPT
-A INPUT -s 188.114.96.0/20 -p tcp --dport http -j ACCEPT
-A INPUT -s 197.234.240.0/22 -p tcp --dport http -j ACCEPT
-A INPUT -s 198.41.128.0/17 -p tcp --dport http -j ACCEPT
-A INPUT -s 162.158.0.0/15 -p tcp --dport http -j ACCEPT
-A INPUT -s 104.16.0.0/12 -p tcp --dport http -j ACCEPT
-A INPUT -s 172.64.0.0/13 -p tcp --dport http -j ACCEPT
#https
-A INPUT -s 199.27.128.0/21 -p tcp --dport https -j ACCEPT
-A INPUT -s 173.245.48.0/20 -p tcp --dport https -j ACCEPT
-A INPUT -s 103.21.244.0/22 -p tcp --dport https -j ACCEPT
-A INPUT -s 103.22.200.0/22 -p tcp --dport https -j ACCEPT
-A INPUT -s 103.31.4.0/22 -p tcp --dport https -j ACCEPT
-A INPUT -s 141.101.64.0/18 -p tcp --dport https -j ACCEPT
-A INPUT -s 108.162.192.0/18 -p tcp --dport https -j ACCEPT
-A INPUT -s 190.93.240.0/20 -p tcp --dport https -j ACCEPT
-A INPUT -s 188.114.96.0/20 -p tcp --dport https -j ACCEPT
-A INPUT -s 197.234.240.0/22 -p tcp --dport https -j ACCEPT
-A INPUT -s 198.41.128.0/17 -p tcp --dport https -j ACCEPT
-A INPUT -s 162.158.0.0/15 -p tcp --dport https -j ACCEPT
-A INPUT -s 104.16.0.0/12 -p tcp --dport https -j ACCEPT
-A INPUT -s 172.64.0.0/13 -p tcp --dport https -j ACCEPT
#Block HTTP from other sources
-A INPUT -p tcp --dport http -j LOG  --log-prefix "Ataque http " --log-level 4
-A INPUT -p tcp --dport http -j DROP
#Block HTTPS from other sources
-A INPUT -p tcp --dport https -j LOG  --log-prefix "Ataque https " --log-level 4
-A INPUT -p tcp --dport https -j DROP 
 O usando la opción multiport de iptables:

#http y https
-A INPUT -p tcp -m multiport --dports http,https -s 199.27.128.0/21 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 173.245.48.0/20 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 103.21.244.0/22 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 103.22.200.0/22 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 103.31.4.0/22 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 141.101.64.0/18 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 108.162.192.0/18 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 190.93.240.0/20 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 188.114.96.0/20 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 197.234.240.0/22 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 198.41.128.0/17 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 162.158.0.0/15 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 104.16.0.0/12 -j ACCEPT
-A INPUT -p tcp -m multiport --dports http,https -s 172.64.0.0/13 -j ACCEPT
#Block HTTP from other sources
-A INPUT -p tcp --dport http -j LOG  --log-prefix "Ataque http " --log-level 4
-A INPUT -p tcp --dport http -j DROP
#Block HTTPS from other sources
-A INPUT -p tcp --dport https -j LOG  --log-prefix "Ataque https " --log-level 4
-A INPUT -p tcp --dport https -j DROP

Configurando CloudFlare

Lo primero que hay que hacer para usar CloudFlare es usar sus servidores DNS, en nuestro caso los servidores dns asignados son:

  • lily.ns.cloudflare.com
  • sri.ns.cloudflare.com
En todo momento puedes editar las entradas DNS, A, CNAME, TXT, MX todas menos entradas wildcard como * podrán escoger CloudFlare on o off
Cuando esté OFF la Ip será directamente la de nuestro servidor web y cuando esté ON apuntará a las ip's de CloudFlare

 Estadísticas (Dashboard) de CloudFlare (Analytics)










Esconder-ocultar la ip real del servidor en CloudFlare

En futuras entradas explicaremos cómo esconder la ip real (CloudFlare "bypass") del servidor. La única manera de sacarla es por el servidor de e-mail (mirando las cabeceras del e-mail), pero se puede poner el servicio de e-mail en otro servidor con otra ip totalmente diferente (ni del mismo rango). También hay que vigilar las entradas dns como ftp, etc. Y los registros SPF del correo del las entradas DNS, dónde se indican los servidores de e-mail reales (válidos).


We added a FTP subdomain for you that does not pass through the CloudFlare network. If in the past you FTPed directly to elhacker.net, now you should FTP to ftp.elhacker.net. You can change the default name of the subdomain to something other than ftp for enhanced security.

http://blog.cloudflare.com/ddos-prevention-protecting-the-origin/

Opciones del Firewall - Bloqueo de CloudFlare


CloudFlare tiene 5 modos de acceso de países, ips o rangos de ip's, ASN, o redes como Tor :

  • Bloqueado: (blackList) sin acceso
  • Captcha: (imagen para verificar que la petición es humana) y si puede validar por x tiempo.
  • Whitelist: (lista blanca)
  • JavaScript Challange: (comprobación del navegador, 5 segundos de espera para ver si la petición es correta).

 Opciones de Configuracion de CloudFlare


elhacker.NET no era nada partidario de usar CloudFlare, pero la verdad es que no ha quedado más remedio, llevando baneadas más 6.600 ip's y seguían saliendo de nuevas...


Fácil, simple y efectivo.

Seguridad

Niveles de Seguridad

  • Off
  • Low (bajo)
  •  Medium
  • High
  • I'm Under Attack
 Ajuste el nivel de seguridad básica para modificar el comportamiento CloudFlare de protección en relación con la cual los visitantes se muestran una página Captcha / desafío. Una configuración de baja seguridad desafiará sólo los visitantes más amenazantes. Un entorno de alta seguridad desafiará a todos los visitantes que han exhibido un comportamiento amenazante en los últimos 14 días. Esencialmente off actuará sólo contra los delincuentes más graves. Se recomienda iniciar a cabo en medio (el valor predeterminado) para proteger adecuadamente a su sitio.

Estoy En Modo Ataque (I'm Under Attack) sólo debe utilizarse cuando un sitio está teniendo un ataque DDoS. Los visitantes recibirán una página intersticial durante unos cinco segundos, mientras se analiza el tráfico y el comportamiento para asegurarse de que es un visitante humano legítimo tratar de acceder a su sitio.
  • Ejemplo página "I'm Under Attack"


Puedes usar la API de CloudFlare para activar automáticamente el modo I'm Under Attack, por ejemplo cuando las cargas (Lod Average) sean superiores a x:

Script Bash:

#!/bin/sh
curl https://www.cloudflare.com/api_json.html \
-d 'a=sec_lvl' \
-d 'tkn=XXXXXXXXXXXXX' \
-d 'email=XXXXXXX@elhacker.net' \
-d 'z=elhacker.net' \
-d 'v=help'

Otros ejemplos usando la API de CloudFlare
https://www.cloudflare.com/docs/client-api.html

La nueva API de CloudFlare es la v4:

https://api.cloudflare.com/


La nueva API permite cambiar los valores por:


  • Zones (Zona, dominios, This Website) Usando https://api.cloudflare.com/client/v4/zones/xxxxx/
  • Usuario (Todos los dominios, All your websites) Usando https://api.cloudflare.com/client/v4/user
Ejemplo anterior usando la nueva API:

#!/bin/sh
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/xxxx/settings/security_level" \
-H "X-Auth-Email:xxxxx@elhacker.net" \
-H "X-Auth-Key: xxxxx" \
-H "Content-Type: application/json" \
--data '{"value":"under_attack"}'
Cuando bajen las cargas podemos poner de nuevo en "norma"l con --data '{"value":"low"}'

Otro ejemplo: se puede poner un País, en este caso España con la protección JavaScript Challange:

#!/bin/sh
curl -X POST "https://api.cloudflare.com/client/v4/zones/xxxxx/firewall/access_rules/rules" \
-H "X-Auth-Email: xxxxx@elhacker.net" \
-H "X-Auth-Key: xxxxxxx" \
-H "Content-Type: application/json" \
--data '{"mode":"js_challenge","configuration":{"target":"country","value":"ES"}}'
Podemos luego poner el mismo país en la lista blanca (Whitelist) con "mode":"whitelist",

Aquí puedes configurar el TTL del "Challenge Passage"

Puede especificar el tiempo que se permite a un visitante el acceso a su sitio luego de completar con éxito un reto (como un CAPTCHA de). Una vez transcurrido el TTL el visitante tendrá que completar un nuevo desafío. Recomendamos a 15 - 45 minutos y ajuste intentaremos honrar cualquier ajuste por encima de 45 minutos. Se puede llegar a la opción de desafío Page TTL yendo a: Settings-> CloudFlare Settings-> Configuración de seguridad

Ejemplo de gráfica de ataque en CloudFlare (Analytics - Dashboard)


  • 50 millones de hits (peticiones)
  • 310gb de tráfico (transferencia) en un día.


5 millones de hits por hora

60Gb de Ancho de banda por hora (Bandwidth)


Nivel de Cacheo (Rendimiento)


Caching level
Adjust your caching level to modify CloudFlare's caching behavior. Learn more…
Aggressive: http://elhacker.net/pic.jpg?with=query
Simplified: http://elhacker.net/pic.jpg?ignore=this-query-string
Basic: http://elhacker.net/pic.jpg






Panel de control (Threat control) ahora llamado IP Firewall

CloudFlare permite banear a la cantidad de ip's que quieras, países enteros, miles y millones de ip's y podrán seguir entrando y visitando tu página web gracias a CloudFlare, ya que si entran usando CloudFlare las ip's que se conectan al servidor web son todas de CloudFlare 




Web Application Firewall (WAF)

 Web CloudFlare Application Firewall detiene los ataques en tiempo real como la inyección SQL, cross-site scripting (XSS), los comentarios no deseados y otros abusos en el borde de la red. Los ajustes por defecto incluyen cobertura para las vulnerabilidades fundamentales de OWASP. Usted puede activar o desactivar reglas individuales a continuación.

Permite CloudFlare para CMS y motores PHP


  • CloudFlare Plone
  • CloudFlare Php
  • CloudFlare Whmcs
  • CloudFlare Joomla
  • CloudFlare WordPress
  • CloudFlare Flash
  • CloudFlare Drupal
 Reglas OWASP

  • OWASP ModSecurity Core Rule Set 
  • OWASP Protocol Violations
  • OWASP Bad Robots 
  • OWASP Protocol Anomalies
  • OWASP Slr Et PhpBB Attacks
  • OWASP Request Limits
  • OWASP HTTP Policy
  • OWASP Generic Attacks
  • OWASP XSS Attacks
  • OWASP Slr Et SQLi Attacks
  • OWASP Slr Et Lfi Attacks
  • OWASP Slr Et WordPress Attacks
  • OWASP Slr Et XSS Attacks
  • OWASP Common Exceptions
  • OWASP Slr Et RFI Attacks
  • OWASP Tight Security
  • OWASP Trojans
  • OWASP Slr Et Joomla Attacks
Ejemplo "CloudFlare Specials"

  • Empty User-Agent
  • IE6 Binary POST Botnet
  • CtrlFunc Botnet
  • Numbers Botnet
  • Uppercase Letters Botnet
  • Six or more numbers
  • Missing or Empty User-Agent and Referer
  • Generic LFI against common paths
  • Newsletter Tailor RFI
  • Generic RCE against common commands
  • SQLi probing
  • SQLi attempt
  • SQLi probe
  • Request arguments containing NUL byte
  • 80 legs crawler
  • Filter out any HTML links
  • Block X-Forwarded-Host header
  • Block requests on non standard ports
  • Block requests to version control systems
  • Block Wow! Signal Comment Bot
  • Generic LFI against common paths
  • Request arguments containing NUL byte (nyet.gif (PUT request))
  • Generic RCE against common commands
  • Common DDoS flood
  • Empty User-Agent
  • Missing or Empty User-Agent and Referer


Personalización de CloudFlare (Custom Errors)

Con el plan Pro y superiores se pueden personalizar las páginas de "error" o avisos que se muestran a los usuarios de nuestra página web cuando ocurre un error, en vez de usar la plantilla por defecto que usa CloudFlare

Instrucciones:
  •      Construye tu página personalizada, y ponlo en línea. El uso del token se requiere como se indica.
  •      URL de entrada de su página personalizada, que puede estar alojado en cualquier lugar.
  •      Vista previa para revisar su página tal como aparecerá a sus visitantes, o publicar en subir a la red de CloudFlare.


Tokens


Tokens son de texto simple en el código HTML (:: :: CAPTCHA_BOX) que se sustituyen por módulos predefinidos en su página publicada. Se necesitan algunos tokens; estos se enumeran a continuación el campo correspondiente a continuación.


Token list


::CAPTCHA_BOX::
Displays a styleable CAPTCHA on pages questioning the human-ness of a visitor.
::ALWAYS_ONLINE_NO_COPY_BOX::
Message explaining that Always Online has no cached copy of the requested page.
::IM_UNDER_ATTACK_BOX::
Message explaining that the site is under attack.
::CLOUDFLARE_ERROR_1000S_BOX::
Message explaining that a CloudFlare 10XX error has occurred.
::CLOUDFLARE_ERROR_500S_BOX::
Message explaining that a 5XX error was received from the origin.

0 comentarios :

Publicar un comentario en la entrada

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.