Deseo bloquear algunos sitios web que también se ejecutan en https, como Facebook, Twitter y Gmail, en mi organización. Se supone que Squid no se debe usar aquí según las órdenes de la alta gerencia. Podemos usar el paquete Untangle Lite y iptables
.
¿Hay alguna otra opción además de Squid para hacer esto? También iptables
sería útil alguna regla para bloquear este tipo de tráfico.
encontré esto
iptables -t filter -I INPUT -m string --string facebook.com -j LOG --algo bm
iptables -t filter -I INPUT -m string --string facebook.com -j REJECT --algo bm
pero https todavía funciona en máquinas, excepto en la máquina local.
Respuestas:
En lugar de hacer coincidir en función de la URL, intente hacerlo en función del contenido del certificado.
También puede coincidir con la huella digital, pero si el destino cambia o actualiza su certificado, invalidará su regla.
fuente
nat
tabla (y no hay una cadena INPUT en la tabla nat), creo que te referías afilter
eso. Además, existe una posibilidad (muy) remota de que coincida con los paquetes donde 443 es el puerto del cliente-p tcp
la regla, esto no parece ser algo útil ..El firewall no puede controlar a qué URL HTTPS está intentando acceder el cliente, porque la URL está encriptada. El firewall solo puede controlar a qué sitios se está conectando el cliente, utilizando direcciones IP, pero esto no ayuda si las versiones HTTP y HTTPS del sitio están en la misma URL (e incluso si no lo están, tendría para mantener una gran lista de direcciones IP).
La única forma realista de bloquear HTTPS es bloquearlo por completo. Insista en que todas las conexiones deben ser HTTP válidas (es decir, el cliente comienza enviando una
HTTP
línea, etc.). Esto no se puede hacer solo con IPtables, necesita un proxy real compatible con el protocolo, como Squid. (No sé de qué es capaz Untangle Lite).Puede bloquear la mayoría del tráfico HTTPS bloqueando el tráfico saliente al puerto 443, ya que casi todos los servidores HTTPS están en ese puerto. O, siguiendo un enfoque de lista blanca, solo permita el tráfico saliente al puerto 80 (el puerto HTTP normal).
Un enfoque diferente sería proxy de todas las conexiones HTTP y HTTPS. Entonces puede hacer coincidir por URL. Esto requiere llevar a cabo un ataque man-in-the-middle contra los clientes. Puede hacerlo si implementa su propia autoridad de certificación en todas las máquinas cliente y la registra allí como una raíz de confianza. Esto puede considerarse poco ético.
No importa lo que haga, determinados usuarios configurarán un proxy fuera de su entorno y ejecutarán IP sobre HTTP o algo así.
Parece que está intentando solucionar un problema social con medios técnicos, que casi nunca funciona, o está haciendo todo lo posible para implementar un requisito tonto de la administración (en cuyo caso, optaría por bloquear el puerto 443, tal vez solo por ciertas IP, lo que le permitiría informar que ha hecho su trabajo, sin importar cuán inútil sea).
fuente
Sé de una opción.
Si tiene servidores DNS internos para usar, coloque algunas referencias estáticas en los datos de su zona de TLD que resuelvan los dominios (que no desea establecer las conexiones externas) a solo 127.0.0.1. De esta manera, todos los hosts que usan el DNS central dentro de su red resolverán los dominios (facebook.com/twitter.com per se) en la dirección de bucle invertido, lo que no llevará a ninguna parte.
Esto funcionará si tiene un control autorizado total sobre la configuración de resolución de máquinas cliente de su red. Si las estaciones de trabajo / clientes tienen permisos para cambiar / editar / etc / hosts o /etc/resolv.conf, entonces pueden eludir esta opción.
fuente
/etc/hosts
archivo. Por ejemplo:127.0.0.1 www.facebook.com
Una opción es bloquear las rutas de agujeros negros a los bloques de red: (Los listados están para FB)
fuente
El filtro de contenido simple no puede bloquear el sitio SSL.
Use herramientas de protección contra intrusiones como snort / suricata.
Ejemplo de regla IPS : para bloquear URL de SSL para una dirección IP específica.
drop ip any 443 -> 192.168.3.30 any (content:".facebook.com"; msg:"Simplewall Ssl block for User30 : Urls => .facebook.com " sid:26648513;rev:1;)
drop ip any 443 -> 192.168.3.30 any (content:".fbcdn.net"; msg:"Simplewall Ssl block for User30 : Urls => .fbcdn.net " ;sid:11469443;rev:1;)
drop ip any 443 -> 192.168.3.30 any (content:".youtube.com"; msg:"Simplewall Ssl block for User30 : Urls => .youtube.com " ;sid:13989722;rev:1;)
Descargar Simplewall : en las reglas de política de simplewall compartidas por Squid + Suricata IPS.
fuente
Debe poner esto en la cadena FORWARD, por ejemplo
Afectará a otros sistemas en la red, excepto el firewall.
fuente