You are on page 1of 35

Squid

T e o r a y C o n fi g u r a c i n

Autores: David Milla y Tamara Beisti 2 ASIR IES Comercio (La Rioja)

Squid: Teora y configuracin

ndice
Teoria .......................................................... Error! Marcador no definido.
Introduccin ............................................................................................ 3 Tipos de proxy ......................................................................................... 4
Proxy de HTTP y HTTPS ............................................................................. 4 Proxy transparente .................................................................................. 4 Proxy cache............................................................................................ 4 Proxy inverso .......................................................................................... 5

Squid...................................................................................................... 5
Introduccin a squid ................................................................................. 5 Seguridad de Squid .................................................................................. 5

Fuentes................................................................................................... 7

Prctica

(Hacer minimo los ejercicios obligatorios, optativos los extras) .......................... 7

Configura un proxy web ............................................................................. 7 Restriccin por ip .................................................................................... 15 Configuracin proxy cach ....................................................................... 17 Configuracin Proxy Transparente ............................................................. 19 Configuracin autenticacin (webmin) ........................................................ 21 Configuracion autenticacin squid (texto) ................................................... 29 Modificacin de la pgina de error squid ..................................................... 30 Configuracion autenticacin ldap squid ....................................................... 32

Examen Test ..................................................................................... 32

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin

Teora
Introduccin
La palabra proxy se usa en muchas situaciones en donde tiene sentido un intermediario. 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. De ellos, el ms famoso es el servidor proxy de web (comnmente conocido solamente como proxy). Intercepta la navegacin de los clientes por pginas web, por varios motivos posibles: seguridad, rendimiento, anonimato, etc. Su funcionamiento es tan simple como imaginar un escenario en el que tenemos tres ordenadores, un cliente, un servidor proxy y un servidor web, cuando el cliente quiere acceder a los recursos del servidor web manda una peticin, pero esa peticin la manda al servidor proxy para que la enve l, por lo cual el servidor web no sabr que el cliente fue el que pidi el recurso originalmente, sino que pensara que fue el servidor proxy.

Aunque son muy tiles tambin tienen sus ventajas y desventajas: Ventajas En general, los proxies hacen posibles varias cosas: 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. Por tanto, slo uno de los usuarios (el proxy) ha de estar equipado para hacer el trabajo real.

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin


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. Desventajas En general el uso de un intermediario puede provocar: Abuso. Al estar dispuesto a recibir peticiones de muchos usuarios y responderlas, es posible que haga algn trabajo que no deba. Por tanto, ha de controlar quin tiene acceso y quin no a sus servicios, cosa que normalmente es muy difcil. Carga. Un proxy ha de hacer el trabajo de muchos usuarios. Intromisin. Es un paso ms entre origen y destino, y algunos usuarios pueden no querer pasar por el proxy. Y menos si hace de cach y guarda copias de los datos. Incoherencia. Si hace de cach, es posible que se equivoque y d una respuesta antigua cuando hay una ms reciente en el recurso de destino. Irregularidad. El hecho de que el proxy represente a ms de un usuario da problemas en muchos escenarios, en concreto los que presuponen una comunicacin directa entre 1 emisor y 1 receptor (como TCP/IP).

Tipos de proxy
Aunque hay muchos tipos de proxies como proxy web, ftp, arp... y mas, veremos ms a fondo el proxy web, ya que es el ms usado.

Proxy de HTTP y HTTPS


Utilizan el protocolo TCP que es en el que operan HTTP y HTTPS, este proxy es el ms comn y suele usarse como intermediario para mantener el anonimato en internet, o restringir el acceso a pginas web. Adems de tener todas las caractersticas propias de un proxy, este proporciona una memoria cach para el almacenamiento de las pginas web y los contenidos descargados, haciendo las conexiones ms rpidas.

Proxy transparente
Como los proxies que veremos ms adelante, este no es ms que una caracterstica que se le puede aplicar a los verdaderos tipos de proxies como son el proxy web y ftp. Esta caracterstica permite a los administradores controlar el acceso a la web mediante reglas de acceso sin que el usuario tenga que configurar nada y sin que se d cuenta de que esta accediendo a internet mediante un proxy.

Proxy cache Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin


Esta caracterstica reserva un espacio en memoria que nosotros le digamos y, mediante unos algoritmos que podemos modificar, guarda las pginas web y los contenidos descargados para acelerar futuras conexiones Los tipos de algoritmos son: LRU. con este algoritmo se guardan las paginas ms recientes a las que hemos accedido mientras borra las ms antiguas LFUDA. guarda en cache los objetos grandes mas visitados y descarta los pequeos. GDSF. guarda los objetos pequeos ms utilizados descartando los ms grandes

Proxy inverso
Esta caracterstica permite conectarse desde internet a uno de nuestros servidores en nuestra red protegindolo de posibles ataques externos ya que no lo hacemos pblico como con solo un nat esttico, sino que podemos aplicar reglas de acceso haciendo su publicacin ms segura.

Squid
Introduccin a squid
Aunque haya muchos programas para configurar y manejar proxies, como Dante o el propio de Windows, Squid sigue siendo uno de los ms utilizados por su gran potencia y modulabilidad, ya que puede construir un proxy web y uno ftp en el mismo servidor sin tener que cambiar mucha configuracin lo que hace que su uso sea muy extendido. Squid usa un fichero de configuracin que est en /etc/squid/squid.conf y es donde se configuran todos y cada uno de los parmetros, es un fichero bastante largo ya que incluye el manual y la configuracin predeterminada que trae de fbrica. Las directivas de squid nunca deben llevar un espacio delante de ellas por lo que squid no las reconocera. El funcionamiento del fichero es muy fcil una vez que lo has entendido, lo bsico que debemos saber de su configuracin son la creacin de las acl (que veremos ms adelante), la aplicacin de dichas acl, con esta configuracin mnima ya podramos tener un proxy funcional y acorde a nuestras necesidades. Squid a pesar de su potencia no puede trabajar con protocolos como SMTP, POP3,
TELNET, SSH, IRC, etc. Por lo que necesitaramos encontrar otras alternativas.

Seguridad de Squid
ACL
Las acl (listas de control de acceso) son, en squid, una directiva en la que determinamos el nombre de un equipo o el nombre de un fichero que contenga palabras que luego querremos filtrar. Su sintaxis es bastante sencilla, ahora enumerar sus partes:

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin


Acl. es la palabra clave para crear la acl Nombre acl. es el nombre que le daremos a esa acl para poder reconocerla ya que como veremos ms adelante luego las aplicaremos haciendo referencia al nombre de la acl, este nombre puede ser el que nosotros queramos

Tipo de acl.

con este tipo indicamos el tipo de datos que le

introduciremos ms tarde, como podra ser una ip o red, palabras que contenga una pgina, palabras que contenga la url o ms, para ver los distintos tipos de acl que hay podis entrar a esta pgina http://wiki.squid-cache.org/SquidFaq/SquidAcl o si mejor prefers en espaol en esta otra http://dns.bdat.net/documentos/squid/x30.html Contenido o fichero incluido. en este apartado daremos el contenido que queramos restringir o con el que queramos trabajar, podemos hacerlo directamente escribindolo en la acl misma: Ej. Acl nombre urlregex google O podemos hacerlo incluyendo un archivo creado por nosotros, puede llamarse y estar donde quiera: Ej. Acl nombre urlregex /etc/nombre (Fichero nombre) Google

Http_access
Esta directiva restringe el acceso al proxy o a sus listas de control de acceso. Con la directiva http_access aplicamos las acl que habamos creado anteriormente haciendo as que se cumplan y creando restricciones, sus partes son: http_access. palabra clave para usar la directiva permiso. el permiso puede ser allow (permitir) o deny (denegar) nombre de acl. con esta referencia decimos si queremos permitir el acceso a los sitios nombrados anteriormente o si queremos denegar el acceso, tambin podemos aadir el smbolo ! para indicar que queremos lo contrario, por ejemplo, http_access deny !nombre, esta directiva denegara el accedo a todas las paginas que no estn dentro de nombre.

Http_port y visible_hostname

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin


Estas dos directivas sirven para asignar el puerto en el que queremos que escuche el servidor, y la ip por la que queremos que responda el proxy y para que muestre el nombre del proxy (respectivamente). En algunas distribuciones Linux hace falta obligatoriamente la directiva visible_hostname, aunque en opcional en la gran mayora de distribuciones. Su sintaxis es: visible_hostname Proxy (este nombre puede ser cualquier nombre) Con http_port especificamos el puerto de escucha del proxy, por defecto es 3128, aunque tambin podemos indicarle porque ip queremos que sirva ese proxy. Su sintaxis es http_port ip (opcional):3128. En esta directiva es donde podemos indicar el tipo de proxy que queremos por ejemplo aqu es donde deberemos mirar si queremos configurar un proxy transparente.

Autenticacin
Con la autenticacin podemos conseguir que el usuario tenga que ingresar una contrasea y un usuario si quieren navegar. Squid por defecto tiene unos esquemas y programas implantados para implementar la autenticacin, por lo cual solo deberemos leer el fichero de configuracin y elegir el que ms nos guste, como por fichero, por ldap, etc

Fuentes
http://www.alcancelibre.org/staticpages/index.php/19-0-como-squid-general http://administradores.educarex.es/wiki/index.php/Proxy_cach%C3%A9_y_fi ltrador_web:_squid

Prctica

(Hacer mnimo los ejercicios obligatorios, optativos los extras)

Configura un proxy web


Crea un escenario con un cliente, un servidor proxy y un servidor web, configura el servidor proxy como proxy web con SQUID y configurarlo para que funcione por el puerto 3167, comprobarlo, que no deje acceder a los sitios www.minijuegos.com, www.rojadirecta.me, www.marca.com, ni a los sitios que contengan la palabra juego, proxy o chat a parte de no dejar abrir o descargar ficheros .swf, .mp3 o .avi Para cambiar el puerto de squid entramos en /etc/squid/squid.conf y buscamos la directiva http_port, le indicamos la ip y puerto por la que va a escuchar peticiones hacia el proxy. Si

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin

ponemos la ip restringimos el proxy para que solo responda peticiones de proxy por esa ip.

Comprobamos que est activo en esa ip y ese puerto con netstat -lan

Creamos las acls para denegar el acceso a los sitios y a los ficheros Acl:

Aplicacin acl:

Ficheros y su contenido:

Configuramos el proxy en el navegador web del cliente:

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin

Probamos que tenemos bien la configuracin de squid entrando en las pginas permitidas y en las prohibidas:

Autores: David Milla y Tamara Beisti

10

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

11

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

12

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

13

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

14

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

15

Squid: Teora y configuracin

Restriccin por ip
Configurar el proxy para que solo salgan sin restricciones el ordenador del profesor (192.168.199.100) y las siguientes ips: 192.168.199.200 192.168.199.150 192.168.199.110 192.157.16.100 Comprueba que acceden a internet sin restricciones. Creamos el fichero con las ips:

Autores: David Milla y Tamara Beisti

16

Squid: Teora y configuracin

Acl y aplicacin acl:

Cambiamos la ip al cliente por una de las permitidas y comprobamos que no le afectan las restricciones

Autores: David Milla y Tamara Beisti

17

Squid: Teora y configuracin

Configuracin proxy cach


Configura el proxy cache con SQUID indicando que su mtodo de almacenamiento ser diskd, y tendr 250MB de almacenamiento, su memoria swap empezara a remplazar elementos al llegar al 85% de su capacidad y ser ms agresivo al llegar al 96%

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin Introducimos las siguientes directivas en squid.conf:

18

Para comprobar que funciona nos descargamos un archivo, borramos la cache del navegador y volvemos a descargarlo, veremos que baja notablemente ms deprisa.

Autores: David Milla y Tamara Beisti

19

Squid: Teora y configuracin

Configuracin Proxy Transparente


Configuracin proxy transparente SQUID y queremos que cuando entren a paginas http y https las filtre el proxy. Aadimos la opcin transparent en http_port, en muchos tutoriales se podr ver que hay que poner http_access allow redlocal, esa directiva solo sirve para que esa

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin red pueda atravesar el proxy sin restricciones, por lo tanto para nuestro caso no nos sirve.

20

Creamos un script con vim, por ejemplo, y lo ejecutamos para as tener acceso a internet y que nos redirija los puertos 80 y 443 al 3167 que es el del proxy

Comprobamos que intentamos entrar en una de las pginas prohibidas y nos da error

Si no llegase a funcionar comprobar que la puerta de enlace del cliente es la ip del servidor proxy.

Autores: David Milla y Tamara Beisti

21

Squid: Teora y configuracin

Configuracin autenticacin (webmin)


Configuracin SQUID a travs de webmin desactiva el modo transparente y activa la autenticacin Primero instalamos las libreras con aptitude y luego webmin con wget

Entramos a l desde el cliente escribiendo https://ip_servidor:10000 Una vez dentro de webmin, buscamos squid e instalamos el MODULO squid

Quitamos el modo transparente ya que con autenticacin no funciona

Para activar la autenticacin primero elegimos el programa que usaremos para crear usuarios y almacenarlos, elegiremos el por defecto de webmin

Autores: David Milla y Tamara Beisti

22

Squid: Teora y configuracin

Creamos una acl de autenticacin externa y decimos los usuarios a los que afectara esa acl y como se llamara esta.

Aplicamos la acl con una restriccin de proxy, creamos una nueva y elegimos que cualquier usuario que no coincida con los que hemos puesto en la acl password no podrn autenticarse

Autores: David Milla y Tamara Beisti

23

Squid: Teora y configuracin

La aplicamos antes del http_access deny al porque si no nos funcionaria esta directiva. Creamos un nuevo usuario y comprobamos que solo funciona con el usuario que acabamos de crear en webmin

Y reiniciamos squid Comprobamos que los usuarios del proxy son diferentes a los del sistema, intentamos entrar con root

Autores: David Milla y Tamara Beisti

24

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

25

Squid: Teora y configuracin

O tambin podramos decirle que solo queremos que ciertos usuarios puedan acceder, as aunque haya 100 usuarios registrados solo entraran los que nosotros queramos, para ello creamos una acl diciendo que solo queremos permitir el acceso al usuario David

Autores: David Milla y Tamara Beisti

26

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

27

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

28

Squid: Teora y configuracin

Autores: David Milla y Tamara Beisti

29

Squid: Teora y configuracin

Extras
Configuracin autenticacin squid (texto)
Configuramos una autenticacin por fichero para el usuario David en modo texto. Aadimos la directiva auth_param basic program que ser el que le indique que programa usaremos para la autenticacin del proxy y el fichero donde se encuentran los usuarios y contraseas. Le indicamos el programa ncsa_auth ya que es una autenticacin bsica por fichero.

Creamos la acl password con el tipo de acl proxy_auth e indicamos que solo podr entrar David La aplicamos ms abajo diciendo que todo usuario que no est en el fichero no podr autenticarse

Para crear el fichero de usuarios necesitaremos instalar mini-httpd ya que necesitamos el comando htpasswd que no viene por defecto en la maquina

Autores: David Milla y Tamara Beisti

30

Squid: Teora y configuracin

Creamos el fichero donde indicamos antes que estara Ejecutamos el comando htpasswd y al indicarle el usuario nos pide la contrasea que luego ser encriptada y aadida al fichero.

Comprobamos que funciona

Modificacin de la pgina de error squid


Modifica la pgina de error a tu gusto. Buscamos la directiva error_directory y cambiamos la ruta a la carpeta que contiene las pginas de errores en espaol

Autores: David Milla y Tamara Beisti

31

Squid: Teora y configuracin

Modificamos el fichero de ERR_ACCESS_DENIED que es el error que sale cada vez que no permite entrar a una pgina porque hemos restringido su acceso la modificamos segn nuestros gustos o necesidades.

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin Comprobamos que funciona provocando un error de acceso denegado

32

Configuracin autenticacin ldap squid


Configura de la manera que quieras la autenticacin de squid para que se registre contra un ldap y comprueba que funciona.

Fuentes
http://www.alcancelibre.org/staticpages/index.php/19-1-como-squid-autenticacion

Examen Test
1. archivo de configuracin de squid a) proxy.conf b) squid.conf c) squid.config d) proxy.config

Autores: David Milla y Tamara Beisti

33

Squid: Teora y configuracin

Respuesta: b) el fichero de configuracin de squid se encuentra en /etc/squid/squid.conf 2. protocolo de los proxys a) mismo protocolo que el de su funcin b) protocolo RTP c) no usa ningn protocolo ya que solo usa puertos d) protocolo TCP

Respuesta: a) si el proxy es un proxy web jugar con los protocolos http y https, mientras que si es ftp jugara con ese mismo protocolo, etc... 3. capa en la que actan los proxys a) aplicacin b) transporte c) red y transporte d) aplicacin, red y transporte

Respuesta: c) el proxy puede desde usar el protocolo arp, por lo cual trabaja en capa de red, hasta el protocolo http que es de transporte, aunque pueda bloquear si mostrar una pgina o no, no acta en capa de aplicacin, sino en la capa de transporte cuando se crea la peticin de esa pgina. 4. Cul es la utilidad de la directiva http_access allow redlocal? a) permite a esa red usar el proxy b) aplica las restricciones a esa regla c) permite a esa red saltarse el proxy d) indica que la redlocal est directamente conectada con el proxy

Respuesta: c) tal como pone en el fichero de configuracin de squid, esta directiva permite a los exploradores de esa red o equipo no sern afectados por las reglas de acceso del proxy 5. elige la directiva mal puesta a) #http_port 3128 b) # http_port 3128 c) #http_port 3218 d) Todas son correctas

Autores: David Milla y Tamara Beisti

Squid: Teora y configuracin Respuesta: b) las directivas siempre deben escribirse sin espacio al principio en el fichero de configuracin de squid 6. Qu hay que configurar para hacer funcionar un proxy transparente? a) acl, navegador web, fichero especificando el puerto a hacer transparente b) puerta de enlace, iptables, puertos usados c) cach, acl, navegador d) puerta de enlace, puerto transparente, iptables

34

Respuesta: d) a diferencia del proxy convencional el transparente tiene la particularidad de no quedar registrado en el navegador la utilizacin de un proxy, para que esto funcione lo que usa es la ip del proxy como puerta de enlace y una serie de iptables (firewall) para redireccionar el puerto al que queremos acceder hacia el puerto del proxy. 7. Cul de estas no es una capacidad de squid? a) filtrado de urls b) control de acceso en funcin de la hora c) control de acceso al proxy por usuario y contrasea d) Todas son correctas

Respuesta: d) squid tiene estas capacidades y muchas ms pero estas son las ms usadas en un entorno de administracin. 8. Cul es la sintaxis correcta de una acl? a) acl sitiosNO urlregex -i /etc/squid/sitiosNO b) access_list sitios no urlregex /etc/squid/sitiosNO c) acl sitiosNO url /etc/sitiosNO d) acl sitiosNO src /etc/sitiosNO

Respuesta: a) para la correcta implementacin de una acl deberemos poner la palabra clave acl seguida del nombre que daremos a esa acl y a la que luego haremos referencia para aplicarla al proxy, el tipo de acl que usaremos como por ejemplo src (ips o redes), urlregex (palabras clave en una url), urlpathregex (extensiones en una url). 9. tenemos esta configuracin del fichero squid.conf, Por qu no funciona? http_port 3167 transparent visible_hostname ProxySquid acl nombre urlregex /etc/squid/nombre acl localnet src 192.168.199.0/24 http_access allow localnet http_access deny nombre Autores: David Milla y Tamara Beisti

35 http_access allow all

Squid: Teora y configuracin

a) acl mal redactada b) los clientes de localnet se saltan el proxy c) puerto mal puesto d) modo transparente solo sirve para acelerar la cach

Respuesta: b) al aplicar la directiva http_access allow localnet especificamos que los exploradores de localnet pueden saltarse el proxy sin tener ninguna restriccin. 10. Cual es una afirmacin falsa sobre squid? a) puede ser utilizado como servidor proxy de todos los protocolos conocidos b) debe tener al menos una lista de control de acceso c) el fichero donde especificamos el contenido no permitido por el proxy puede tener cualquier nombre d) Todas son correctas

Respuesta: a) squid es un proxy muy potente, pero no funciona con ciertos protocolos ms potentes y complejos como pop, smtp...

Autores: David Milla y Tamara Beisti