Proxy Invertido usando Squid para cualquier servidor WEB ( Apache, IIS, ETC )

En el articulo anterior de el fracaso de Anonymous contra Iniciativa México, un comentario proveniente de Armando, me pregunta si la cueva esta preparada para un ataque de Anonymous.

Es muy difícil prepararse para millones de conexiones, no se trata de no saber como defender la cueva, se trata de infraestructura y dinero, el conocimiento lo tengo, aunque no tanto dinero como para armar una infraestructura como la de televisa, aquí voy a mostrar como armar un sitio distribuido con proxy inverso, la combinación que puso en jaque a Anonymous, según sus propias declaraciones. Sin embargo con mis conocimientos y las redes que tengo bajo mi control creare la distribución de carga junto proxy invertido, anonymous no pudo con 5 servidores distribuidos, yo solo usare 3 por que es lo que tengo en este momento disponible a la hora de escribir el articulo.

Requerimiento 1

1 Configurar tu servidor WEB para escuchar en un puerto diferente al 80, yo usare en este articulo el 85, el puerto 80 lo usara el SQUID para Proxy Invertido

2 evitar que las conexiones lleguen al puerto 85 de forma directa, solo los proxys deben alcanzar este puerto, si es posible por medio de VPN, para este ejemplo no usare VPN, pero sería lo ideal

3 Los usuarios ni los atacantes deben conocer la IP real del servidor, en este caso no voy a ocultarla, la ip real al momento de escribir esto es 189.204.51.51, pero en una zona militarizada, no debe conocerse, por eso se usan VPN ya que todos los atacantes están ciegos, no saben donde está el servidor realmente y como le paso a Anonymous, intentaran atacar IPs al azar, pero son superficiales, jamás tocaron la ip real, no la conocen ni la conocerán

Requerimiento 2

Contar con los servidores a los cuales de preferencia, se les debe instalar GNU/Linux y el software de proxy inverso, yo uso SQUID, se configuran de forma similar, según el caso en el archivo squid.conf

http_port 80 accel defaultsite=www.lastdragon.net vhost
forwarded_for on

cache_peer 189.204.51.51 parent 85 0 no-query no-digest originserver name=apache login=PASS
acl sites_apache dstdomain www.lastdragon.net lastdragon.net
acl our_sites dstdomain www.lastdragon.net lastdragon.net
cache_peer_access apache allow sites_apache

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl CONNECT method CONNECT

http_access allow our_sites

http_access allow manager all
http_access allow manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all

access_log /var/log/squid/access.
cache_mgr david@lastdragon.net

Repites la configuración que de hecho será idéntica en cada servidor que vayas sumando para distribuir la carga, desde 2 hasta N cantidad

Requerimiento 3

Configuración de tu DNS como round robin para que resuelva en cada vez una de las ips del arreglo, cada ip es uno de los servidores distribuidos

Para este articulo la configuración es de 3 servidores para distribuir la carga

Non-authoritative answer:
Name: www.lastdragon.net
Address: 189.204.51.51
Name: www.lastdragon.net
Address: 75.125.15.77
Name: www.lastdragon.net
Address: 174.123.118.202

Video demostrando la situación.

Otros beneficios que ocurren al usar proxy inverso en sitios distribuidos, cada Proxy almacena un cache de la pagina WEB que despacha, incluso si es un proxy inverso, esto significa que el Squid no va a molestar al servidor WEB, mientras la pagina no cambie, cada vez que haga un cliente una consulta, será despachada directamente por el proxy dejando fresco al servidor WEB, si recibe un ataque SYNCOOKIE, será el servidor WEB quien reciba de frente el golpe lo mismo con conexiones TCP, si estas no son validas para un servidor WEB, el Proxy no las transfiere al servidor WEB, por lo que se mantiene muy fresco y sin estrés el servidor WEB, esta protección es exponencial, mientras mas proxys inversos estén arreglados para un sitio, este sitio soportara mejor los ataques DDoS

Durante unos días estará funcionando el Proxy Inverso en la cueva del dragón con carga distribuida.

17 Comments

Add a Comment

Comment spam protected by SpamBam