Proxy Squid

download Proxy Squid

of 7

description

Proxy Squid

Transcript of Proxy Squid

  • Servidor Proxy SquidIntroduccinUn proxy de conexin a Internet es un servidor que hace de intermediario entre los PCs de la red y el routerde conexin a Internet, de forma que cuando un usuario quiere acceder a Internet, su PC realiza la peticin alservidor Proxy y es el Proxy quien realmente accede a Internet. Posteriormente, el Proxy enviar los datos al PC delusuario para que los muestre en su pantalla. El PC del usuario no tendr conexin directa con el router, sino queacceder a Internet por medio del proxy.

    Ventajas de disponer de un proxy:-Los PCs de los usuarios no tienen acceso al router, todas las comunicaciones exteriores pasarn por el Proxy, loque nos permitir tener las comunicaciones bajo control. Podemos permitir o denegar el acceso web, ftp, email,messenguer, p2p, etc...-Las pginas se cachean en la memoria temporal del proxy lo cual acelera la descarga cuando varios usuariosacceden a las mismas pginas a la vez.-Es fcil crear una lista de urls prohibidas a las que el proxy denegar el acceso.-Es fcil permitir o denegar el acceso a subredes o a PCs concretos. Si diseamos la red de forma que cada aula delcentro tenga un rango determinado, por ejemplo 10.0.X.Y donde X es el nmero de aula e Y el nmero de PC, sera

    1 of 7

  • posible permitir o denegar la conexin a Internet aula por aula.-El proxy guarda informes de todas las conexiones que hacen los usuarios. Al principio puede ser interesante ver aqu pginas de contenido inadecuado acceden los usuarios, para agregarlas a la lista de urls prohibidas.-Los PCs de nuestra red estn ms seguros de ataques externos ya que el proxy hace de barrera cortafuegos.

    Inconvenientes de la utilizacin de un Proxy:No todo son ventajas, tambin hay algn inconveniente en la utilizacin de un Proxy:-El inconveniente de compartir una conexin a Internet con un proxy es que trabaja a nivel de aplicacin y portanto del protocolo de cada aplicacin (HTTP, FTP, SMTP, etc...). Esto obliga a congurar las aplicaciones(navegador, clientes de correo, clientes ftp, etc...) para que utilicen el proxy-Todas las comunicaciones con el exterior pasarn por el servidor. Si el proxy falla, la red se quedar sin conexin aInternet. Para subsanar lo ms rpidamente posible el problema ante un fallo del Proxy, ser conveniente disponerde un proxy de repuesto.-El proxy requiere mantenimiento. Para que todo funcione, es necesario que exista un administrador de la red quese encargue de actualizar, revisar, mantener y reparar el proxy cuando deje de funcionar.

    Instalacin del Proxy squidLinux dispone del Proxy squid. Se trata de una aplicacin de gran xito que se lleva utilizando muchos aos ydispone de cientos de posibilidades para personalizar su funcionamiento a nuestras necesidades.

    Vamos a instalar el proxy squid en la mquina virtual Debian con entorno grco que tenemospreparada en el punto anterior: "Congurar 2 tarjetas de red en VirtualBox".Para instalar la ltima versin de squid, podemos hacerlo con apt-get desde una consola:

    //Actualizamos repositorios:

    $sudo apt-get update

    //Actualizamos software ya instalado:

    $sudo apt-get upgrade

    // Instalacin del servidor Proxy squid$sudo apt-get install squid3

    2 of 7

  • Arranque y parada del proxy squidEl servicio squid, al igual que todos los servicios, dispone de scripts de arranque y parada en la carpeta /etc/init.d.Debemos ejecutarlos desde una consola:

    // Arrancar o reiniciar el servidor squid$sudo /etc/init.d/squid3 restart

    // Parar el servidor squid$sudo /etc/init.d/squid3 stop

    // Recargar conguracin del servidor squid$sudo /etc/init.d/squid3 reload

    Conguracin bsica del proxy squidEl archivo de conguracin del proxy es el archivo /etc/squid3/squid.conf. En este archivo se usa el smboloalmuhadilla: # para indicar comentarios.

    Como vamos a modicar este chero y por seguridad, haremos una copia de la versin original:$sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.bak

    Si observamos dicho archivo, veremos que es un archivo muy extenso en el que hay cientos de parmetros quepodemos establecer, pero para una utilizacin bsica, son unos pocos los parmetros que debemos congurar:MEMORY CACHE OPTIONS

    En esta seccin estableceremos la memoria RAM utilizada para la cach. Una buena opcin es utilizar sobre untercio de la memoria RAM del sistema. Ejemplo, si nuestro sistema tiene 512 MB de memoriaRAM, una buena opcin sera:

    3 of 7

  • #RAM utilizada por squid, busca este parmetro en el chero y modifcalo (por defecto tiene 100 MB)cache_mem 192 MB

    DISK CACHE OPTIONSEn esta seccin estableceremos el espacio de disco duro utilizado para la cach. Una buena opcin es utilizar el50% de la capacidad total del disco duro. Ejemplo, si nuestro disco tiene sistema tiene 80 GB de memoria, unabuena opcin sera utilizar 40 GB. Deberemos utilizar la palabra clave cache_dir seguida de la palabra ufs que es elformato utilizado por squid, de la carpeta donde queremos que sealmacene la cache, el tamao de la cach en MB, el nmero de subdirectorios de primer nivel y el nmero desubdirectorios de segundo nivel. Ejemplo, si queremos que la cach se guarde en /var/spool/squid, que utilice 40GB y que cachee hasta 16 subdirectorios de primer nivel y hasta 256 subdirectorios de segundo nivel,escribiremos:

    #Espacio en disco utilizado por squidcache_dir ufs /var/spool/squid 40000 16 256

    ACCESS CONTROL (Control de Acceso)En esta seccin estableceremos los permisos de acceso, es decir, quien puede navegar y quien no (en principionadie). Lo primero que tendremos que hacer es crear listas de control de acceso (Access Control List - ACL) y luegodar permisos a dichas listas. Por defecto, squid viene congurado para actuar como cach de acceso a Internet,pero no tiene creadas listas de control de acceso. Si conguramos el navegador de Internet de los PCs cliente paraque utilicen el Proxy, veremos que tenemos denegado el acceso al Proxy. Para empezar a disfrutar del Proxy,tendremos que crear una lista de control de acceso con el rango de nuestra red y darle permiso.

    Una lista de control de acceso (acl) se crea utilizando la palabra acl seguido del nombre que queramos dar a la listay seguido de una condicin que cumplirn los miembros de la lista. Entre las condiciones ms utilizadasdestacamos: src (IPs o URLs origen), dst (IPs o URLs destino), port (puertos) y proto (protocolos).

    *Ejemplo:#Permiso para que navegue toda mi red, editamos:

    $sudo nano /etc/squid3/squid.conf

    4 of 7

  • acl todos src 192.168.0.0/24 #red de clase C, OJO meter cada cosa en su seccin, en nuestro caso en laseccin: ACCESS CONTROL. Y con el rango de IP que tengis en vuestra red interna, esta es una subred:192.168.0

    http_access allow todos #Esto puede ir debajo de: # INSERT YOUR OWN RULE(S) HERE TO ALLOWACCESS FROM YOUR CLIENTS

    La mscara puede ser representada de la siguiente forma 10.2.1.2/8 donde el /8 indica que los 8 bits mssignicativos de mscara estn destinados a redes, es decir /8 = 255.0.0.0. Anlogamente (/16 = 255.255.0.0) y(/24 = 255.255.255.0).

    Es decir, primero le asignamos el nombre de todos a la red: 192.168.0.0/24. Y en la siguiente lnea le damospermiso a esa red (allow) de nombre: todos.

    Vamos a comprobar que nuestro proxy funciona:

    -Haz que una mquina virtual cliente (da igual que sea un cliente windows o linux) est en red interna y se vea(est en la misma red) que la tarjeta de red interna de la mquina virtual que estamos congurando como servidorproxy, para ello asgnale una ip ja.-Accede la siguiente entrada: "Congurar el navegador cliente para que use el Proxy" que se encuentra enesta seccin y congura el cliente de forma adecuada.-Comprueba que tu cliente puede acceder a internet a pesar de estar congurada su tarjeta de red como redinterna. Gracias al proxy que acabamos de instalar.

    -Vamos a comprobar en el log de squid los accesos realizados, para ello haz:

    $sudo cat /var/log/squid3/access.log | more

    Observa la informacin.

    -Acl dstdomainPermite generar la lista de destinatarios a partir de dominios. La sintaxis general es:

    acl aclname dstdomain .dominio1 .dominio2.

    5 of 7

  • Los dominios a incluir en la lista de acceso siempre tienen que empezar con un punto.

    Por ejemplo para prohibir a los trabajadores de una empresa el acceso a la prensa deportiva desde su puesto detrabajo:

    acl prensaDepor dstdomain .marca.com .as.com

    http_access deny prensaDepor

    url_regexPermite utilizar expresiones regulares para denir la lista de url de acceso. Cuando se acceda a una web, porejemplo www.tucasino.es se comprobar si existe coincidencia con la expresin regular denida. Por ejemplo paraincluir todas las url que incluyan la palabra casino:

    acl casinos url_regex casino

    http_access deny casinos

    Inconvenientes:-Si una pgina que no tiene nada que ver con los casinos, incluyera la palabra casino, no se podra acceder.-Si un casino online no lleva la palabra casino en su direccin no se bloquear.

    AutenticacinVamos a ver cmo congurar squid para que los usuarios tengan que escribir usuario y contrasea paraidenticarse para navegar. As sabemos quin est navegando y reclamar responsabilidades sobre sus acciones.Squid tiene varios mdulos para autenticar. Nosotros usaremos el mdulo ncsa_auth

    Pasos:1-Preparacin del chero de claves. Vamos a genera un chero /etc/squid3/claves que contenga la contrasea delusuario: pepe con la contrasea: calabaza

    Para poder manejar el chero de claves vamos a utilizar el comando htpasswd este comando est incluido en unpaquete que se llama apache2-utils

    6 of 7

  • Utilizando este comando generamos el chero de claves con un usuario de nombre pepesudo htpasswd -c /etc/squid3/claves pepe

    Una vez ejecutado nos pide la contrasea: calabaza

    La opcin '-c' se usa la primera vez para que cree el chero. Para aadir ms usuarios no habra que usarla.2-Activar el mdulo ncsa_auth y conguraremos Squid para que lo utilice:Localiza las siguientes lneas en el squid.conf; tienen que ser descomentadas-> Borra el carcter: #

    auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/clavesauth_param basic children 5auth_param basic realm Mi Squid proxy-caching web serverauth_param basic credentialsttl 2 hours

    En la primera lnea indicamos el mdulo a usar en la autenticacin, y el chero de claves generado.El parmetro children indica el nmero de procesos que se generarn para llevar a cabo la autenticacin.El parmetro Realm indicamos un mensaje que se mostrar al cliente cuando acceda para introducir su nombre ycontrasea.El parmetro credentialsttl es el tiempo que durarn las credenciales una vez obtenidas.

    3-Aadir la lista de acceso para que se validen por ncsa

    acl validado proxy_auth REQUIRED

    A cualquier regla http_acces que aadamos la acl validado, le mostrar al usuario la ventana de validacin ycomprobar si el usuario se corresponde a alguno del chero claves.

    7 of 7