Servidor Proxy Squid Servidor Proxy El término en ingles «Proxy» tiene un significado muy general y al mismo tiempo ambiguo, aunque invariablemente se considera un sinónimo del concepto de «Intermediario». Se suele traducir, en el sentido estricto, como delegado o apoderado (el que tiene el que poder sobre otro). Un Servidor Intermediario (Proxy) 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.ç Los Servidores Intermediarios (Proxies) generalmente se hacen trabajar simultáneamente como muro cortafuegos operando en el Nivel de Red, actuando como filtro de paquetes, como en el caso de iptables, o bien operando en el Nivel de Aplicación, controlando diversos servicios, como es el caso de TCP Wrapper. Dependiendo del contexto, el muro cortafuegos también se conoce como BPD o Border Protection Device o simplemente filtro de paquetes. Una aplicación común de los Servidores Intermediarios (Proxies) es funcionar como caché de contenido de Red (principalmente HTTP), proporcionando en la proximidad de los clientes un caché de páginas y ficheros disponibles a través de la Red en servidores HTTP remotos, permitiendo a los clientes de la red local acceder hacia éstos de forma más rápida y confiable. Acerca de Squid. 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 General GNU (GNU/GPL). Siendo equipamiento 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, WWCP, 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 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. Nota especial: Squid no debe ser utilizado como Servidor Intermediario (Proxy) para protocolos como SMTP, POP3,TELNET, SSH, IRC, etc. Si se requiere intermediar para cualquier protocolo distinto a HTTP, HTTPS, FTP, GOPHER yWAIS se requerirá implementar obligatoriamente un enmascaramiento de IP o NAT (Network Address Translation) o bien hacer uso de un servidor SOCKS como Dante. Instalación y arranque de Squid Para comprobar si tenemos instalado Squid, escribimos lo siguiente: # rpm –q squid En caso de que no tengamos squid entre nuestros paquetes instalados, procedemos a descargarlo con yum: # yum install squid Para arrancar o reiniciar el servicio, utilizamos: # service squid start # service squid restart Configuración de Squid El archivo de configuración de Squid se encuentra ubicado en /etc/squid/squid.conf, y en el se utilizan los siguientes parámetros: http_port: Es el puerto que Squid utilizara para funcionar. O sea: cuando configuremos el ordenador A para acceder a internet por el proxy, necesitamos configurar ese puerto en el menú del navegador. Por defecto, Squid funcionara en el puerto 3128, pero es posible configurar también otros puertos para funcionar, de la siguiente forma: http_port 3128 Como puerto por defecto, o: http_port 8080 Como puerto que hemos elegido para funcionar. Cache_mem: Este parámetro no determinara la cantidad máxima de memoria de proceso de Squid utilizara para almacenar objetos. Cahe_mem 8MB Por defecto esta configurada en 8MB. Como parámetro recomendado se puede poner en 16MB, si se tiene un servidor con al menos 128MB de RAM. Esto da idea de lo poquito que Squid necesita para funcionar, pudiéndose reutilizar como proxy algún ordenador viejo de la oficina que ya no tenga uso. ftp_user: Determina el usuario que accedera al ftp de forma anónima. Por defecto, Squid envía como contraseña @squid, pero se puede cambiar por la que se desee. Por ejemplo: ftp_user [email protected] cache_dir: Determina el tamaño de la cache en el disco duro que utilizara Squid para almacenar informacion. La cantidad se determina en función de lo que el usuario necesite, siempre con un poco de sentido común, por supuesto. Si se especifica un tamaño mas grande que el disponible, Squid se bloqueara. La sintaxis es: cache_dir ufs /var/spool/squid [tamaño] 16 256 Por defecto Squid utiliza 100 MB Lista de Control de Acceso (ACLs) Un ACL es ni mas ni menos que una lista de control de acceso: una de las principales características de Squid. Con esta opción determinados quien accederá a internet a través del proxy y quien no. Esto significa que por lo menos hemos de decidir poner una lista, si queremos que funcione. Por ejemplo, decidamos que los ordenadores 192.168.10.4 y 192.168.10.5 accedan a través del proxy. La sintaxis de la instrucción para definir una lista acl es: acl [nombre de la lista] src [lo que compone la lista] o [ruta] Si queremos definir toda una red local, bastaría con hacer: Acl localnet 192.168.10.0/255.255.255.0 http_acces: Este parámetro determina las reglas de control de acceso de nuestra red. En el ejemplo, las direcciones 192.168.10.4 y 192.168.10.5 podran acceder según se determine por el parámetro http_access.La sintaxis es: http_acces allow ó http_access deny respectivamente. segun quiera permitir o denegar acceso Las dos palabras clave, acl y http_access permiten mucho juego combinándolas entre si. Podemos, por ejemplo, decidir que la IP 192.168.10.4 acceda a paginas para profesores y la 192.168.10.5 a paginas para alumnos, por ejemplo: Dst_domain: Dicha instrucción nos permite definir un dominio de internet. En conjunto con acl y http_access, se puede utilizar para determinar quienes pueden acceder a un dominio en particular: Acl red1 dst_domain www.google.com Acl red1 dst_domain www.remolacha.net Acl red2 dst_domain www.taringa.net Y ahora, decidimos que ip accedera y a que paginas. http_access allow lista_permitidos xxx.xxx.xxx.xxx http_access allow lista_permitidos2 xxx.xxx.xxx.xxx O sea: la IP 192.168.10.4 estara en lista_permitidos y la IP 192.168.10.5 en la lista_permitidos2. La primera accedera a gmail y a remolacha.net, y la segunda a taringa. Tambien se podría hacer http_access allow ¡lista_permitidos, lo que significaría que se dejaría acceder a lo contrario que estuviera en la lista (todas las direcciones menos la 192.168.10.4). Con lo explicado hasta ahora, es posible darle a Squid un buen uso, aprovechando las características de listas de acceso y reglas de control. Configuración de los clientes Si no utilizamos proxy transparente, para que cada uno de los clientes de la red pueda comunicarse con Squid, debemos configurar el equipo en cada uno de ellos para que salgan a Internet a través del proxy. En un cliente Windows, iremos al panel de control, luego a opcione de internet, buscaremos la pestaña que dice “Conexiones” y lego haremos click en “Configuracion Lan”, aquí pondremos el proxy. Para comprobar si realizamos nuestra configuración correctamente, intentamos acceder a una página cualquiera desde el navegador (por ejemplo, www.google.com.do). Si la página no forma parte de los dominios permitidos, aparecerá el siguiente mensaje, indicándonos que Squid se ha configurado correctamente.