Mini How-To Bloquear ULTRASURF con squid transparente+iptables

Tema: 

Hola a todos en el foro, estoy escribiendo este mini how-to para ilustrar a todas aquellas personas que como yo, no somos ingenieros en sistemas o tenemos conocimientos sobre seguridad.
Me imagino que como muchos, busque y busque y volvi a buscar informacion sobre como bloquear el famoso ultrasurf en un ambiente squid transparente.

Por ahi he leido que no se puede, que para bloquear ultrasurf debe de ser sobre un ambiente squid por autenticacion, o squid por ip de usuario, o squid por mac-address + ip de usuario, etc...

Además he leido tutoriales, how-to's, manuales, etc. a medias, es decir vienen incompletos, no funcionan o no te dicen todos los pasos cosa que en lo personal desespera porque no entiendo muchas cosas...

Pues bien, yo si pude bloquear ultrasurf por squid transparente, y sitios https y voy a poner los pasos que realice.

Obviamente cada uno deberá de tener su configuracion de squid modo transparente con todas sus reglas o acl o archivos para acl ya configurados, funcionando y filtrando correctamente

MI PROBLEMATICA

Actualmente tenemos en el trabajo un servidor ubuntu server 11.04, squid transparente y las direcciones ip asignadas por dhcp.

Cuento con 2 rangos de red para cada grupo de trabajo, es decir, los usuarios a los que se bloquea el acceso a sitios no permitidos estan sobre el rango de red: 172.16.9.0 al 172.16.9.255

Los usuarios sin restricciones o jefes de la oficina pueden navegar libremente y estan sobre el rango de red: 172.16.0.100 al 172.16.0.150

Pero dentro del rango de red de las personas que se les bloquea ciertas paginas, existen 2 o 3 pelandrufos que pensaron podian usar el ultrasurf para pasar por alto la seguridad de la red y navegar por su feis bus, twitter, youtube o descargar cualquier programa.

Entonces vino la tarea de investigar cómo demonios bloquear el puerto 443 que es el que usa ultrasurf para salir al exterior y con esto bloquear a estos pelandrufos.

Pues bien, la solucion viene de la siguiente manera:

1.- Bloquear el puerto 443 para ese rango de red. [quote]Pero si el puerto 443 esta bloqueado, que pasa con el correo, bancos, instituciones, etc?[/quote] pues bien, aqui esta parte de la solucion: se tiene que ir abriendo cada uno de los sitios que vamos a necesitar de la siguiente forma:

Por ejemplo:

// En el script de iptables se debe de dar de alta cada sitio que queremos accesar de la siguiente manera:

# GOOGLE GMAIL
iptables -A FORWARD -p tcp --dport 443 -m iprange --src-range 172.16.9.0-172.16.9.255 --dst-range 74.125.0.0-74.125.255.255 -j ACCEPT

[quote]Aqui lo que hice fue aceptar las conexiones al exterior por el puerto 443, al rango de red 172.16.9.0 al 172.16.9.255 hacia el rango de red que usa google, youtube, gmail, que a fin de cuentas son los mismos. Estos rangos de ip los encontre de la siguiente forma:

abri una terminal y puse "ping www.google.com" (obviamente sin las comillas) y me salio la ip de busqueda. Luego me fui a www.arin.net y le puse en el buscador que aparece arriba a la derecha esa direccion ip y me salio el rango de red, que fue el que puse en la regla de iptables anterior.
[/quote]

2.- Postariormente se debe de bloquear el puerto 443 para ese rango de red, para evitar que ultrasurf se conecte a sus servers y navegue libremente, lo cual hice de la siguiente forma:

# BLOQUEAR 443 PARA RANGO A RED DE PERSONAS CON BLOQUEO
iptables -A FORWARD -p tcp --dport 443 -m iprange --src-range 172.16.9.0-172.16.9.254 -j REJECT

[quote]Esta regla en lo personal la puse despues de aceptar las conexiones al puerto 443 de google, para posteriormente cerrar el puerto.[/quote]

Me imagino que la primera regla lo que hace es aceptar las conexiones a las ip de google por medio del puerto 443 y todas las ip que no pertenezcan al rango de ip's de google, por defecto se rechazan por medio del cierre del puerto.

De esta forma se puede ir añadiendo todos aquellos sitios que necesitemos, para ser accesados por medio de conexiones seguras, https o puerto 443...

Claro, es un trabajo de ir buscando cada uno de los rangos de ip que necesitamos accesar, y finalmente el ultrasurf es bloqueado... jejejeje

Espero haber sido claro y me pongan sus comentarios al respecto de este mini how-to.

Un saludo para todos

POZOLERO

Comentarios

Hey muy buena la solucion,

Imagen de falcom

Hey muy buena la solucion, ahora se me ocurren varias cosas.
- Muy tedioso ir averiguando ips y rangos de ips de diversos sitios seguros q en la mayoria de casos son bastantes (bancos/webmails/instituciones del estado etc.), ademas estos rangos cambian frecuentemente de acuerdo al pais en donde te encuentres o x redundancia de los mismos sites. (un problemon en una empresa/institucion grande con mas de 400 users)
- Una solucion definitiva te indicaba es implementar en tu kernel, Layer 7, entonces con una simple lines en tu script de iptables bloqueas el famoso ultrasurf.
aca de dejo los links para q lo hagas
http://www.ecualug.org/2009/07/12/blog/razametal/debian_kernel_26301_l7filter_ipp2p thnx raza!
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=16489&forum=40
Aca la lista de programas/protocolos q puedes bloquear, como vez es inmensa y mucho mas versatil
salu2 y gracias de nuevo x el aporte!!
PD> Haber si uno de estos dias q tenga tiempo, pongo el How TO

Gracias por el tip...

Fijate que habia leido aqui mismo sobre implementar layer 7 en el kernel de linux, pero no entendi mucho, ahora que pones la solucion al respecto, me echare una leida para poder hacerlo de manera mucho mas facil...

Espero encontrar el apoyo en el foro para solucionar las dudas que salgan al respecto.

Saludos

falcom

Imagen de sistemas7

FALCOM seria relindo si ese how to lo actualizaras para la ultima version de Debian

Necesito Aprender !!