CentOS-6 ¿Cómo bloquear FaceBook con iptables?

Imagen de Epe

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

Comentarios

Suele pasar, quienes no

Imagen de deathUser

Suele pasar, quienes no consiguen trabajos en la industria del software y afines, terminan en la docencia, cuando solo quien tiene verdadera vocación y los conocimientos debería hacerlo, triste pero cierto, a la mierda la excelencia académica ...

bye
;)

El problema es que la

Imagen de Epe

El problema es que la universidad en muchos países se convirtió en un lugar donde manejabas "cajas negras"

A mi me revienta el estómago ver cómo enseñan a usar X programa.. y cuando pasen 15 años y ese programa ya no exista qué pasa?

eso es lo que es manejar una caja negra, no sabes lo de dentro, sino cómo manejar equipamiento, apretar palancas. Y por tanto nada de investigación en sí, todo es adquisición de tecnología a otros países sin fomento de investigación o tecnología local, no solamente porque no haya plata, sino porque el personal no se adaptó a investigar sino a utilizar tecnología cerrada y cuando se la quitan, ay ay ay.

Esto de manejar cajas negras no es para una universidad sino para otro tipo de centro de enseñanza como lo que en norteamérica se llaman colleges, por acá creo que es la enseñanza de 2do nivel.

La universidad significa "unovaaversidá", si no dá, no dá.. y es para personas que deseen investigar, o aprovechar sus conocimientos generales para crear nuevas tecnologías o aplicar sus conocimientos para generar ideas, etc... no es para manejar tecnología venida de otro lado solamente.

Ok, no se puede pretender esto del 100% de los graduados, aún de la mejor universidad, pero el objetivo es que al menos un pequeño porcentaje comience a cambiar el país.

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

EPE, probe en un centos 5.8

Imagen de falcom

EPE, probe en un centos 5.8 x86 (2.6.18-308.11.1) y no funca, el modulo string esta cargado, lo probe con

iptables -m string --help

lo testee en un proxy transparente y se demora un poco pero a la final ingresan los clientes! que podre estar haciendo mal??
x cierto en un centos 6x funciona perfecto!

centos 5.x

Pruebale separando origen (-s) y destino (-d) así:
iptables -I FORWARD -s 10.10.10.0/24 -p tcp -m string --string "facebook.com" --algo kmp -j DROP
iptables -I FORWARD -d 10.10.10.0/24 -p tcp -m string --string "facebook.com" --algo kmp -j DROP

remplaza 10.10.10.0/24 con tu propia estructura ip de la red.

Debería funcionar igual, si

Imagen de deathUser

Debería funcionar igual, si el paquete no hay para la 5.6 pues


yum -y update

Y listo ya tienes la última versión de la rama 5 (por demás recomendable) y aplicas el mismo procedimiento...

bye
;)

confirmado en centos 5x

Imagen de falcom

Haber si colocas esto en centos 5x

iptables -I FORWARD -s 10.10.10.0/24 -p tcp -m string --string "facebook.com" --algo kmp -j DROP
iptables -I FORWARD -d 10.10.10.0/24 -p tcp -m string --string "facebook.com" --algo kmp -j DROP

bloqueas el acceso a toda tu red el facebook, si colocas

iptables -I FORWARD -s 10.10.10.0/24 -p tcp --dport 443 -m string --string "facebook.com" --algo kmp -j DROP
iptables -I FORWARD -d 10.10.10.0/24 -p tcp --dport 443 -m string --string "facebook.com" --algo kmp -j DROP

tampoco funciona, si colocas

iptables -I FORWARD -p tcp --dport 443 -m string --string 'facebook' --algo bm -j DROP

tampoco funciona.... alguien mas...
0j0, q la ultima linea si funciona en centos 6x

lo unico malo de el string es que se acaban otros sitios web

Imagen de juandarcy2000

ejemplo si entras a un sitio que por desgracia casi todos hacen lo mismo que es llamar comentarios de facebook aunque sea discovery channel no se carga o se queda tratando de cargar el sitio web y no deberia ya que el busca el string facebook y eso hace que la experiencia de navegacion sea incomoda para muchos yo uso esta regla que les coloco abajo ademas del string para sembrarme los sitios de descarga como rapidshare y otros pero para facebook uso esto.

Aclaro no es una regla magica toca crear redes nuevas pero hombre al menos el 90% de las veces se cuelga y no logran cargar y cuando medio entran se les cae a medio camino porque se cambia de ip cada vez que miran un link nuevo talvez alguien se anima y agrega nuevas redes estos de facebook son un dolor de cabeza en redes corporativas a mi personalmente me choca ver empleados trabajando en facebook y sus tareas de oficina retrasadas yo les hago el favor de evitar que los despidan.

espero que alguien le sirva este script lo encontre en internet yo solo agregue nuevas redes y funca perfecto. y agregue que ip pueden usar facebook
coloquenla arriba de las reglas del firewall ahi cuentan y si agregan nuevas redes coloquen las redes nuevas talvez asi controlamos esta epidemia.


#facebook bloqueado totalmente
FACEBOOK_ALLOW="192.168.15.124 192.168.15.10 192.168.15.179 192.168.15.7 192.168.15.4"
iptables -N FACEBOOK

iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 66.220.144.0-66.220.159.255 --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 69.63.176.0-69.63.191.255 --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 204.15.20.0-204.15.23.255 --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 66.220.144.0-66.220.159.255 --dport 80 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 69.63.176.0-69.63.191.255 --dport 80 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 204.15.20.0-204.15.23.255 --dport 80 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 208.44.23.0-208.44.23.255 --dport 80 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 69.171.224.0-69.171.248.255 --dport 80 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 208.44.23.0-208.44.23.255 --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 69.171.224.0-69.171.248.255 --dport 443 -j FACEBOOK
## FACEBOOK ALLOW
for face in $FACEBOOK_ALLOW; do
iptables -A FACEBOOK -s $face -j ACCEPT
done
FACEBOOK_ALLOW_MAC="5C:B5:24:B6:7F:6E"
for face_mac in $FACEBOOK_ALLOW_MAC; do
iptables -A FACEBOOK -m mac --mac-source $face_mac -j ACCEPT
done
iptables -A FACEBOOK -j REJECT

ayuda

Disculpa estoy empezando a conocer un poco del iptable y tengo problemas con el firewall y encontre su respuesta y me parecio interesante pero tengo algunas dudas, por ejemplo todo el scrip se coloca como esta dentro del archivo de configuracion de iptables? obviamente cambiando las direcciones de red por las de mi segmento, pero va todo el scrip asi como esta o tengo que modificar algun parametro, de antamano mil gracias

Solo mira el formato del

Imagen de deathUser

Solo mira el formato del archivo de configuración de iptables y te darás cuenta de que no es así, lo que han puesto como ejemplo es un script para ejecutarlo desde la línea de comandos, por eso incluye el comando iptables al inicio de cada línea, sino, solamente tendrías las órdenes como "-A INPUT ... ", así que la respuesta es NO.

De echo, si te fijas hacia el final del script existen dos lazos for:

for face in $FACEBOOK_ALLOW; do
iptables -A FACEBOOK -s $face -j ACCEPT
done

Esta sintaxis es propia de BASH, por lo que no correrá en otro SHELL y menos desde el archivo de configuración de iptables.

bye
;)

Páginas