Cuantas veces has querido bloquear facebook en tu red, y no lo consigues por completo, si instalas squid logras bloquear la direccion http://facebook.com, pero resulta que los usuarios son mas pilas y usan https://facebook.com y logran entrar y por mas bloqueos que pongas es imposible el https siempre logra pasar, pues aqui te dejo la solucion.

Primero necesitas lo siguiente:
-Un Servidor router linux para tu red
-Firewall iptables

Ahora vamos a bloquear el acceso a facebook

# iptables -I FORWARD -m string –string ‘facebook’ –algo bm -j DROP

Una mejor alternativa puede ser bloquear todas las peticiones por el puerto 443 del siguiente modo:

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

Con eso ahora intenta navegar a facebook y veras que no logras ingresar tanto por https como por http.

Si tus usuario tienen IP fija y quieres negar el acceso solo a uno en especial coloca la regla asi.

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

Listo con eso se acabaron tus problemas bloqueaste acceso total a facebook.

Fuente: www.ecualug.org:

Por Ernesto Perez.

MFCP!!!

50 comentarios

  1. Everardo

    Peroooo a los minutos permite la entrada. cierras el navegador., entras y no permite la carga de la pagina. pero a los minutos de estar intentando por si solo el navegador si entra., en mi caso a youtube. que podrá ser

    Responder
  2. Everardo

    Funciona., gracias

    Responder
  3. LALO2960

    Hola Mario Congo, comparto el mismo problema que Cristian! estoy utilizando UBUNTU 12.04 server e iptables v1.4.12, de igualmanera ingreso las lines de codigo que has proporcionado y se logra el bloqueo de facebook en chrome pero no en Firefox V. 29.01 alguna sugerencia? a otra persona en este blog le ha pasado ? y si es asi como lo resolvieron? Gracias y saludos!

    Responder
    • Mario Congo

      Hola Lalo.

      Mira la verdad la regla aplicada no es en base a navegador sino a nivel de IPtables por lo que no debería pasar, si vez a la mayoría le ha funcionado, pero ya que lo mencionas y son dos casos voy a verificar haber como les puedo ayudar en estos días ok.

      Responder
  4. katherine thompson

    Buenas, he probado el comando que se describe aqui pero igual sigue ingresando al facebook, que sera que estoy haciendo ma?

    Responder
    • Mario Congo

      Prueba de que manera estan ingresando si es por http o por https según eso sabrás que te hace falta bloquear.

      Responder
  5. alyonidi

    Hola!, por favor su ayuda con lo siguiente:
    tengo esto en iptables y esta bloqueado full navegacion hacia los sitios https …pero los usuarios autorizados tambien quedan bloqueados.

    # AUTORIZA HTTPS (facebook, youtube, twitter, etc.)
    iptables -I FORWARD -s IPPERMITIDA -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j ACCEPT

    # BLOQUEA HTTPS (facebook, youtube, twitter, etc.)
    iptables -I FORWARD -m string –string ‘facebook’ –algo bm -j DROP

    a que se debera?, mil gracias por su ayuda!

    Responder
    • Mario Congo

      Hola lo que sucede es que en tu caso debes bloquear por IPs para que el firewall deje pasar solo a los autorizados, en este mismo post esta como hacerlo miralo mas arriba.

      Responder
  6. hellboy

    hola que tal…al igual que Andres Muñoz…tambien sucede lo mismo…aber quien me puede ayudar…porfavor….
    iptables v1.4.7: option `facebook’ requires an argument

    Responder
  7. Andres Muñoz

    Cuando aplico el comando para bloquear un segmento en la red para solucionar este problema del facebook https que por cierto me va a volver loco me sale «bad argument 443»

    Este es el comando que estoy tratando de efectuar no se si tenga algo mal soy un total inesperto solicito de su amable ayuda

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

    Este firewall linux trabaja sobre una version SuSE Linux 11.2
    Webmin version 1.630 Kernel and CPU Linux 2.6.31.14-0.6-desktop on i686

    Espero me puedan colaborar..
    mi direccion de correo kasukijams arroba gmail.com

    Skype: andres.jams

    Saludos y muchas gracias

    Responder
    • Mario Congo

      Hola Andres el argumento esta bien es solo que tu falla esta en -dport 443, tienes un solo guion lo que sucede es que wordpress une las lineas y por eso en mi post no lo vez correctamente, en donde dice dport coloca dos guines es decir –dport 443 y lo mismo en –string ‘facebook’ ahi si te va a funcionar.

      En otras palabras tu regla iría así,

      iptables -I FORWARD -s 172.28.236.192-172.28.236.254 -p tcp (doble guin)dport 443 -m string (doble guion)string ‘facebook’ -algo bm -j DROP

      Responder
      • Andres Muñoz

        Hola hice como digiste pero ahora me salio esto y al parecer no toma el comando

        iptables v1.4.4: option `facebook’ requires an argument

        Pido disculpas la verdad de esto de linea de comandos muy poco o nada pero si me estoy viendo perjudicado por el acesso a los usuarios .

        Muchas Gracias Nuevamente Saludos

        Responder
        • Mario Congo

          Mmm que extraño algo estas haciendo mal, la regla te aseguro que funciona mira toda la gente que comenta le funciono, te recomiendo que digites la regla en lugar de copiarla ya que al copiar de wordpress a tu consola los caracteres te los cambia.

          Sino te funciona asi avísame haber como te ayudo.

          Responder
          • Andres Muñoz

            Precisamente corregi varias veces lo eh seguido intentando pero la verdad no se en que estoy fallando quizas las comillas no se que pena la verdad es otro mundo para mi estas ventanas NEGRAS 🙁 por que crei que ese era el problema de digitar mal al mail te adjunte una imagen de lo que me sucedia si puedes agregarme al Skype un remoto o algo asi para que me puedas colaborar te lo agradeceria mucho saludos

  8. carlosz

    Saludos, tengo mi servidor configurado con firestarter, puedo usar esa configuracion del iptables?, muchas gracias

    Responder
    • Mario Congo

      Tendrías que probarle amigo la verdad nunca he usado firestarter.

      Responder
      • carlosz

        Saludos amigo, funciono perfectamente el comando, e inclusive a la persona logré bloquearle el facebook y el youtube, pero despues de cierto tiempo, creo que logró abrir el facebook con firefox, tienes alguna sugerencia?

        Responder
        • carlosz

          Al parecer el sujeto encontró una via alterna para accesar al facebook, ayuda. Gracias.

          Responder
          • Mario Congo

            Bien mira en realidad lo que estoy seguro que puede estar pasando es que tu usuario se esta saltando el firewall usando algún túnel, yo solía hacerlo cuando era estudiante jejeje, la verdad es que existen muchas paginas que te permiten saltar el firewall o proxy, lo que debes hacer es ver el historial de navegación de ese usuarios para determinar como sale a facebook, o busca en internet los túneles que existen para saltarte restricciones y bloquealos en tu firewall con las reglas que te di y listo.

  9. jheider

    buenos dias tengo una duda con estas reglas bloqueando el puerto 443 solo se bloquea facebook o otros sitios seguros como bancos q utilizan https ? gracias

    Responder
    • Mario Congo

      Puedes bloquear los sitios que tu quieras, youtube, facebook, o lo que sea que quieras bloquear, solo basta con colocar el nombre del sitio en la regla.

      MFCP!!!

      Responder
  10. Gael Garcia

    Asi como pusiste el ejemplo con IPS, como le hago para restringir un grupo de macaddress?
    saludos y gracias

    Responder
    • Mario Congo

      Hola claro lo puedes hacer asi:

      iptables -A INPUT -m mac –mac-source 00:0F:EA:91:04:08 -j DROP

      Reempleza 00:0F:EA:91:04:08 por la mascara de la maquina que quieres colocar.

      MFCP!!!

      Responder
  11. kerbe

    estimado muy buen truco para poder evitar Facebook, ahora se puede hacer al revés, me explico

    bloquear todo los equipos y distinguir los equipos que si pueden tener acceso?

    Responder
    • Mario Congo

      Hola claro que se puede primero usa la regla para bloquear todo la red tal cual esta en el ejemplo inicial, luego para dar acceso solo a ciertas maquinas usa la regla asi:

      iptables -I FORWARD -s IP -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j ACCEPT.

      Responder
      • kerbe

        gracias, me has solucionado la vida 😀 dejo tu blog en favoritos, he visto que tienes información de mucha utilidad

        Responder
        • Mario Congo

          Que bueno que te sirvió, pues este es un espacio para compartir conocimiento gracias por colocarlo como favorito.

          Responder
      • kerbe

        perdón por seguir comentando, pero se podrá colocar restricción por MAC, te comento tengo un servidor debían con squid.

        bloquamos .facebook.com > con éxito, nos aparece una pagina diciendo que esta bloqueado
        ejecuto los dos primeros comandos:
        el segundo con 443, siguen pudiendo entrar los usuarios a facebook
        el primero sin 443, bloquea todo con éxito

        ahora al ejecutar el comando con ip, no hay cambios, cuando lo hago a otro servidor (192.168.0.5 que es el dns, con dhcp y directorio, le da acceso a todo los pc’s). entonces pensaba si se puede hacer por MAC ya que squid lo usamos asi.

        saludos

        Responder
        • kerbe

          lo otro es que al reiniciar la maquina pierdo todo los cambios.

          Responder
          • Mario Congo

            Mmmm eso la verdad es un problema siempre que reinicias la maquina IPtables se resetea, para que eso no ocurra has lo siguiente:

            Creas las reglas que deseas en tu iptables
            luego ejecuta el comando

            /etc/init.d/iptables save

            Con eso IPtables guarda tus reglas y si reinicias el server no pasara nada. veras que tus reglas se quedaron guardadas.

            O algo mucho mejor y que nunca falla es crear un archivo en /etc/sysconfig/ y llamalo como quieras por ejemplo misreglas

            Cada vez que vayas a crear una regla en tu iptables escribe la regla en el archivo que creaste, y luego ejecuta este comando.

            iptables-restore < misreglas

            Listo con eso recargaste tu iptables con las nuevas reglas y si reinicias el server ejecuta ese comando y todas tus reglas se restablecen.

            Prueba cualquiera de las dos opciones igual funciona.

            MFCP!!!

        • Mario Congo

          Bueno todo lo que pides se puede hacer por no contestar antes he estado un poco ocupado, pero espero que este a tiempo para ayudarte, mira para hacer lo que pides debes ejecutar la regla siguiente:

          iptables -A INPUT -m mac –mac-source 00:0F:EA:91:04:08 -j DROP

          Reempleza 00:0F:EA:91:04:08 por la mascara de la maquina que quieres colocar.

          MFCP!!!

          Responder
  12. John

    Buenaso.. Brow… alguna vez… intente lo mismo bloquear el Facebook pero no lo consegui con SQUID.

    Ahora ya tengo el dato… THX buen blog.. 😀

    Responder
  13. Cristian

    QUE MAS brother te comento que me guie de tu scrip para sacar uno que funcione en la version que yo tengo ahora si funciona a la totalidad en cualquier navegador gracias por tu aporte

    $IPTABLES -I FORWARD -s 192.168.0.34 -m string –string ‘facebook’ –algo bm -j DROP
    Cabe recalcar que la ip 192.168.0.34 es la que yo bloquee para que no navege en el facebook a mi me funciono directo suerte !!!

    Responder
    • Mario Congo

      Excelente me alegro que te haya funcionado, éxitos men!!!

      MFCP!!!

      Responder
  14. Patricio

    segun el articulo, con esta regla
    iptables -I FORWARD -s 192.168.221.5 -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j DROP.

    puedes negar el uso a este equipo , y bueno si tengo mi red creada con grupos de equipos y con ips fijas como puedo restringir el acceso segun el grupo por ejemplo de la ip 192.168.221.20 a la 192.168.221.25, y el resto si tengan accesso

    porfa ayudame con esa regla.. soy super novato en esto…

    gracias..

    Responder
    • Mario Congo

      Hola si deseas bloquear solo un rango de IPs coloca la regla del siguiente modo:

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

      MFCP!!!

      Responder
  15. Cristian

    hola muy bueno el aporte pero a mi no me funciona tengo un server con squid y el archivo del firewall añado la regla pero no me funciona:
    tengo esta version iptables v1.3.5 pienso que la sintaxis esta mal escrita para esta version yo la coloque asi
    $IPTABLES -I FORWARD -s 192.168.0.62 -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j DROP
    192.168.0.62 es la ip que quiero que no navegue en el face por el puesto 443 gracias de antemano

    Responder
    • Mario Congo

      Bueno la regla esta bien aplicada, ahora bien cuando ingresas al facebook desde la IP que quieres bloquear el acceso es con http o con https, si tienes squid recuerda que debes bloquearlo ahí también ya que este post es complemento del bloque de sitios a través de squid.

      Te recomiendo que luego de aplicar la regla reinicies el servicio de iptables.

      MFCP!!!

      Responder
      • Cristian

        Hola amigo te comento que ya lo consegui pero solo funciona en un navegador en el googlechrome pero en el firefox si se habre el face te comento que ya reinicie el iptables pero al final me salio un mensaje de error
        Expurgar reglas del cortafuegos: [ OK ]
        Configuración de cadenas a la política ACCEPT: mangle filte[ OK ]
        Descargando módulos iptables: [ OK ]
        Aplicando reglas del cortafuegos iptables:Bad argument `0x1′
        Error occurred at line: 102
        Try `iptables-restore -h’ or ‘iptables-restore –help’ for more information.
        [FALLÓ]
        y tengo un scrip del firewall y creo que la linea es donde ingrese para negar ayudame porfa gracias de antemano

        Responder
        • Cristian

          Hola amigo ya solucione lo del error al momento de reiniciar el servicio de iptables solo ahora es que solo bloquea el trafico pero en un solo navegador en el chrome pero en el firefox no estas reglas utilice
          $IPTABLES -I FORWARD -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j DROP
          y le doy permiso a esta persona
          $IPTABLES -I FORWARD -s 192.168.0.27 -p tcp –dport 443 -m string –string ‘facebook’ –algo bm -j ACCEPT
          gracias de antemano

          Responder
          • Mario Congo

            Bueno es extraño que solo funcione en un navegador porque la regla bloquea a nivel de servidor no de navegación, tienes un solo servidor dhcp?, porque si en chrome ya bloquea te puede recomendar algo sencillo pero bien efectivo para bloquear en firefox, ve a herramientas en firefox y agrega el plugin llamado blocksite, reinicia firefox y luego ve al complemento instalado y bloquea todas las pagians que quieras en este caso el facebook tanto con https como http listo.

            MFCP!!!

  16. Leo

    Maestro…. funciono perfectamente, lastima que mis alumnos me odien ahora….

    Responder
    • Mario Congo

      jajaja eso es lo malo con esto de ley te ganas el odio de los alumnos, pero vale la pena.

      Responder
  17. jesus

    realmente me funciono! de todas las que había consultado en internet esta realmente es efectiva también logre bloquear «youtube», muy buen aporte!

    Responder
    • Mario Congo

      Que bueno saber que te ha funcionado pues si es la única manera que conozco efectiva para bloqueo por eso la compartí. ya que en muchos lugares lo que indican funciona a medias.

      Exitos.!!!

      Responder
      • Jancel Garcia

        para mi no me funciona con iptables v1.4.12

        Responder
        • Mario Congo

          Seguro aplicaste bien la regla?, describe lo que realizaste para poder guiarte.

          Responder
          • Cristian

            Hola, muy bueno el blog, te comento que anda la regla pero al igual que a otros el firefox no bloquea el https de face, vi tu comentario de restringir desde el mismo firefox pero en mi caso calcula que son muchas oficinas y muchas pc, lo que se me complica ir maquina por maquina viendo quien tiene y quien no firefox. Alguna solucion para que firefox tambien bloquee?? gracias espero respuesta.

          • Mario Congo

            Hola Cristian, la verdad es muy extraño eso que les sucede, no se por que razón firefox logra saltarse las reglas, primero creo que debes verificar si en las configuraciones de firefox este está navegando con o sin proxy.

            Sin embargo en tu caso como me comentas que son muchas máquinas, quizá lo mejor seria averiguar si tu proxy esta dejando pasar las conexiones https, debido a que las conexiones van cifradas y no es posible distinguir la url a la que se dirigen.

            Lo mejor que puedes hacer es lo siguiente:

            Crea un script con el siguiente contenido:

            # BLOCK FACEBOOK
            for i in $(/usr/bin/whois -h whois.radb.net ‘!gAS32934’ | tr ‘ ‘ ‘\n’ | sort -n -k1,1 -k2,2 -k3,3 -k4,4 |grep /)
            do iptables -A FORWARD -d $i -j DROP

            done

            Luego comprueba en tu firewall que el scrip esta funcionando y a continuación navega haber que te haya resultado.

            MFCP!!!

Responder a Mario Congo Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

contrarobots * Time limit is exhausted. Please reload CAPTCHA.