Autor: William López Jiménez
Correo electrónico: william [punto] koalasoft [arroba] gmail [punto] com
Sitio de Red: http://www.koalasoftmx.tk
Jabber ID: koalasoft@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 2006-2011 William López Jiménez. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción


Uno de los sitio más comunes en las empresas que empleado en su “tiempo muerto” usan para relajarse, son las redes sociales, en donde los sitios como Facebook, MSN, Twitter, etc son los mas visitados, pero debido a políticas de las empresas estos sitios son catalogados como prohibidos, ya que hacen perder el tiempo a los empleados y a su vez puede bajar el rendimiento laboral de estos. Pero hay una forma de poder bloquear los sitios que usan este servicio y dan a los administradores un dolor de cabeza, esto lo podemos hacer combinando dos poderosas herramientas, Squid proxy y Shorewall.

Cabe señalar que un Proxy no puede controlar el acceso a sitios seguros (https) el cual es asignado al puerto 443,  para eso debemos hacerlo a través del corafuego.

Tomando la explicación del manual de implementacion de servidores de Joel Barrios sobre Squid Proxy y cortafuegos Shorewall, definimos lo siguiente:

Un Proxy es un servidor Intermediario y se define como una computadora o dispositivo que ofrece un servicio de red que consiste en permitir a los clientes realizar conexiones de red indirectas hacia otros servicios de red. Durante el proceso ocurre lo siguiente:

  • Cliente se conecta hacia un Servidor Intermediario (Proxy).
  • Cliente solicita una conexión, fichero u otro recurso disponible en un servidor distinto.
  • Servidor Intermediario (Proxy) proporciona el recurso ya sea conectándose hacia el servidor especificado o sirviendo éste desde un caché.

En algunos casos el Servidor Intermediario (Proxy) puede alterar la solicitud del cliente o bien la respuesta del servidor para diversos propósitos, generalmente se hacen trabajar simultáneamente como muro cortafuegos operando en el Nivel de Red, actuando como filtro de paquetes, en este caso mencionaremos al firewall Shorewall.

Shorewall (Shoreline Firewall) es una robusta y extensible herramienta de alto nivel para la configuración de muros cortafuego. Shorewall solo necesita se le proporcionen algunos datos en algunos ficheros de texto simple y éste creará las reglas de cortafuegos correspondientes a través de iptables. Shorewall puede permitir utilizar un sistema como muro cortafuegos dedicado, sistema de múltiples funciones como puerta de enlace, dispositivo de  encaminamiento y servidor.

Una vez entendido esto fijemos las configuraciones que debemos usar, en este caso para bloquear definitivamente los sitios: facebook, meebo.com, imo.mi.

Usaremos el proxy para bloquear los sitios que vayan solo por el puerto 80 (http), y con el cortafuego bloquearemos el puerto 443 para el mismo sitio.

Averiguando las IP usadas por estos sitios.


En nuestra terminal de comandos de nuestro equipo tecleamos lo siguiente:

1 host facebook.com

Con este comando tendremos las IP de actualmente están usando, en el caso de Facebook usan un gran número de direcciones IP, estas son algunas que por ahora están funcionando, se vería de esta forma el resultado:

1 facebook.com has address 69.63.189.16
2 facebook.com has address 69.63.181.12
3 facebook.com has address 69.63.189.11
4 facebook.com mail is handled by 10 smtpin.mx.facebook.com.

Como ven, tenemos 3 direcciones en este caso, tomaremos esos datos, aplicaremos el mismo comando para los sitios meebo.com e imo.mi.

1 host meebo.com
2 meebo.com has address 74.114.28.110
3 meebo.com has address 208.81.191.110
1 host imo.im
2 imo.im has address 64.13.161.61

Una vez teniendo estos datos, configuramos nuestro servidor, iniciemos con el proxy Squid, en este caso usaremos una lista donde bloquearemos todo lo que vaya por el puerto 80 a estos sitios.

Configurando el servidor Squid Proxy.


Editamos nuestro archivo de configuración de squid y seguidamente agregamos lo siguiente.

1 vim /etc/squid/squid.conf

Creamos nuestra ACL para nuestra red, que en este caso seria por medio de MAC:

1 acl mired arp "/etc/squid/listas/mired-red

Despues creamos una ACL en donde estaran amacenadas los sitios de redes sociales

1 acl redes-sociales dstdomain "/etc/squid/reglas/redes-sociales"

Y despues definimos nuestra reglas agregando lo siguiente:

1 http_access allow mired !redes-sociales

Con esto quedara configurado nuestro proxy para bloquear las redes sociales que vayan hacia el puerto http en modo normal.

Para terminar con el proxy configuramos la lista de redes sociales:

Creamos nuestra lista y colocamos lo siguiente:

1 vim /etc/squid/reglas/redes-sociales

Y dentro colocamos los dominios, recordando que deben poner un (punto) antes de cada dominio, ya que con eso afectara a todos los subdominio dentro de estos.

1 .facebook.com
2 .imo.im
3 .meebo.com

Con esto tenemos listo nuestro servidor proxy, para tener el control de estos sitios a través del puerto 80 (http).

Bloqueando los sitios a través del puerto 443 usando Shorewall.

Con shorewall solamente debemos agregar los datos que con anterioridad recopilamos, así bien comenzamos agregando la lista de direcciones IP que tenemos, estos lo guardamos dentro del fichero params

1 vim /etc/shorewall/params

Y agragamos las siguientes listas:

1 # meebo.com
2 IP_MEBO=208.81.191.110,74.114.28.110
3
4 # imo.mi
5 IP_IMO=64.13.161.61,64.13.161.58
6
7 # Facebook
8 IP_FACE=69.171.228.13,69.63.176.13,69.63.181.15,69.63.184.142,69.63.187.17,69.63.187.18,69.63.187.19

Lo que significa que cada variable que usamos por ejemplo IP_FACE tendremos almacenada las direcciones IP de sus servidores, el cual esta variable servirá para usarlo en nuestra reglas del cortafuego.

Seguidamente configuramos nuestras reglas:

1 vim /etc/shorewall/rules

Y colocamos lo siguiente:

1 REJECT  loc     net:$IP_FACE    tcp     443     443
2 REJECT  loc     net:$IP_MEBO    tcp     443     443
3 REJECT  loc     net:$IP_IMO     tcp     443     443

Lo que significa que el cortafuego va a rechazar todo los que vaya de la red local hacia Internet por el puerto 443.

Te darás cuenta que allí estamos usando las variables que utilizamos en el fichero (params).

Lo que resta hacer es reiniciar los servicios y probar los resultados.

1 service squid reload
2 service shorewall reload

En lo personal me ha funcionado bien, y en cuanto a las direcciones IP habrá que estar atentos si estos sitios los cambian.

Queda abierta la página para que aporten algunas direcciones IP que estos sitios usen para si fortalecer más esto.

Artículo original en KoalaSoft Blog:

http://www.koalasoftmx.tk/staticpages/index.php/bloquear-facebook-meebo-imo-443-https