Proxy

Bloquear Ultrasurf en proxy transparente

AdjuntoTamaño
Icono de texto plano Bloqueando con IPTABLES2.65 KB

Programa UltrasurfEs verdad que la libertad a la información debe ser un derecho de todos, sin embargo tambien cumplir el trabajo encargado en el área donde uno labora es un deber. Sabemos que hay derechos y deberes, a pesar de esto hay personas que ignoran esta realidad y durante el espacio para hacer su "trabajo" se dedican a utilizar recursos para "perder el tiempo".
Muchos de nosotros hemos utilizado el Proxy Squid en el sistema operativo GNU/Linux y sabemos que se puede bloquear el acceso a diferentes sitios web a través de la creación de ACLs y dar privilegios a unos usuarios mas que a otros, sin embargo no podemos analizar las conexiones seguras debido a su naturaleza.
Cabe indicar que está publicación esta basada en la distribución Linux Debian Squeeze y Squid 2.6.

Problema

Hoy en día existen programas como el Ultrasurf que le permite a un usuario pasar por alto los controles establecidos desde una ACL en el PROXY, esto lo realiza este programa utilizando la conexión del puerto 443 (HTTPS) lo que se refiere a las conexiones seguras, con esto este programa garantiza que no se analizará el tráfico que circula por el proxy y se podrá conectar a servidores proxy anónimos en Internet y navegar con toda libertad, muchos pensarán que seria mejor bloquear las direcciones de esos servidores anónimos pero creanme es muy larga la lista.
Lo podemos observar de la siguiente manera:
tcpdump -i eth0 host 192.168.1.10 and port 443
Antes de proseguir es necesario especificar que debemos instalar el paquete tcpdump. La interface eth0 se refiere a la conexion de intranet que da el servicio de Internet a nuestros usuarios.

Solución

Quiza para algunos la solución que voy a sugerir no es una de las mejores sin embargo funciona a la perfección, la solución pasa por deshabilitar el puerto 443 a traves de IPTABLES con el siguiente comando
iptables -A FORWARD -p tcp --dport 443 -j DROP

Con la regla antes mencionada evitamos que se realice cualquier conexión segura, sin embargo existen sitios en donde si queremos que se pueda accesar, sitios de instituciones de gobierno y bancos.
para esto podemos habilitar antes de la regla antes mencionada los IPs que tendrán acceso al cualquier sitio seguro, esto lo podemos hacer con la siguiente regla:
iptables -A FORWARD -s 192.168.1.10 -p tcp --dport 443 -j ACCEPT

Pero talvez se nos presenta otro problema el tener que ingresar muchas direcciones para que tengan acceso a sitios seguros, entonces para esto habilitamos los sitios que necesitan los usuarios en general y que son de competencia de su trabajo, esto lo hacemos de la siguiente manera:
iptables -A FORWARD -s www.iess.gob.ec -p tcp --dport 443 -j ACCEPT

Muchos diran que quieren habilitar servicios para los correos electrónicos como gmail, hotmail y yahoo y que estos disponen de muchas direcciones y es tedioso tener que ingresar todas, para esto podemos habilitar un rango de direcciones utilizando lo siguiente:
iptables -A FORWARD -p tcp -m iprange --dst-range 74.17.204.1-74.17.204.200 --dport 443 -j ACCEPT

Es decir identificamos las IPs que utiliza el gmail y habilitamos su rango con esto garantizamos el acceso al servicio y en una sola linea.

Identificando IPs a habilitar

La forma en como podemos identificar las IPs que esta accesando el usuario y son necesarias se lo puede hacer de la siguiente manera:
tcpdump -i eth0 host 192.168.1.10 and port 443

y obtendremos algo como lo siguiente:

09:01:44.090970 IP 192.168.1.123.47708 > by132oim.mail.services.live.com.https: S 2047155850:2047155850(0) win 5840 09:01:50.091610 IP 192.168.1.123.47708 > by132oim.mail.services.live.com.https: S 2047155850:2047155850(0) win 5840 09:02:02.094537 IP 192.168.1.123.47710 > by132oim.mail.services.live.com.https: S 2369713159:2369713159(0) win 5840 09:02:05.093104 IP 192.168.1.123.47710 > by132oim.mail.services.live.com.https: S 2369713159:2369713159(0) win 5840 09:02:11.093700 IP 192.168.1.123.47710 > by132oim.mail.services.live.com.https: S 2369713159:2369713159(0) win 5840 09:02:23.096878 IP 192.168.1.123.47711 > by132oim.mail.services.live.com.https: S 2698426699:2698426699(0) win 5840 09:02:26.095191 IP 192.168.1.123.47711 > by132oim.mail.services.live.com.https: S 2698426699:2698426699(0) win 5840

Luego que nos obtenemos el dominio como en algunos casos el gmail procedemos a copiar esa linea y hacemos lo siguiente:
host by132oim.mail.services.live.com

Espero esta publicación sirva para aliviar el dolor de cabeza de mas de un administrador, cualquier sugerencia o comentario es bienvenida.

PD: Al final voy a adjuntar un archivo con reglas de iptables para habilitar gmail, hotmail, yahoo.

Secciones: