ADMINISTRACION DE SISTEMAS OPERATIVOS DE RED PROXY WEB TRANSPARENTE (SQUID) JAVIER VIDAL NUMA MENDOZA CODIGO 1150057 UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS SAN JOSE DE CUCUTA 2013 ADMINISTRACION DE SISTEMAS OPERATIVOS DE RED PROXY WEB TRANSPARENTE (SQUID) JAVIER VIDAL NUMA MENDOZA CODIGO 1150057 PRESENTADO A: ING. JEAN POLO CEQUEDA OLAGO UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS SAN JOSE DE CUCUTA 2013 INTRODUCCIÓN La intención de este trabajo es la de dar una introducción general a lo que es un SQUID y los principales parámetros que se deben de configurar luego de su instalación, el significado o función que cada parámetro configurado cumple dentro del contexto del SQUID, ya que dependiendo de la buena configuración de dichos parámetros la eficiencia será máxima. Las parametrizaciones son generalmente las incógnitas más relevantes al inicio de cualquier instalación de un servidor. SQUID es un Servidor Intermediario (Proxy) de alto desempeño que se ha venido desarrollando desde hace varios años y es hoy en día un muy popular y ampliamente utilizado entre los sistemas operativos como GNU/Linux y derivados de Unix. Es muy confiable, robusto y versátil y se distribuye bajo los términos de la Licencia Pública Genera GNU (GNU/GPL).Siendo sustento lógico libre, está disponible el código fuente para quien así lo requiera. Entre otras cosas, Squid puede funcionar como Servidor Intermediario (Proxy) y caché de contenido de Red para los protocolos HTTP, FTP, GOPHER y WAIS, proxy de SSL, caché transparente, WWWCP, aceleración HTTP, caché de consultas DNS y otras muchas más como filtración de contenido y control de acceso por IP y por usuario. Squid consiste de un programa principal como servidor, un programa para búsqueda en servidores DNS, programas opcionales para reescribir solicitudes y realizar autenticación y algunas herramientas para administración y herramientas para clientes Al iniciar Squid da origen a un número configurable (5, de modo predefinido a través del parámetro dns_children) de procesos de búsqueda en servidores DNS, cada uno de los cuales realiza una búsqueda única en servidores DNS, reduciendo la cantidad de tiempo de espera para las búsquedas en servidores DNS. Squid no debe ser utilizado como Proxy para protocolos como SMTP, POP3, TELNET,SSH, IRC, etc. Si se requiere intermediar para cualquier protocolo distinto a HTTP, HTTPS, FTP, GOPHER y WAIS se requerirá implementar obligatoriamente un enmascaramiento de IP o NAT o bien hacer uso de un servidor SOCKS. OBJETIVO Aprender el concepto de proxy, sus usos y beneficios que trae el implementarlo Conocer los aspectos básicos del servidor proxy SQUID Aprender a instalar y configurar SQUID en una distribución gnu/Linux fedora 18 Manejar la funcionalidad transparente del servidor proxy SQUID TABLA DE CONTENIDO 1. Concepto de Proxy ______________________________ 6 2. Generalidades de SQUID __________________________ 8 3. Proceso de Instalación y configuración SQUID__________ 10 Conclusiones ___________________________________ 15 Bibliografía _____________________________________ 16 1 CONCEPTO DE PROXY En una empresa que usa Internet, un Proxy Server en un servidor que actúa como intermediario entre el ordenador de un usuario e Internet, por lo que la empresa puede asegurar una mínima seguridad, control de administración, y un servicio de cache. Este tipo de servidor esta normalmente asociado a un “gateway” o pasarela que separa la red corporativa de la red externa, y a un Firewall que protege la red corporativa de intrusiones provenientes de otras redes. Un Proxy Server recibe una petición para un servicio de Internet de un usuario (por ejemplo una página Web). Si pasa los filtros establecidos, el Proxy Server, asumiendo que también es un servidor caché, mira en su caché local de páginas Web recientemente descargadas. Si encuentra la página solicitada, se la envía al usuario sin tener que enviar la petición a Internet. Si no está en caché, el servidor Proxy, actuando en nombre del usuario, usa una de sus propias direcciones IP para pedir la página del servidor de Internet donde está alojada. Cuando la página es encontrada y se envía al Proxy, le es enviada al usuario que la había requerido al principio. Para el usuario, el Proxy Server es invisible y transparente; todas las peticiones de Internet y respuestas externas parecerán estar directamente desde el PC del usuario. Aun así, debemos recordar que habrá que configurar la dirección del Proxy en el navegador o programa de acceso que utilicemos, por lo que no es tan invisible. Una ventaja del Proxy Server es que el caché nos puede ahorrar tiempo de acceso a las páginas Web. Si uno o mas sitios de Internet es visitado de forma frecuente, los elementos mas característicos como por ejemplo los gráficos, no se tienen que descargar cada vez que accedemos de nuevo a ese sitio. Se guardan en el caché. Algunas veces nos guarda la copia entera de la página por lo que puede que no está al día. La forma de solucionar esto es pulsar el botón “Actualizar” en nuestro navegador. Volverá a realizar la petición completa bajándonos la página mas reciente. Las funciones de Proxy, Firewall y caché pueden estar en programas separados o combinados en un único paquete. Los servidores pueden estar localizados en diferentes ordenadores. Por ejemplo, un Proxy Server puede estar en la misma máquina que un Firewall o puede estar en un servidor distinto y enviar peticiones a través del Firewall. PROXY TRANSPARENTE Los proxies transparentes mejoran la calidad del servicio en la navegación por Internet, entregando contenido a un mayor ancho de banda y reduciendo la latencia en la transmisión. Si no usáramos proxies, los usuarios estarían atravesando Internet en muchas ocasiones, por servidores y enlaces lentos o con problemas, dependiendo del país donde están localizados los equipos. Dicho de otra manera, Si alguien ya ha bajado un archivo que queremos o ha visto una página Web que nosotros queremos visualizar, es mucho más rápido que nos lo provea la infraestructura del proxy transparente, que volver a Internet y conseguirlo desde ahí. Primero veremos qué es un proxy. Los proxies almacenan contenido que frecuentemente es accedido, y por ello lo guarda para que otras personas que quieran ver ese mismo contenido, no tenga que salir a Internet de nuevo a cogerlo. El lugar donde guarda este contenido se llama caché. Funciona más o menos de esta manera: Un usuario requiere una página Web de un navegador de Internet. La red analiza esa petición, y basándose en ciertos parámetros, redirecciona esa petición a un caché de la red local. Si el caché no tiene esa página Web, hará su propia petición al servidor Web. El servidor Web entrega el contenido al proxy que lo guarda en caché a la vez que se lo entrega al usuario que hizo la petición original. Ese contenido queda almacenado. Más tarde, cuando otro usuario quiera ver esa página Web, en lugar de hacer de nuevo la petición al servidor Web, le entrega la copia que tiene guardada. Este proceso reduce el tiempo de descarga para el usuario. Te puedes estar preguntando, ¿qué diferencia hay entre un Proxy normal y un Proxy transparente? Lo cierto es que no hay una gran diferencia en el papel que realizan o en su funcionamiento. De hecho, en muchos casos suelen ser la misma máquina. La mayor diferencia es que con un Proxy transparente, no tienes que hacer configuraciones de red para que el tráfico http sea capturado. Al estar construido como parte de la arquitectura de red, todo el tráfico del puerto 80 tiene que pasar por este Proxy transparente. Un pequeño inconveniente que ha sido motivo de muchas quejas por parte de usuarios, es que en ocasiones no vemos la página actualizada, y esto se nota sobre todo si la Web a la que estamos accediendo, cambia cada poco tiempo. Si la página a sido modificada con respecto a la que el proxy transparente tiene en caché, no veremos ese cambio a no ser que hagamos un “refresco” de página con la tecla F5, o la opción “Actualizar” en el propio navegador. 2 GENERALIDADES DE SQUID. A continuación se muestran los principales parámetros que se deben de configurar para el SQUID. Parametro http_port En este parámetro configuramos el puerto de escucha de nuestro servidor squid, por default es el puerto 3128 pero puede ser utilizado 8080 http_port 3128 Parametro cache_mem Establece la cantidad de memoria RAM dedicada para almacenar los datos más solicitados. Esta opción viene comentada por los cual se descomenta para darle un valor reservado en memoria RAM cache_mem 50 MB (este valor ya depende del administrador y de la carga que tenga el squid) Parametros cache_swap Dentro del cache_swap, existen dos parámetros: cache_swap_low cache_swap-hight con estos le indicamos a squid que mantenga los niveles del espacio del área de intercambio o también conocido como swap. Estos parámetros vienen siempre desactivados por la cual los buscaremos para activarlos. cache_swap_low 90 cache_swap_high 95 Con esto decimos al squid que mantenga los niveles del espacio del area de intercambio entre 90% y 95% Parámetros maximum_object_size Utilizamos esta directiva para indicar el tamaño máximo para los objetos a almacenar en la cache. maximum_object_size 10240 MB Parametro hierarchy_stoplist Este parámetro es útil para indicar a squid que páginas que no deben almacenarse en cache. También se pueden incluir como sitios de webmail y paginas locales en su red ya que no sería necesario almacenarlas en el cache, esta opción ya viene habilitada. hierarchy_stoplist cgi-bin ? hotmail gmail yahoo utcd.com.py Parametro visible_hostname Es el nombre del equipo, el nombre debe ser igual a los siguientes ficheros/etc/hosts y en /etc/sysconfig/network. Este parámetro no viene en el archivo de configuración, tendremos que agregar y que en ocasiones pueda ser que nuestro servicio de squid no quiera iniciar. visible_hostname nombre Parametro cache_dir Con este parámetro establecemos el tamaño que deseamos que tenga la cache en el disco, lo cual tendremos que habilitar y modificar el siguiente dato cache_dir ufs /var/spool/squid 700 16 256 Con esto establecemos el tamaño que deseamos que tenga la cache en el disco, se puede incrementar hasta el tamaño que desee el administrador, en este caso se estableció 700MB de cache con 16 directorios subordinados y 256 niveles cada uno. Parametros access_log Especifica en que directorio se realizara el registro de accesos al squid, este parámetro es importante para definir un análisis de estadísticas con webalizer. access_log /var/log/squid/access.log squid Parametro cache_log Define en donde se almacenaran los mensajes del comportamiento de la cache de squid. Por default viene desactivado. cache_log /var/log/squid/cache.log Así, podríamos poner en funcionamiento el SQUID, y de acuerdo a los mensajes empezar a modificar los parámetros correspondientes. 3 INSTALACION Y CONFIGURACION SQUID El proceso de instalación que se muestra a continuación se llevó a cabo en una distribución gnu/Linux fedora 18 Se busca la terminal y se inicia como usuario root para poder tener los privilegios Después de haber ingresado como root, procedemos a instalar el servidor squid con la siguiente línea de comando Yum install squid Para dar inicio con la configuración es necesario abrir el archivo de configuración de squid, el cual se encuentra ubicado en el directorio /etc/squid y tiene como nombre squid.conf, para entrar al archivo ingrese la siguiente linea en la terminar. nano /etc/squid/squid.conf Se procede a realizar algunas modificaciones como en http_port En las últimas versiones se puede usar el puerto por defecto (3128) y simplemente agregar la palabra transparent para hacerlo transparente Agregamos la siguiente linea acl localnet src 192.168.1.3 Que hace referencia a la IP de la máquina para este ejemplo. Para esta configuración crearemos una lista de acceso para dominios permitidos, otro para dominios prohibidos y un último para usuarios no permitidos a continuación de muestran dichos archivos: pbloquedas : dominios que estarán bloquedas , entre ellos: youtube y facebook. Estos archivos quedan ubicados en el directorio /etc/squid Para dichas listas de control de acceso definimos la siguiente regla de control acceso, tenga en cuenta la estructura sintáctica de una regla se control la cual se especifica a continuación: http_access [deny o allow] [lista de control de acceso] http_access allow localnet http_access allow localhost http_access deny pbloqueadas luego se busca el siguiente parámetro que se utiliza para establecer que tamaño se desea que utilice Squid para almacenamiento de caché en el disco duro. De modo predefinido Squid utilizará un caché de 100 MB, dividido en jerarquías de 16 directorios subordinados, hasta 256 niveles cada uno: cache_dir ufs /var/spool/squid/ 100 16 256 Finalmente reiniciamos el servicio con el siguiente comando: Systemctl restart squid.service CONCLUSIONES un proxy no es más que un intermediario entre el servicio de internet y el usuario de internet que permite manejar el acceso de este a varios dominios El servidor proxy interrumpe la conexión de TCP/IP para ocultar la información de la red interna (por ejemplo, nombres de sistemas principales internos y direcciones del protocolo de Internet (IP)) El proceso de Instalación y configuración de Squid en Fedora 16 es sencillo solamente hay que tener en cuenta los parámetros requeridos por este. BIBLIOGRAFIA http://www.linuxparatodos.net//web/comunidad/basedeconocimiento//wiki/Base% 20de20Conocimiento/Servidor+Proxy#sectionServidor+ProxyArchivosDeConfigur aci_C3_B3nDelSquid http://www.squid-cache.org/Download