Bloquear facebook con IPCop + iptables

Se que bloquear facebook no me hace el administrador de redes más popular, pero yo solo soy la mano ejecutora, no el que dicta la sentencia.

Bloquear facebook no es sencillo, algunos usan la estrategia de squid, otros usando iptables, creo que lo mejor es usar varias estrategias.

Bloqueo mediante el proxy (squidGuard).

El bloqueo de proxy se logra usando el addon URL Filter, en la configuración del addon marque varias categorías, incluyendo socialnet.

categoría socialnet en URL Filter

Con esto será más que suficiente para bloquear el dominio de facebook y disuadir a algunos usuarios.

Mensaje que muestra URL Filter cuando una dirección ha sido bloqueada.

Si la vida fuera sencilla, con esto sería más que suficiente, pero los facebuadictos encuentran la forma de brincarse este bloqueo. Y es que tampoco es muy díficil, con entrar usando el protocolo https es más que suficiente debido a que el proxy no funciona en conexiones seguras. Por eso es necesario poner en acción algunos bloqueos con iptables.

¿Qué dirección IP Bloquear?

Lo primero es averiguar que dirección IP esta usando facebook, para eso use el comando nslookup

nslookup facebook.com
Server: 127.0.0.1
 Address: 127.0.0.1#53
Non-authoritative answer:
 Name: facebook.com
 Address: 173.252.110.27

Ahi nos dice que la dirección es la 173.252.110.27, pero como esa no es la única que usa facebook, tendré que bloquear todo un rango de ips.

Modificar el archivo rc.firewall.local

IpCop es un poco sensible en cuanto a las configuraciones personalizadas, si no se hace en el archivo correcto, cualquier modificación que se haga desde la página de administración las eliminará.

Para agregar reglas personalizadas se edita el archivo /etc/rc.d/rc.firewall.local y agregar las líneas de bloqueo con iptables.

La regla es muy sencilla, sólo hay que saber la dirección ip del cliente que se quiere bloquear, ejemplo:

iptables -I FORWARD -s direccion.ip.del.sentenciado -p tcp -d 173.252.110.0/18 -j DROP

Si se fijan usamos la dirección IP que nos da el comando nslookup hasta la tercera cantidad, al final se agrega un cero y la máscara de red /18 para bloquear todo un rango de direcciones ip.

Llegó el momento de agregar esta regla justo después de donde dice ## add your ‘start’ rules here.

#!/bin/sh
# Used for private firewall rules

# See how we were called.
case "$1" in
  start)
        ## add your 'start' rules here
        
    # Los desterrados sociales.
    
    iptables -I FORWARD -s ip.del.sentenciado.1 -p tcp -d 173.252.110.0/18 -j DROP
    iptables -I FORWARD -s ip.del.sentenciado.2 -p tcp -d 173.252.110.0/18 -j DROP    
    iptables -I FORWARD -s ip.del.sentenciado.3 -p tcp -d 173.252.110.0/18 -j DROP        


        ;;
  stop)
        ## add your 'stop' rules here

        ;;
  reload)
        $0 stop
        $0 start
        ## add your 'reload' rules here
        ;;
  *)
        echo "Usage: $0 {start|stop|reload}"
        ;;
esac

Archivo: rc.firewall.local

De esa manera se aplicarán las reglas cada vez que se reinicie IPCop.

El resultado será el siguiente:

El resultado de bloquear facebook con iptables

Este consejo se puede aplicar a una gran variedad de sitios y firewalls basados en iptables, espero que les sea de utilidad.

BOFH Foreveeer !!!!

122 comentarios en “Bloquear facebook con IPCop + iptables”

  1. Buenos dias , intereresante , una consulta en la opcion del sentenciado en ves de colocar toda la ip del sentenciado se podria colocar la ip de todo el segmento ?? si es asi oviamente nadie saldra pero si del segmento haya alguien a quien queramos habilitar cual seria la regla..

    Responder
  2. linux man.. yo lo trate de bloquear de esta manera:

    iptables -I FORWARD -s 172.16.1.0/24 tcp -d 173.252.110.0/18 -j DROP
    

    la ip 172.16.1.0./24 es mi red local.. pero igual salta.. que hice mal… podrías darme unos tips..

    Responder
  3. jajajaj que loco..soy…estuver apurado por eso lo coloque sin la p… esta claro en el comentario que puse falta una -p , pero en mi reglas del firewall si coloque jejej

    Responder
    • Mejor pega tus reglas en paste.linuxmanr4.com y comparte el enlace, este sistema de comentarios no sabe como tratar el código.

      Por cierto voy a editar tu comentario anterior 🙂

      Responder
  4. Que te parece si primero bloqueas una sola IP una sola para hacer la prueba de la regla y veamos si funciona… ok?

    Si lo hace, entonces ya veremos como hacer los ajustes a todo el rango de ips que quieres.

    Responder
  5. es lo que hice primero bloquear………….una sola ip en ves de todo el rango de la red. pero no me funciona alguna otra idea maeestro..¡¡¡

    Responder
  6. no pues si bloqueo el puerto https me estaria colocando.. la soga al cuello debido a que mis usuarios utilixzan las paginas de los bancos… lo que estamos haciendo contigo es bloquear la salida a face denegando la salida en destinos a sus ips cuando hago nslookup ne da esto 173.252.110.27
    Espero tus comentarios amigo. ¡¡

    Responder
  7. no puedo adjuntar imagen pero tengo log filter habilitado en advance proxy ,tengo dominios bloqueado y urls bloqueados con sus checks activados.. doctor….que puede estar pasando .. doctor..

    Responder
  8. Acabo de aplicarme las reglas, y si no es por el proxy no sale…me marca error de conexión, Vamos que conmigo funcionan.

    Estamos usando la misma versión de ipcop? yo tengo la 1.4.21 ¿Cuál tienes tu?

    Responder
    • Pues se me agotaron las ideas 🙂

      Comprobé las opciones por mi mismo y como puedes ver en este screenshot, el bloqueo funciona tanto en una conexión normal (http)

      bloque de facebook http

      Ya que me muestra un error del proxy.

      Y cuando lo intento por una conexión segura (https) simplemente no puede cargar la página porque agota el tiempo de conexión.

      bloqueo de facebook en conexiones seguras https

      Creo que estas cerca, pero no se que esta fallando, ¿No estará cargando facebook por el caché del navegador? …

      Responder
  9. Para que tengas un alcance te comento.. actualmente , mi re local es de clase C : 192.168.1.0, el ipcop tiene los addons como urlfilter, advproxy, calmaris y blackouf traffic 3.0 y su direccion del ipcop 192.168.1.1 ,dentro de esta red mi PC tiene asiganda por dhcp 192.168.1.169 .. en el cual estoy virtualizando con Wmware 2 mquinas virtuales el ipcop y un xp , dentro del ipcop tendo 2 redes .. green y red.. la red tiene la siguiente ip 192.168.1.174 y mi green tiene el segement de .172.16.1.0 .. en este segmento mi ipcop la siguiente direccion ip 172.16.1.254 con sub red 255.255.255.0 y mi xp virtual tiene la siguiente direccion ip 172.16.1.90 la cual he colocado la siguiente regla…..iptables -I FORWARD -s 172.16.1.90/24 tcp -d 173.252.110.0/18 -j DROP

    no estare cometiendo algun error te lo comento para descartar.. ..
    saludos desde ya…

    Responder
  10. ok linux man sabes he estado probando miles de formas y no m bloquean tu crees que lo salta porque el servidor principal no lo esta bloqueando ..???

    Responder
  11. Pues por algún lado se esta colando, igual y puedes desactivar todos los proxys (supongo que tienes un proxy transparente).

    Yo tengo la ventaja de que sólo tengo un ipcop y es el que resuelve todo el tráfico. Tu mezcla de equipos es muy rara,

    Responder
  12. bueno no era una mezcla sino que el ipcop virtual que esta dentro de mi pc…solo es una virtualizacion que stoy realizando y probando el ipcop en una maquina virtual .. para probar bloqqueando el facebook..
    ..

    Responder
  13. Hola Linuxman gran aportación lo del face.. En mi trabajo años atrás, el principal distractor en el trabajo era el messenger, el buscaminas, solitario etc. Hoy en día es básico controlar algunas redes sociales, ya que se han vuelto un distractor mayor; secretarias, jefes de oficinas, jefes de depto en lugar de trabajar sus 8hrs, trabajan 7 o menos tiempo por estar posteando o revisando su faceee… 😀 yo encontré esta forma de bloqueo esperando que sea de utilidad para ti y los amigos que seguidores tu página
    Saludos

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

    Con esta línea dejas libre todos los accesos https, y el uno que marca page not found es el Facebook
    Para twitter :

    iptables -I FORWARD -p tcp --dport 443 -m string --string 'twitter' --algo bm -j DROP
    
    Responder
  14. Tienes toda la razón, pero por alguna razón no lo puedo aplicar en la versión de iptables que tengo instalada actualmente en mi ipCop. Y por el momento no lo pienso actualizar a la versión 2 (si no esta roto, no lo arregles).

    Responder
  15. jaja solamente le he instalado su url filter su adv proxy , calamaris lo estoy haciendo funcionar como dns y dhcp este ipcop tiene una ip publica , luego ejecute lo que dice en tu blog spot y y desactive el adv proxy. pero igual sale.

    Responder
  16. linuxman , averigue estas ip de facebook te las pasoo doctor.

    31.13.64.1/20
    66.220.144.0/20
    69.63.176.0/20
    69.171.239.12
    69.171.255.12
    204.15.20.0/20
    173.252.100.27
    173.252.110.27
    173.252.112.23
    173.252.112.24

    Saludos

    Responder
  17. Funciona!!! jaja, gracias de verdad, todos aqui estan locos sin FB, yo tambien había probado la instruccion q publico Linixman pero no consideré que tengo iPCop v2.0.6, por lo tanto la sintaxis de iptables no funcionaba :S, de verdad te agradezco, saludos desde Mexico!!!!

    Responder
  18. Linux man , Lo probare recie he estador recargado de trabajo docto , sobre las ip he averiguado compartiendo con el blog , lo probare la ultima instruccion que me diste doc y te dejo mis comentarios Saludos desde Peru

    Responder
  19. bueno linux man acabo de probarlo desactive el adv proxy copie las reglas que me diste y sigue saliendo el otro addon que tengo es el calamaris. , he borrado la cache de mi navegador y nada.
    Estoy pensando.

    Responder
  20. disculpa , pero las unicas reglas que he aplicado son las de tu blog. llendo a la carpeta etc r.d firewall.local copie las dos reglas tal como lo muestra tu paste. luego guarde , limpie mi navegador y sigo saliendo. .. que otras reglas te refieres amigos linux man

    Responder
  21. gracias me sirvio de mucho los comentarios ya logre bloquear el facebook. ahora tengo una duda yo aplique esta regla

    iptables -I FORWARD -s 192.168.10.100 -p tcp -d 31.13.73.0/18 -j DROP

    y funciona a las mil maravillas la ip . 100 abre facebook ahora bien tengo un server dhcp que da rangos de 192.168.10.100 al 150 como puedo hacer para que esas 51 ip en la regla sin tener que hacer 51 reglas para cada ip.. puesto que necesito bloquear youtube, twitter y algunas que otras eso ya representaria hacer mas 200 reglas .. ayuda..

    Responder
    • Se que es engorroso, pero para este tipo de casos hago una hoja de cálculo en Libreoffice, en donde una celda es la que voy cambiando la dirección IP del cliente, luego arrastro lo demás hasta generar el número de reglas que deseo.. el resto es copiar y pegar.

      Este es un tema que ha habíamos tocado en comentarios anteriores, pero una vez que tienes estructurada la regla, hacer una hoja de cálculo y copiar los resultados no te lleva más de 10 minutos. ( http://paste.linuxmanr4.com/view/918f2560 )

      Responder
  22. Doc. Excelente informacion, he aprendido bastante; pero, como hago lo que mencionas “ejecutar el script rc.firewall.local”. He puesto todo lo que ha indicado, pero no se como iniciar los comandos. No puedo reiniciar ipcop 1.4.21 por que dejo sin conexion a toda la red XD Saludos

    Responder
    • Hola Fransois !!!

      Es muy sencillo, primero tienes que habilitar el acceso a ssh de tu servidor IPCop, esta opción esta en el menú Sistema.

      Luego, desde cualquier distribución de linux entras a tu servidor con el comando:

      ssh root@ip.de.tu.servidor -p 222

      Te pedirá la contraseña de root de tu servidor. Si estás usando windows entonces puedes usar el programa PuTTY sólo tienes que configurar la conexión (no se te olvide usar el puerto 222).

      Ya conectado a tu servidor solo tienes que teclear:

      /etc/rc.d/rc.firewall restart
      

      Para aplicar los cambios que has hecho al archivo, y eso es todo. 🙂

      Saludos !!!

      Responder
  23. Despues de semanas estudiando, ERES UN DIOS!!! Muchisimas gracias, imprimi manuales, lei foros, me queme las pestañas pues… Y en ningun lado me decia el “restart”…
    Si no es mucho pedir, bloquear toda la red excepto tales ip’s???
    Saludos

    Responder
  24. Tendrías que aplicar reglas a todas las ip’s menos a las que quieres privilegiar.

    Hay otro enfoque, pero es más complicado. Verás aquí le das permisos a todos y luego bloqueas a los que no quieres que tengas acceso a facebook.

    Hay otro plugin para ipcop que se llama Blockout Traffic que hace lo opuesto, primero bloquea todo y luego tu vas asignando grupos de permisos. Es como una especie de firewall para el exterior, es muy útil para asegurar instalaciones, pero también se lleva su tiempo para configurar los grupos y esas cosas. Te lo comento solo como una opción.

    Responder
  25. Ok, gracias doc, de todos modos somos 20 pc con ip fija, entonces no llevara mucho tiempo 😉
    Con respecto de lo de que se reinicie el server que tiene ipcop y se borre todo lo de iptables, es cierto?

    Responder
  26. El script rc.firewall se ejecuta durante el arranque, así que todas las modificaciones que hagas se cargarán en el próximo reinicio.

    Claro, a menos que se te olvide guardar el archivo 🙂

    Responder
  27. El restart funciona de maravilla DOC!!! Pruebas superadas, auto bloqueos, cambios de ip’s, inalambrico, alambrico, todo SUPERADO!!! De verdad muchisimas gracias, nadie como tu 😉

    Responder
    • Hola Buenas tardes.
      Tengo la versión 2.1.4 y no logro bloquear el facebook https: NO me ha funcionado lo que comenta el Doc. algún otro tip se los agradeceré a todos.
      Saludos..

      Responder
  28. Hola Hector, creo que la nueva versión de IPCop es más sencillo, yo nunca lo he hecho porque no tengo esa versión. Pero creo que ya soporta layer 7 (o L7) que hará un filtro por contenido. Busca algo por el estilo.

    Responder
  29. solo con iptables es posible bloquear facebook (https) o existe algun servidor linux que pueda realizar esa función de bloqueo.de manera rápida. Hago la pregunta ya que eso es facil para uno o 5 cmputadoras pero para un mediana empresa?

    Responder
  30. Hola Linuxman:

    Es un excelente tuto.

    Una consulta, se pueden leer/filtrar conversaciones de facebook con IPCop?

    De antemano gracias.

    Salu2…

    Responder
  31. Tengo una red con ipcop, pero no podía bloquear la pagina de facebook, pero gracias a este blog, he logrado conseguir la solución leyendo los comentarios de los que han consultados, por lo que observo el urlfilter no sirve de mucho con las paginas https. Gracias Saludos José Alberto desde Venezuela

    Responder
  32. este aporte e sirvió para bloquear, solo tenia la duda con el signo -‘- pero igualmente con el signo -“- funciona impecable, no tube ningun problema, sólo quedo con la duda, porque colocaste “- – algo bm” ??? es lo unico que me gustaría saber que me dejó inquietante… saludos!

    Responder
  33. hola master yo tengo el ipcop 1.4.21 y pongo las siguientes lineas
    iptables -I FORWARD -s 172.30.11.0/24 -p tcp -d 173.252.110.0/18 -j DROP iptables -I FORWARD -s 172.30.11.0/24 -p tcp -d 173.252.120.0/24 -j DROP
    iptables -I FORWARD -s 172.30.11.0/24 -p tcp -d 31.13.70.0/24 -j DROP

    esto es para bloquear el facebook , pero al iniciar el server ipcop muestra esas lineas con error desde la consola dice que no reconoce el command

    me podrias ayudar

    Responder
  34. Hola JBarrón,

    No es necesario reiniciar el servidor para aplicar los cambios.

    Podrías pegar el mensaje de error exacto ?

    Si gustas, puedes pegar el código en paste.linuxmanr4.com y luego pegar aquí el enlace para revisarlo.

    Saludos.

    Responder
  35. Hola, soy del Brazil, yo use:
    iptables -I FORWARD -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j DROP

    How open in lunch time???

    Responder
    • iptables -I FORWARD -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -m time –timestart 13:00 –timestop 17:00 -j DROP

      Con esta ya lo puedes dejar abrir a la hora de almuerzo

      Responder
  36. Hola, buenas tardes, como seria la sintaxis para que una ip si pueda accesar a facebook, tengo un equipo que es de uso de mercadotecnia y lleva el face de la empresa solo a esa ip quiero que tenga acceso al facebook

    Responder
  37. tengo una pregunta, que he buscado por todos lados, tengo a cargo cierta cantidad de PC, las cuales algunos tienen restringido ciertas paginas a otras no, como puedo bloquear un determinado rango de mac address paginas como facebook y mega ?

    Responder
  38. Que buen aporte Linuxman realmente logre bloquear facebook y youtube cosa que no podias. Aunque ahora esta de moda spotify me puedes ayudar para bloquear!!

    Responder
  39. Oye pudistes bloquear todos eso?, mi duda es a todos aplicastes estas reglas o a ciertos usuarios le bloqueastes estos entretenimientos. como lo hicistes. puedes apoyarme?

    Responder
    • Ciro, En este caso el bloqueo es solo a ciertos usuarios. Aunque te diré que este método lo dejé de usar porque facebook tiene varias direcciones ip. Por eso mejor utilicé las reglas del firewall que ofrece IPCop 2.

      Responder
  40. Hola que tal mi estimado linuxmanr4 una preg. fuera del tema este, mira tengo problemas para poder instalar el urlfilter….mas no se como instalar el squidquard 1.4 en el ipcop puedes apoyarme? por favor.

    Responder
  41. oye mi estimado linuxmanr4 disculpa cuanto me cobrarías por asesorarme para dar acceso a ciertos usuarios facebook o youtube, es decir que todos los usuarios tengan internet pero cierta ips no y de esta forma pueda controlar mas el ancho de banda

    Responder
  42. Hola Cirrus, por asesorarte por este medio no te cobro. Si tengo que meter mano personalmente entonces sí.

    De una vez te digo que no hay método 100% seguro. Al menos yo no lo he encontrado. Siempre hay variantes que hacen que los usuarios entren a facebook. Incluso si les llegas a bloquear la conexión, usan sus celulares con planes de datos propios y eso no lo puedes evitar.

    Otro detalle es que he intentado bloquear youtube y termino bloqueando también a Google. No he encontrado la forma de aislar sólo a uno.

    Saludos 🙂

    Responder

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.