Probado en CentOS-5 y CentOS-6 con tal de que la distro tenga un módulo de iptables llamado "string" esto funcionará
me lo pidió un amigo hoy y realmente no lo tenía previsto.
La idea es que sí, en el squid puedes bloquear de una u otra forma el sitio facebook.com (url_regex, dansguardian, etc), sin embargo los usuarios han descubrierto que si ponen https, no les bloquea el facebook.
Por qué ocurre esto? porque el proxy transparente que es lo que normalmente usas para que los usuarios sean forzados a pasar por el squid, solamente atiende el puerto 80, y no otros puertos, por ejemplo el 443.. y pum, se te escapan descaradamente.
Hoy buscando en google, y rebuscando, al final encontré el tema, cómo le solucioné?
iptables -I FORWARD -p tcp --dport 443 -m string --string 'facebook' --algo bm -j DROP
y listo, intenta ahora navegar a facebook usando https:// para que veas. El http lo manejo desde el squid.
Si tuvieras un usuario (192.168.1.123) que TENGA que usar facebook, pones debajo:
iptables -I FORWARD -s 192.168.1.123 -p tcp --dport 443 -m string --string 'facebook' --algo bm -j ACCEPT
Si quieres le controlas también el puerto 80... pero no sé, prefiero el squid para eso, quizá son viejuconadas o quizá me da pereza poner dos puertos en una línea de iptables