Montar Proxy con Squid en Windows
Server 2012
Lo primero aclarar que Squid es un proxy, y según la Wikipedia un proxy es un programa o dispositivo que realiza una acción en representación de otro. Esta situación estratégica de punto intermedio suele ser aprovechada para soportar una serie de funcionalidades: proporcionar caché, control de acceso, registro del tráfico, prohibir cierto tipo de tráfico, etc.
Lo primero es descargar Squid desde aquí. Usaremos la versión 2.7 para Windows a pesar que la ultima revisión es de 2010. Para linux va por la version 3.4
Bien una vez que tenemos la descarga en nuestro 2012 server, lo descomprimimos en C:\ quedando así.
El siguiente paso es ir a la ruta C:\squid\etc y cambiar la extensión de los 4 archivos que se encuentran en dicha ruta a "nombredearchivo.conf", es decir, quitamos el "default" en todos los archivos.
Ya tenemos las extensiones cambiadas, así que lo siguiente es abrir un CMD. Una vez abierto, en la pantalla negra, escribimos cd\ para que nos deje la ruta en C:\ y acto seguido escribimos cd squid\sbin para acceder a esa ruta.
Ahora, iremos a servicios buscamos el que se ha creado, llamado Squid y con el botón derecho sobre el servicio, le damos a iniciar.
Comenzamos abriendo el navegador (en este caso Internet Explorer) y vamos a configurarlo para que funcione bajo nuestro proxy.
Para ello, abrimos el navegador y vamos a herramientas -> opciones de Internet y en la pantalla que se nos abre vamos a la pestaña conexiones y pinchamos en configuración de LAN. Ahora en la nueva ventana desactivamos la casilla detectar la configuración automáticamente y activamos la primera casilla de Servidor proxy quedando de la siguiente manera.
No olvidéis cambiar la dirección por la IP de vuestro servidor en el que habéis instalado Squid.También es muy importante que configuréis el puerto, que por defecto en Squid es el 3128.
Otra cosa que podéis hacer es marcar la casilla "no usar el servidor proxy para las direcciones locales".
Bueno, ya tenemos configurada la parte del navegador, pero, ¿que ocurre si ahora mismo intentamos navegar?...
Nos deniega el acceso porque Squid esta configurado por defecto para que corte todo el trafico. Vamos a arreglarlo.
Nos vamos a la ruta C:\squid\etc y abrimos el fichero squid.conf con el bloc de notas.
Vamos a modificar la configuración para que funcione a nuestro gusto. No tengáis miedo porque en caso de equivocarnos, con volver a pasar el archivo squid.conf de la carpeta que descargamos a la ruta en C:\ se soluciona.
Lo primero que haremos sera pulsar las telas control + b (si lo tienes en castellano) o edición -> buscar y escribimos en el recuadro http_access deny all y nos vamos a la zona marcada en azul.
Con esto, estamos permitiendo el acceso a todas las paginas web en lugar de tenerlo cerrado como viene por defecto. Acto seguido repetimos los pasos pero esta vez buscamos cache_dir ufs. Atentos a esto!! no olvidéis "descomentar" la linea para que los cambios surtan efecto, es decir, borrar la #. Ademas, modificamos el valor 100 por 5000. Esto nos hará que la cache pase de 100Mb a 5Gb.
Si en este momento le diésemos a Internet Explorer, es posible que aun no podamos navegar. Esto es debido a que el Firewall de Windows este cortando el acceso. Para solucionarlo, podríamos desactivar el cortafuegos, pero creo que seria una opción poco acertada tratándose de un servidor, así que, vamos a ser profesionales y crearemos una regla en el cortafuegos.
Para realizar esta labor, iremos a panel de control firewall, y elegiremos la opción de seguridad avanzada.
En la ventana que se nos abre, iremos a reglas de entrada y le daremos a nueva regla.
En el asistente, elegiremos la segunda opción puerto daremos a siguiente. En la siguiente pestaña dejaremos todo tal cual esta, pero en la opción puerto local especifico pondremos el de Squid, que recordemos que era el 3128.
En la siguiente ventana, dejamos marcada la casilla permitir la conexión ya que precisamente eso es lo que buscamos.Nos aparece una nueva ventana en la que nos pregunta "¿cuándo se aplica esta regla?" y dejaremos marcadas las tres opciones que vienen por defecto. Por último, nos pide que le asignemos un nombre, por ejemplo Squid Proxy Server para tenerlo controlado. Damos a finalizar y ya está creada la regla.
Llegado
este punto, tenemos acceso a todas las páginas web, pero después de
haber montado todo esto, deberíamos tener un fin ¿no? Bien, pues se me
ocurre que creemos un fichero de texto en el que incluiremos las webs a
las que no queramos que se tenga acceso.
Imaginemos que en nuestra empresa no queremos que se pueda acceder a Facebook. Bien , pues vamos a ver como hacerlo con Squid.
Para ello nos vamos de nuevo a la ruta C:\squid\etc y volvemos a editar el fichero squid.conf con el bloc de notas. Buscamos en el lo siguiente acl SSL_ports port y añadimos la linea acl deny url_regex "c:\squid\etc\deny.txt" en las ACL, quedando así:
Acto seguido iremos de nuevo a la ruta C:\squid\etc y creamos un documento de texto llamado deny.txt y dentro escribiremos las paginas a las que no queremos que se tenga acceso. Para el ejemplo del que antes se hablaba, escribiremos facebook. No es necesario poner las WWW ni HTTP, solo con poner facebook o twitter nos vale.
Solo nos resta ir de nuevo a los servicios y reiniciar el que pertenece a Squid para que coja los cambios. Ahora tendríamos acceso a cualquier pagina que quisiéramos, pero no a facebook.
Esto es solo una pequeña prueba, aun nos queda mucho que trastear y configurar con Squid. Por ejemplo podéis revisar el archivo QUICKSTART que esta en la ruta C:\squid (editarlo con notepad) y verificar ciertas cosas que allí nos explican.
Vamos a modificar la configuración para que funcione a nuestro gusto. No tengáis miedo porque en caso de equivocarnos, con volver a pasar el archivo squid.conf de la carpeta que descargamos a la ruta en C:\ se soluciona.
Lo primero que haremos sera pulsar las telas control + b (si lo tienes en castellano) o edición -> buscar y escribimos en el recuadro http_access deny all y nos vamos a la zona marcada en azul.
Con esto, estamos permitiendo el acceso a todas las paginas web en lugar de tenerlo cerrado como viene por defecto. Acto seguido repetimos los pasos pero esta vez buscamos cache_dir ufs. Atentos a esto!! no olvidéis "descomentar" la linea para que los cambios surtan efecto, es decir, borrar la #. Ademas, modificamos el valor 100 por 5000. Esto nos hará que la cache pase de 100Mb a 5Gb.
Si en este momento le diésemos a Internet Explorer, es posible que aun no podamos navegar. Esto es debido a que el Firewall de Windows este cortando el acceso. Para solucionarlo, podríamos desactivar el cortafuegos, pero creo que seria una opción poco acertada tratándose de un servidor, así que, vamos a ser profesionales y crearemos una regla en el cortafuegos.
Para realizar esta labor, iremos a panel de control firewall, y elegiremos la opción de seguridad avanzada.
En la ventana que se nos abre, iremos a reglas de entrada y le daremos a nueva regla.
En el asistente, elegiremos la segunda opción puerto daremos a siguiente. En la siguiente pestaña dejaremos todo tal cual esta, pero en la opción puerto local especifico pondremos el de Squid, que recordemos que era el 3128.
En la siguiente ventana, dejamos marcada la casilla permitir la conexión ya que precisamente eso es lo que buscamos.Nos aparece una nueva ventana en la que nos pregunta "¿cuándo se aplica esta regla?" y dejaremos marcadas las tres opciones que vienen por defecto. Por último, nos pide que le asignemos un nombre, por ejemplo Squid Proxy Server para tenerlo controlado. Damos a finalizar y ya está creada la regla.
Imaginemos que en nuestra empresa no queremos que se pueda acceder a Facebook. Bien , pues vamos a ver como hacerlo con Squid.
Para ello nos vamos de nuevo a la ruta C:\squid\etc y volvemos a editar el fichero squid.conf con el bloc de notas. Buscamos en el lo siguiente acl SSL_ports port y añadimos la linea acl deny url_regex "c:\squid\etc\deny.txt" en las ACL, quedando así:
Acto seguido iremos de nuevo a la ruta C:\squid\etc y creamos un documento de texto llamado deny.txt y dentro escribiremos las paginas a las que no queremos que se tenga acceso. Para el ejemplo del que antes se hablaba, escribiremos facebook. No es necesario poner las WWW ni HTTP, solo con poner facebook o twitter nos vale.
Solo nos resta ir de nuevo a los servicios y reiniciar el que pertenece a Squid para que coja los cambios. Ahora tendríamos acceso a cualquier pagina que quisiéramos, pero no a facebook.
Esto es solo una pequeña prueba, aun nos queda mucho que trastear y configurar con Squid. Por ejemplo podéis revisar el archivo QUICKSTART que esta en la ruta C:\squid (editarlo con notepad) y verificar ciertas cosas que allí nos explican.