1
Router que pueda filtrar dominios con https

Solved 3 Respuestas 110 Views
Hola

Tengo varios routers instalados con OpenWRT o con DD-WRT o con Gargoyle (una especie de front end de OpenWRT).

Estoy necesitando armar un filtro por el cual sólo se pueda acceder a determinados sitios webs y no se puedan acceder a todos los demas (o sea, un "Deny All", con sus correspondientes excepciones). En otras palabras, que los usuarios sólo puedan ingresar a los sitios de los bancos, de la afip, de sus clientes o proveedores, etc. Y a nada mas.

En principio, esto lo logro hacer fácilmente con las herramientas que traen estos firmwares. PERO en todos los casos me surge el mismo problema: Si el dominio es accedido por https, esta regla deja de funcionar.

Y, claro, resulta ser que los sitios que más se desea que no sean accedidos utilizan ese protocolo, sin ir más lejos: youtube.com, facebook.com o pokerstars.com

En el OpenWRT he instalado el tinyproxy, (que se autodenomina "light-weight HTTP/HTTPS proxy daemon") pero el resultado es el mismo, las urls de los sitios accedidos con https no son filtrados.

Por el momento, implementé un workaround poniendo en el DNS de los routers aquellos dominios que definitivamente no quiero que sean accedidos, y apuntando al 127.0.0.1 (o similar).

La pregunta es: Pudo alguien poder hacer andar algun tipo de proxy (o similar) que corra dentro de un router y que permita el filtrado por nombre de dominio aún por HTTPS?

Saludos

Dante

 

Resulta que, si bien en todas estas implementaciones puedo poner filtros

3 Respuestas

0
Mejor respuesta
La forma mas simple es usar directamente IPTables con el string a bloquear, aunque te recomendaría fijarte porque si ponen la IP se lo saltan, así que junto a un fakeDNS sería la solución completa:

iptables -I FORWARD -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j DROP

Revisalo, lo arme de memoria pero debería andar con HTTPS

Avisa como te fue
respondido por Vampii (1,690 puntos) Jul 31, 2015
seleccionada por dantecomar Ago 1, 2015
2Comentarios
comentado por dantecomar (210 puntos) Jul 31, 2015
Esto parece que funciona!

El string que utilicé (en el OpenWRT) es:

iptables -I FORWARD -p tcp --dport 443 -m string --string "poker" --algo bm -j DROP

Voy a seguir investigando por este lado, para tratar de hacerlo más "configurable". Pero parece que va por acá...
comentado por Vampii (1,690 puntos) Ago 1, 2015
Dantecomar:

Insisto con lo de "La forma mas simple es usar directamente IPTables con el string a bloquear", y lo del fakeDNS. Es parte de la filosofia KISS.
Es dolorosamente obvio que SOLO pueden usar tus DNSs y no los que los users definan. La seguridad es un proceso, no un producto. Lo demas de espiar SSL y otras aberraciones muy poco profesionales que propuso @anonimo, coincido con @Qlixed con lo de "La solucion en esos casos es implementar un esquema de proteccion de perdida de datos (DLP) serio, y no algo a los ponchazos".

Los autos tienen los motores adelante porque los caballos iban al frente de los carros.

Dejen de "administrar quiosquitos" proponiendo soluciones caseras, magicas o pseudocientificas y sean mas profesionales, que asi ganamos todos, aparte es mas facil de mantener.
1
El tráfico HTTPS va encriptado, por lo que el control de esa navegación sólo te va a ser posible si interrumpís de alguna manera esa encriptación.

En donde yo laburo tenemos un firewall que les hace Proxy SSL a mis usuarios, es genial. Es un man in the middle. El router le hace creer al servidor web que él es el cliente, desencripta, controla, permite o deniega, vuelve a encriptar* y le manda tráfico HTTPS de nuevo al cliente. Divide el túnel en dos.

 

*El equipo por default viene con un certificado propio para volver a encriptar, y los navegadores te tiran el warning de que el certificado que viene con ese HTTPS no es "el de Google.com", por ejemplo. Así que te quedan dos opciones, o te tomás el laburo de meter la CA del certificado del firewall en los confiados por los navegadores, o (si tenés un dominio Windows) hacés que el firewall use un certificado emitido por una entidad certificadora de confianza. Esto último hicimos nosotros y anda genial: candadito verde y ni una queja, y registramos y controlamos todo tipo de tráfico.
respondido por anónimo Jul 31, 2015
6Comentarios
comentado por anónimo Jul 31, 2015
OK, era una opción más... en mis redes lo soluciono de esa manera. La otra es filtrar la lista de IP de Facebook.
comentado por anónimo Ago 1, 2015
Trabajo en una empresa seria. Se firma un acuerdo que les avisa a los usuarios de los términos en los que se conectan a Internet, y hay auditoría sobre quien se mete a ver los registros de navegación.
Es una empresa, no un ciber, si Rosita no quiere que le pueda ver el correo personal, que no lo abra en la oficina.
El no inspeccionar SSL deja la puerta abierta a peligros que algo más grande que una PYME no se puede dar el lujo de tener.
comentado por qlixed (10,630 puntos) Ago 1, 2015
@dantecomar cualquiera que entre a youtube por https es bloqueado, pero el proxy https tambien te permite hacer snooping de accesos como por ejemplo a el homebanking y otras cosas por el estilo, sensiblemente privadas.
Bloquear nunca es la solucion correcta, la unica forma correcta de resolver issues como ese es el cambiar la cultura corporativa.
Por ejemplo, en algunos lugares lo que implemente es usar el metodo de la autosensura:
1) Monitorear el uso de internet x usuario/IP.
2) Hacer publico el top 10 de usuarios de internet.
Eso en el 95% de los casos hace que la gente minimice el tiempo de boludeo.
Adicionalmente en las primeras etapas de implemetnacion se hacia un top tep por area y se le mandaba a el director/gerente, para que vea el tiempo de uso de internete de las jefaturas a cargo, y asi para arriba, eso hace que los jefes queden directamente expuestos y tengan una "charlita" con sus empleados directos para minimizar el tiempo de boludeo promedio.
comentado por qlixed (10,630 puntos) Ago 1, 2015
"anonimo" trabajas en una empresa seria... pero la solucion implementada es de la era industrial... como cuando el correo censuraba analizando carta por carta...
Tambien revisas los celulares, pendrives, bolsos y papeles cuando los empleados se van para que no tengas fugas de informacion?
La solucion en esos casos es implementar un esquema de proteccion de perdida de datos (DLP) serio, y no algo a los ponchasos.
comentado por dantecomar (210 puntos) Ago 1, 2015
Entiendo lo que decís. Pero te aclaro algo: lo del proxy https lo pensé como una probable solución, aunque no la ideal.

Para mí, lo ideal sería lo que propone (acá abajo), Vampii. O sea: filtrar por iptables y, como mucho, con fakeDNS. O sea, no me interesa en lo más minimo snoopear ni permitir ningun tipo de posible snoopeo. Simplemente que NO se utilice la red corporativa para uso no corporativo.
0
Todo es muy simple. Hecho con un servidor de seguridad:
1) Nos enteramos de direcciones IP de los dominios que necesitan ser resueltos.
2) Permite "caminar" a nuestros clientes en estas direcciones.
3) Permitir las consultas DNS de los clientes a nuestro router
4) Permitir algo más (si es necesario).
5) Prohíbe el resto del tráfico
respondido por YATV (330 puntos) Jul 31, 2015
2Comentarios
comentado por dantecomar (210 puntos) Jul 31, 2015
El problema de ese método surge con google y youtube.

Los usuarios tienen que poder ingresar a los IPs Google, porque utilizan Google Apps. Pero no tienen que poder ingresar a Youtube.

Entonces, surgen dos inconvenientes. El más importante es que Google y Youtube comparten rangos de IP, por lo que se hace imposible discernir uno del otro. Además, el rango de IPs de google y youtube es bastante amplio y cambiante.

De todos modos, este método lo uso actualmente para filtrar a Facebook, ya que su rango de IPs es relativamente fácil de conseguir y no suele cambiar. Pero no puedo hacer lo mismo para Youtube (por el problema con Google).

Es uno de los motivos por los cuales estoy intentando solucionar esto de otro modo.

Dante
...