|
Internet y Mail: Montar servidor proxy caché con filtrado web en Linux Ubuntu 9.10 con Squid
Os explicamos cómo instalar y configurar Squid en GNU Linux Ubuntu 9.10 para montar un servidor proxy caché con filtrado web. Os explicamos qué es Squid y cuáles son sus características. Os mostramos cómo configurar los equipos clientes y cómo evitar que los usuarios puedan saltarse el proxy.
Servidor proxyUn servidor proxy o proxy es un programa o dispositivo hardware sirve (habitualmente) para permitir el acceso a Internet a todos los equipos de una organización cuando sólo se puede disponer de un único equipo conectado, esto es, una única dirección IP. Un proxy permite a otros equipos conectarse a una red de forma indirecta a través de él. Cuando un equipo de la red desea acceder a una información o recurso, es realmente el proxy quien realiza la comunicación y a continuación traslada el resultado al equipo inicial. En unos casos esto se hace así porque no es posible la comunicación directa y en otros casos porque el proxy añade una funcionalidad adicional, como puede ser la de mantener los resultados obtenidos en una caché que permita acelerar sucesivas consultas coincidentes o para realizar un filtrado web y permitir sólo el acceso a páginas web determinadas. Algunas modalidades de proxy:
SquidSquid es software libre (bajo licencia GPL) que implementa un servidor proxy y un demonio para caché de páginas web, soportando los protocolos HTTP, HTTPS y FTP. Entre los muchos servicios que incluye: reduce el ancho de banda y mejora los tiempos de respuesta de almacenamiento en caché, acelera un servidor web guardando en caché peticiones repetidas a DNS y otras búsquedas para un grupo de equipos que comparten recursos de la red, caché de web, además de añadir seguridad filtrando el tráfico. Funciona en la mayoría de sistemas operativos disponibles, incluyendo Windows y GNU Linux. Squid es un software muy completo y robusto pues lleva varios años en uso y contínua actualización. Aunque orientado a principalmente a HTTP y FTP es compatible con otros protocolos como Internet Gopher. Implementa varias modalidades de cifrado como TLS, SSL, y HTTPS. Algunas de las características de Squid:
Instalación de GNU Linux Ubuntu 9.10Por supuesto necesitaremos un equipo con GNU Linux Ubuntu 9.10 instalado para posteriormente configurarlo para hacerlo servidor proxy con Squid. Para instalar GNU Linux Ubuntu 9.10 en un equipo se pueden seguir las instrucciones del siguiente manual de esta web: Instalar GNU Linux Ubuntu 9.10 virtualizado con Sun VirtualBox 3.0.12 Aunque en el artículo anterior explicamos cómo instalar Ubuntu virtualizado, si no queremos virtualizarlo el proceso de instalación es casi igual. Otros artículos sobre cómo instalar otras versiones de GNU Linux:
Instalación y configuración de Squid en GNU Linux Ubuntu para hacerlo servidor proxyInstalación de SquidPara instalar Squid en GNU Linux Ubuntu 9.10 abriremos una ventana de terminal desde el menú "Aplicaciones" -"Accesorios" -"Terminal": Introduciremos el siguiente comando GNU Linux para la instalación de Squid:
Nos pedirá la contraseña del usuario, la introduciremos y pulsaremos INTRO: Antes de la instalación de squid, pedirá si deseamos continuar, introduciremos "s" y pulsaremos "INTRO": Concluirá la instalación de squid con el mensaje "Restarting Squid HTTP proxy squid": Ver el resultado de la ejecución del comando sudo apt-get install squid. Squid habrá quedado instalado en:
Configuración de SquidPara configurar Squid editaremos el fichero:
con el comando GNU Linux:
Por ejemplo, para ver o cambiar el puerto que utilizará Squid buscaremos "http_port" (pulsando Control + W), en la línea:
Podremos modificar, por ejemplo, el puerto 3128 (que es el de defecto de Squid) por el que deseemos que utilice Squid:
Guardando los cambios pulsando las teclas Control + O y reiniciando el servicio de squid se aplicarán los cambios. Lógicamente, si tenemos el cortafuegos de Linux activado deberemos abrir el puerto correspondiente (en nuestro caso el 4545).
Permitir y denegar acceso a la navegación a través del proxy a los equipos clientesPermitir y denegar acceso a una lista de direcciones IP de nuestra redPara permitir la navegación de determinados equipos clientes de nuestra LAN a través del proxy Squid editaremos el fichero /etc/squid/squid.conf con el comando GNU Linux:
Y añadiremos la línea:
De esta forma añadiremos una nueva lista de control de acceso que estará compuesta por las IPs que indiquemos en el fichero "ips_permitidas". Lógicamente, tendremos que indicar que queremos permitir el acceso mediante una regla de control de acceso a la lista de control de acceso anterior (denominada "ips_permitidas"). Para ello añadiremos la siguiente línea (antes de http_access deny all):
Con la configuración anterior estamos indicando a Squid que permita la navegación a través del proxy a las IPs contenidas en el fichero:
Guardaremos los cambios realizados en el fichero squid.conf, cerraremos y crearemos un fichero llamado "ips_permitidas" con el comando:
Con la lista de las IPs a las que queramos permitir la navegación a través del proxy Squid: Cada vez que queramos permitir la navegación a través del proxy a un equipo cliente obtendremos su dirección IP y la añadiremos a este fichero. Nota: para denegar el acceso será suficente con cambiar la línea http_access allow ips_permitidas por http_access deny ips_permitidas. Lógicamente podremos tener tantas listas de control de acceso como deseemos, lo lógico, de hecho, es tener al menos una lista de control de acceso con las IPs permitidas y otra lista de control de acceso con las IPs denegadas (dos ficheros con las IPs permitidas y denegadas). Permitir y denegar acceso a un rango de direcciones IP completo de nuestra redSquid también permite permitir o denegar la navegación a un rango de IPs establecido, para ello editaremos el fichero squid.conf con el comando GNU Linux:
Y añadiremos la línea:
Y antes de http_access deny all añadiremos la línea:
Para denegar el acceso:
Apertura de puerto para Squid en el cortafuegos de GNU Linux (iptables)---CONTINUARÁ--- Establecer el idioma de los mensajes que squid muestra al usuarioPara que Squid muestre las posibles páginas de error o información al usuario en español (o el idioma que deseemos) realizaremos los siguientes pasos: 1. Abriremos una ventana de terminal y accederemos a la carpeta /usr/share/squid/errors con el comando GNU Linux:
Ejecutando el comando:
Podremos ver el listado de carpetas, cada una corresponde a un idioma, en nuestro caso, la que contiene los errores en español es "es". Si queremos personalizar algún error accederemos a esta carpeta y modificaremos los ficheros que contiene (podremos añadir logotipos y el texto personalizado que deseemos en formato HTML). 2. Editaremos el fichero de configuración /etc/squid/squid.conf con el comando:
Buscaremos el parámetro "error_directory" y pondremos el valor "/usr/share/squid/errors/es" de la siguiente forma:
3. Guardaremos los cambios y reiniciaremos el servicio de squid. Si accedemos a Internet desde un cliente y éste no tiene acceso a una determinada página web, el mensaje de aviso aparecerá en español: Iniciar y detener servicio del proxy Squid, carga automáticaIniciar el servicio de squidPara iniciar el servicio de squid abriremos una ventana de terminal y escribiremos y ejecutaremos el siguiente comando GNU Linux:
Mostrará el siguiente texto (si todo es correcto):
Si el usuario con el que ejecutamos el comando no tiene permisos suficientes mostrará un mensaje como este:
Detener el servicio de squidPara detener el servicio de squid (dejará de funcionar el servidor proxy) abriremos una ventana de terminal y escribiremos y ejecutaremos el siguiente comando GNU Linux:
Mostrará el siguiente texto (si todo es correcto):
Si el usuario con el que ejecutamos el comando no tiene permisos suficientes mostrará un mensaje como este:
Configurar el sistema para que el servicio se inicie de forma automáticaPara que el servicio de Squid se inicie de forma automática (al arrancar el sistema) abriremos una ventana de terminal y ejecutaremos el siguiente comando GNU Linux:
Si no existe el comando "chkconfig" podremos instalarlo con este otro comando:
Configuración de un cliente con Windows XP para que utilice el proxyConfiguración de Mozilla Firefox para el proxy SquidAbriremos el navegador web Mozilla Firefox, accederemos al menú "Herramientas" - "Opciones": Pulsaremos en "Avanzado" y seleccionaremos la pestaña "Red", pulsaremos el botón "Configuración": Marcaremos "Configuración manual del proxy"e introduciremos los siguientes datos:
Si intentamos navegar ahora a cualquier URL, por ejemplo www.ajpdsoft.com, y no hemos configurado aún Squid nos mostrará una ventana como esta: Indicando que no está permitido el acceso a la página, pues como hemos dicho Squid también incluye filtrado de contenidos web, con el texto:
Configuración de Internet Explorer para el proxy SquidAbriremos el navegador web Internet Explorer, accederemos al menú "Herramientas" - "Opciones de Internet": Accederemos a la pestaña "Conexiones" y pulsaremos en "Configuración de LAN": Marcaremos en "Servidor proxy" la opción "Usar un servidor proxy para la LAN (esta configuración no se aplicará a conexiones de acceso telefónico ni VPN)" e introduciremos en "Dirección" la IP del equipo con GNU Linux Ubuntu 9.10 y Squid y en "Puerto" el puerto que hayamos indicado en el parámetro http_port del fichero squid.confg, por defecto 3128. Marcaremos la opción "No usar servidor proxy para direcciones locales" y pulsaremos "Aceptar": Configurar uso del proxy con Internet Explorer de forma automáticaCuando una organización dispone de muchos equipos clientes que accederán a Internet a través del servidor proxy configurado con Squid, será conveniente establecer un mecanismo automático para configurar el proxy en el navegador Internet Explorer. Un método para automatizar este proceso consiste en exportar la clave del registro de configuraciones (regedit) donde se guardan estos valores e ir ejecutando el fichero .reg en los equipos clientes. Otro método, más cómodo y eficaz consiste en utilizar la aplicación gratuita y 100% open source AjpdSoft Configuración Proxy, en el siguiente artículo se explica cómo usarlo para automatizar el proceso de configuración del proxy en Internet Explorer: Si te has registrado en nuestra web (puedes hacerlo desde aquí gratuitamente) podrás descargar el código fuente 100% Open Source (completo y totalmente gratuito) en Borland (ahora Codegear) Delphi 6: Cómo evitar que un usuario pueda desactivar el proxy en Internet ExplorerLógicamente, si no configuramos el perfil del usuario adecuadamente, para que no pueda desactivar el proxy y, además, no disponemos de cortafuegos perimetral que impida el acceso directo a Internet, nos arriesgamos a que el usuario desactive el proxy y navegue libremente por Internet. Una forma de evitar esto es introducir una contraseña para el usuario administrador que sólo el administrador de sistemas conozca y hacer que el usuario del equipo sea una cuenta limitada: Con esto conseguiremos que el usuario del ejemplo "ajpdsoft" no pueda modificar claves del registro de configuraciones, con lo que podremos realizar la siguiente configuración para que no pueda modificar las propiedades de Internet (ni desde Internet Explorer ni desde el Panel de control). Para ello accederemos al registro de configuraciones, desde "Inicio" -"Ejecutar", escribiendo "regedit" y pulsando "Aceptar": En el Editor del Registro accede a la clave:
ó
En esta carpeta "Control Panel" añadirás (si no existe) un nuevo valor de tipo DWORD con el nombre "Proxy":
Le haces doble clic al nuevo valor creado "Proxy" y pones "1" (para activar la restricción y "0" para desactivarla): Cierra el Editor del Registro, cierra Internet Explorer (si lo tenías abierto), ábrelo y comprueba que ya tienes desactivada la opción de modificar la configuración del proxy del navegador, al acceder a la pestaña "Conexiones" de "Opciones de Internet", al pulsar en "Configuración de LAN" te mostrará esto:
Indicando, en el caso de Internet Explorer 8: "El administrador del sistema controla algunas configuraciones" y desactivando las opciones "Usar servidor proxy para la LAN..." y "No usar servidores proxy para las direcciones locales", tampoco dejará escribir en "Dirección" y en "Puerto" y desactivará el botón "Avanzadas". Microsoft también dice que se puede usar el Kit de administración de Internet Explorer (IEAK ó Internet Explorer Administration Kit) para realizar estas tareas o incluso las directivas de seguridad. Aunque estos dos métodos presentan algunos problemas, IEAK te pedirá el tipo de contrato con el que has adquirido IE y las directivas de seguridad están bastante incompletas, a veces no tienen todas las opciones. En cambio, haciéndolo "manualmente" editando el Registro de Configuraciones de Windows y accediendo a la clave que te comentamos se pueden restringir multitud de opciones de Internet Explorer. La mejor configuración para que todos los equipos utilicen el proxyLa forma más eficiente y segura para garantizar que todos los equipos de nuestra organización naveguen utilizando el proxy Squid de nuestra red consiste en utilizar un cortafuegos (firewall) hardware ubicado de la siguiente forma: Como se puede observar en la imagen, el cortafuegos (firewall) físico (dispositivo hardware) actúa y analiza todo el tráfico entre Internet y la red de área local (LAN), añadiendo una regla en este cortafuegos que impida todo el tráfico HTTP de todos los equipos salvo el servidor proxy conseguiremos que aunque algún usuario "avanzado" sea capaz de instalar otro navegador diferente a Internet Explorer como Mozilla Firefox ó Google Crhome no pueda navegar a no ser que utilice el proxy. Anexo
Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft. Nota: Revisado por AjpdSoft el 15-12-2009. Anuncios
Enviado el Miércoles, 09 diciembre a las 23:43:29 por ajpdsoft
|
|