You are on page 1of 19

SERVIDOR PROXY EN UBUNTU Qu es un proxy y cmo funciona?

Un proxy es un programa o dispositivo que realiza una accin en representacin de otro, esto es, si una hipottica mquina A solicita un recurso a una C, lo har mediante una peticin a B; C entonces no sabr que la peticin procedi originalmente de A. Esta situacin estratgica de punto intermedio suele ser aprovechada para soportar una serie de funcionalidades: proporcionar cach, control de acceso, registro del trfico, prohibir cierto tipo de trfico, etc.

Un proxy nos permite conectarnos a un equipo de forma indirecta. Cuando un equipo conectado a una red desea acceder a una informacin o recurso de Internet (llmese ver una pgina web, descargarnos un fichero mp3, o ver la ltima pelcula de nuestro actor/actriz favorito), es realmente el proxy quien realiza la comunicacin y a continuacin enva el resultado al equipo que solicit dicha informacin. La palabra proxy significa intermediario en ingls.

El uso ms comn es el de servidor proxy, que es un ordenador que intercepta las conexiones de red que un cliente hace a un servidor de destino. o De ellos, el ms famoso es el servidor proxy web (comnmente conocido solamente como proxy). Intercepta la navegacin de los clientes por pginas web, por varios motivos posibles: seguridad, rendimiento, anonimato, etc. o Tambin existen proxy para otros protocolos, como el proxy de FTP. o El proxy ARP puede hacer de enrutador en una red, ya que hace de intermediario entre ordenadores. Proxy (patrn de diseo) tambin es un patrn de diseo (programacin) con el mismo esquema que el proxy de red. Un componente hardware tambin puede actuar como intermediario para otros.

Como se ve, proxy tiene un significado muy general, aunque siempre es sinnimo de intermediario. Cuando un equipo de la red desea acceder a una informacin o recurso, es realmente el proxy quien realiza la comunicacin y a continuacin traslada el resultado al equipo que la solicit. Hay dos tipos de proxys atendiendo a quien es el que quiere implementar la poltica del proxy:

proxy local: En este caso el que quiere implementar la poltica es el mismo que hace la peticin. Por eso se le llama local. Suelen estar en la misma mquina que el cliente que hace las peticiones. Son muy usados para que el cliente pueda controlar el trfico y pueda establecer reglas de filtrado que por ejemplo pueden asegurar que no se revela informacin privada (Proxy de filtrado para mejora de la privacidad). proxy externo: El que quiere implementar la poltica del proxy es una entidad externa. Por eso se le llama externo. Se suelen usar para implementar cacheos, bloquear contenidos, control del trfico, compartir IP, etc.

Cundo y para qu sirve un proxy?


Control: slo el intermediario hace el trabajo real, por tanto se pueden limitar y restringir los derechos de los usuarios, y dar permisos slo al proxy. Ahorro. Slo uno de los usuarios (el proxy) ha de estar preparado para hacer el trabajo real. Con estar preparado queremos decir que es el nico que necesita los recursos necesarios para hacer esa funcionalidad. Ejemplos de recursos necesarios para hacer la funcin pueden ser la capacidad y lgica de cmputo o la direccin de red externa (IP). Velocidad. Si varios clientes van a pedir el mismo recurso, el proxy puede hacer cach: guardar la respuesta de una peticin para darla directamente cuando otro usuario la pida. As no tiene que volver a contactar con el destino, y acaba ms rpido. Filtrado. El proxy puede negarse a responder algunas peticiones si detecta que estn prohibidas. Modificacin. Como intermediario que es, un proxy puede falsificar informacin, o modificarla siguiendo un algoritmo.

Como resumen, las principales funciones de Squid son las siguientes:


Permite el acceso web a mquinas privadas (IP privada) que no estn conectadas directamente a Internet. Controla el acceso web aplicando reglas. Registra el trfico web desde la red local hacia el exterior. Controla el contenido web visitado y descargado. Controla la seguridad de la red local ante posibles ataques, intrusiones en el sistema, etc.

Funciona como una cach de pginas web. Es decir, almacena las pginas web visitadas por los usuarios y de esta manera las puede enviar a otros usuarios sin tener que acceder a Internet de nuevo. Guarda en cach las peticiones DNS e implementa una cach para las conexiones fallidas. Registra logs de todas las peticiones cursadas. Soporta el protocolo ICP que permite integrar cachs que colaboran y permite crear jerarquas de cachs y el intercambio de datos.

Como consecuencia de estas funciones, la implantacin de un servidor proxy-cach en una red proporciona las siguientes ventajas:

Reduce los tiempos de respuesta. Si la pgina web que se solicita est en la cach del servidor, sta se sirve sin necesidad de acceder de nuevo al servidor original, con lo cual se ahorra tiempo.

Disminuye el trfico en la red y el consumo de ancho de banda. Si la pgina web est almacenada en la cach del servidor, la peticin no sale de la red local y no ser necesario hacer uso de la lnea exterior consiguiendo as un ahorro en la utilizacin del ancho de banda.

Cortafuegos. Cuando se utiliza un servidor proxy-cach, ste comunica con el exterior, y puede funcionar como cortafuegos, lo cual aumentar la seguridad del usuario respecto a la informacin a la que se acceda.

Filtrado de servicios. Es posible configurar el servidor proxy-cach dejando slo disponibles aquellos servicios (HTTP, FTP,...) que se consideren necesarios, impidiendo la utilizacin del resto.

Cmo es un servidor proxy transparente?


Muchas organizaciones (incluyendo empresas, colegios y familias) usan los proxies para reforzar las polticas de uso de la red o para proporcionar seguridad y servicios de cach. Normalmente, un proxy Web o NAT no es transparente a la aplicacin cliente: debe ser configurada para usar el proxy, manualmente. Por lo tanto, el usuario puede evadir el proxy cambiando simplemente la configuracin. Una ventaja de tal es que se puede usar para redes de empresa.

Un proxy transparente combina un servidor proxy con NAT (Network Address Translation) de manera que las conexiones son enrutadas dentro del proxy sin configuracin por parte del cliente, y habitualmente sin que el propio cliente conozca de su existencia. Este es el tipo de proxy que utilizan los proveedores de servicios de internet (ISP).

SQUID3
Es un servidor situado entre la mquina del usuario y otra red (a menudo Internet) que acta como proteccin separarando las dos redes y como zona cach para acelerar el acceso a pginas web o poder restringir el acceso a contenidos. Es decir, la funcin de un servidor proxy es centralizar el trfico de una red local hacia el exterior (Internet). Slo el equipo que incorpora el servicio proxy debe disponer de conexin a Internet y el resto de equipos salen a travs de l. Como las peticiones haca Internet de los equipos de la red local son interceptadas por el servidor proxy, ste puede realizar una tarea de filtrado de accesos, impidiendo aquellos destinos que estn expresamente prohibidos en los archivos de configuracin del servicio. Squid no es un filtro de contenidos pero puede actuar como tal. En el aula se suele utilizar este servicio ya que permite llevar un control sobre la actividad de la red hacia el exterior del aula. En este caso lo usual es que el equipo que hace la funcin de servidor proxy disponga de dos interfaces de red. Una de ellas es utilizada para atender a la red local y la otra proporciona la conexin con Internet. Las peticiones de pginas web que se realizan desde el aula son interceptadas por la interfaz interna y reenviadas a la interfaz externa si cumplen los requisitos establecidos desde el servicio proxy. Hay que tener en cuenta que la mayora de los servidores web permiten la configuracin como proxy-cach (Apache, IIS,...), pero Squid slo es un proxy y no puede servir pginas por s mismo. Cuando decimos que Squid tambin funciona como cach significa que est guardando copia de los datos obtenidos de otras peticiones y de esa forma acelera el acceso a estos datos si se producen peticiones similares. Slo se acceder de nuevo a las pginas originales cuando se detecte que se han producido modificaciones, es decir los datos almacenados difieren de los datos en el servidor web de origen. Normalmente no existe una sola cach, sino que se tienen varios servidores (en mquinas diferentes) relacionados entre s mediante una estructura en rbol. Squid es un Servidor Intermediario (Proxy) de alto desempeo, que 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, aceleracin HTTP, cach de consultas DNS, filtracin de contenido y control de acceso por IP y por usuario.

Consiste bsicamente en un programa principal como servidor, un programa para bsqueda en servidores DNS, programas opcionales para reescribir solicitudes y realizar autenticacin y algunas herramientas para administracin y y herramientas para clientes. Al iniciar Squid da origen a un nmero configurable (5, de modo predefinido a travs del parmetro dns_children) de procesos de bsqueda en servidores DNS, cada uno de los cuales realiza una bsqueda nica en servidores DNS, reduciendo la cantidad de tiempo de espera para las bsquedas en servidores DNS. No puede 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 y WAIS se requerir hacer uso de un servidor SOCKS como Dante No se instala por defecto, pero se encuentra en los repositorios de Ubuntu, por lo que puede ser instalado a travs de Synaptic, Aptitude o apt-get La creacin y configuracin de un servidor proxy no transparente en Ubuntu 12.1 se realiza bsicamente en 3 pasos: 1) Instalacin del Squid3 Para instalar este servidor proxy simplemente se introduce el siguiente comando en la consola:
sudo apt-get install squid3

Esto instala todos los componentes necesarios del Squid3 en nuestra PC. Si no instala o nos devuelve algn error, a veces es necesario introducir el siguiente comando:
sudo apt-get update

Esto actualiza nuestros repositorios, y ya se debera de poder instalar el squid3 finalizada la actualizacin. 2) Configuracin del Squid3 Una vez instalado el squid3 procedemos a configralo, para ello debemos modificar el archivo /etc/squid3/squid.conf, para ello introducimos en consola :
sudo gedit /etc/squid3/squid.conf

Esto nos abrir un archivo bastante grande en el cual realizaremos las siguientes modificaciones: (para facilitar podemos usar el buscador de palabras de gedit) a. Localizar http_port: Este parmetro corresponde al puerto donde squid escuchara las peticiones.

Los puertos registrados recomendados para servidores intermediarios (Proxies) pueden ser el 3128 (por defecto) y 8080 a travs de TCP. http_port 3128 http_port 8080 Si se desea incrementar la seguridad, puede vincularse el servicio a una IP que solo se pueda acceder desde la red local. Considerando que el servidor utilizado posee una IP 10.10.7.15, puede hacerse lo siguiente: http_port 10.10.7.15:3128 http_port 10.10.7.15:8080

b) Localizar cache_mem: El parmetro cache_mem establece la cantidad ideal de memoria para lo siguiente: Objetos en trnsito. Objetos frecuentemente utilizados (Hot). Objetos negativamente almacenados en el cach.

De modo predefinido se establecen 8 MB. Si se posee un servidor con al menos 128 MB de RAM, 16 MB es el valor para este parmetro:

cache_mem 16 MB Aunque tambin es recomendable asignar la tercera parte de la memoria disponible.

c) Localizar cache_dir: El parmetro cache_dir se utiliza para establecer que tamao se desea que tenga el cach en el disco duro para Squid. De modo predefinido Squid utilizar un cach de 100 MB, de modo tal que encontrar la siguiente lnea: cache_dir ufs /var/spool/squid 100 16 256

Mientras ms grande sea el cach, ms objetos se almacenarn en ste y por lo tanto se utilizar menos el ancho de banda. La siguiente lnea establece un cach de 700 MB: cache_dir ufs /var/spool/squid 700 16 256 Los nmeros 16 y 256 significan que el directorio del cach contendr 16 directorios subordinados con 256 niveles cada uno.

d) Localizar ACL(Listas de control de acceso): Las Listas de Control de Acceso definen una red o bien ciertas mquinas en particular. A cada lista se le asignar una Regla de Control de Acceso que permitir o denegar el acceso a Squid. Listas de control de acceso, se establecen con la siguiente sintaxis: acl [nombre de la lista] src [lo que compone a la lista] Si se desea establecer una lista de control de acceso que abarque a toda la red local, basta definir la IP correspondiente a la red y la mscara de la sub-red. Por ejemplo, si se tiene una red donde las mquinas tienen direcciones IP 10.140.111.n con mscara de sub-red 255.255.255.0, podemos utilizar lo siguiente: acl miredlocal src 10.140.111.0/255.255.255.0 Notar que el ultimo digito del IP es 0. Ms conveniente es definir una Lista de Control de Acceso especificando un archivo localizado en cualquier parte del disco duro, y la cual contiene una lista de direcciones IP.: acl permitidos src "/etc/squid/permitidos"

El archivo /etc/squid/permitidos contendra algo como siguiente: 10.140.111.2 10.140.111.3 10.140.111.4 10.140.111.5 10.140.111.6 En caso de querer restringir el acceso de una pc, basta con eliminarla de la lista. Es conveniente definir una Lista de Control de Acceso especificando los dominios bloqueados en un archivo localizado en cualquier parte del disco duro, y la cual contiene una lista de los dominios: acl bloqueados dstdomain "/etc/squid/bloqueados" El archivo /etc/squid/bloqueados contendra algo como siguiente: www.microsoft.com www.ibm.com www.hotmail.com

En este caso el comando url_regex indica al proxy que busque en las direcciones las palabras clave que introduciremos, hay dos formas de hacerlo: i. Escribir acl noway url_regex Facebook YouTube Tutv,en este caso el proxy impedir el acceso a las cualquier pgina web que contenga dichas palabras.(Notar que cada nombre se debe separar con un espacio) Escribir acl noway url_regex /etc/squid3/nopermitidos, en este caso el proxy acceder al archivo nopermitidos y buscara las palabras clave escritas en este. (Las palabras son una por lnea)

ii.

e) Localizar http_access: Las Reglas de control de Acceso definen si se permite o no el acceso hacia Squid. Se aplican a las Listas de Control de Acceso. La sintaxis bsica es la siguiente: http_access [deny o allow] [lista de control de acceso] En este ejemplo la regla que establece acceso permitido a Squid a la Lista de Control de Acceso denominada permitidos: http_access allow permitidos

La expresin!, significa no. Pueden definirse as respecto de dos listas de control de acceso, lista1 y lista2, que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2: http_access allow lista1 !lista2 Esta regla es til cuando se tiene un gran grupo de IP dentro de un rango de red al que se debe permitir acceso, y otro grupo dentro de la misma red al que se debe denegar el acceso.

Guardamos el archivo y procedemos a crear /etc/squid3/nopermitidos, para ello escribimos en consola:


sudo gedit /etc/squid3/nopermitidos

el

archivo

En este archivo podemos escribir las palabras que queremos que bloquee el proxy, una por lnea (para nuestro caso), o bien la lista de IPs a denegar, para ello leer la parte de la configuracin ACL.

Guardamos el archivo y proseguimos a reiniciar el servicio squid, para ello escribimos en consola:
sudo service squid3 restart

Si todo no nos devuelve ningn error, proseguimos. Notaremos que al acceder al navegador y escribir en nuestro navegador cualquier palabra o direccin que incluya las palabras no permitidas este accede normalmente, no se asusten que an falta un paso de la configuracin, ya que este es un proxy no transparente.

3) Configuracin del proxy del navegador Ahora debemos acceder al nuestro navegador y configurar el proxy de este, en mi caso usaremos Mozilla.

En Proxy HTTP debemos de poner la IP de nuestro servidor proxy y en Puerto el puerto que pusimos anteriormente, ahora recargamos nuevamente el navegador con la palabra no permitida y nos debera mostrar lo siguiente:

Adicionalmente podemos configurar el visible_hostname,cache_mgr y el idioma del error a mostrar. Configurar visible_hostname: Nos permite modificar el nombre del host de acceso, que por defecto es localhost. Podemos poner cualquier nombre y se encuentra en la parte mas inferior del mensaje. Editamos el archivo /etc/squid3/squid.conf ejecutando el comando:
sudo gedit /etc/squid3/squid.conf

Configurar cahe_mgr: Nos permite establecer el correo del administrador, por defecto es webmaster.

Configurar el idioma de error: A veces la pagina de error se muestra en otro idioma, para configurarlo debemos introducir la siguiente lnea:

Esto indica a squid buscar el directorio de error, queda por sobreentendido que squid debe tener esos archivos, es decir, en mi caso, debe existir la siguiente ruta: /usr/share/squid3/errors/es, que es la carpeta espaol. Como ya sabemos cualquier cambio en la configuracin debemos reiniciar el servidor con:
sudo service squid3 restart

You might also like