Imsi - U06 - Servidor Proxy - Presentacion

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Imsi - U06 - Servidor Proxy - Presentacion as PDF for free.

More details

  • Words: 3,090
  • Pages: 35
Instalación y mantenimiento de servicios de Internet

Unidad 6

CONFIGURACIÓN DE UN SERVIDOR PROXY-CACHÉ: SQUID Andrés Rosique Hernández [email protected]

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Licencia Esta obra está bajo una licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc-sa/3.0/es/ o envíe una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

U04. Configuración de un servidor ftp: ProFTPD

2

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Índice 1.Introducción 2.Funcionamiento 3.Instalación: Suse – Ubuntu – Webmin 4.Ejecución 5.Configuración 6.Control de acceso 7.Dansguardian: Introducción – Funcionamiento – Configuración 8.Glosario 9.Bibliografía

U06. Configuración de un servidor proxy-caché: Squid

3

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Introducción ●

Squid es un programa de software libre (bajo licencia GPL) que implementa: – –





Un servidor Proxy. Un demonio para Web caché.

Tiene una amplia variedad de utilidades, desde acelerar un Servidor Web, guardando en caché peticiones repetidas a DNS y otras búsquedas para un grupo de usuarios que comparten recursos de la red, hasta caché de Web, además de añadir seguridad filtrando el tráfico. Está especialmente diseñado para ejecutarse bajo entornos Unix-like.

U06. Configuración de un servidor proxy-caché: Squid

4

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Introducción (2) ●



Squid ha sido desarrollado durante muchos años y se le considera muy completo y robusto. Soporta muchos protocolos, aunque se usa principalmente para HTTP y FTP. Soporta también TLS, SSL, Internet Gopher y HTTPS.

U06. Configuración de un servidor proxy-caché: Squid

5

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Funcionamiento ●

● ●

Squid se sitúa entre el navegador web e Internet interceptando su comunicación. Squid escucha en el puerto 3128. El flujo de eventos (simplificado) es el siguiente: 1.El cliente hace una petición a Squid. 2.Squid comprueba la petición con las reglas ACL. ● ●

Si las reglas admiten la petición, entonces vamos al paso 3. En otro caso, informa con un error al cliente.

3.Squid revisa su caché por si tiene en ella el contenido solicitado. ● ●

Si está en su caché, lo devuelve al navegador. En otro caso, reenvía la petición a Internet.

U06. Configuración de un servidor proxy-caché: Squid

6

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Funcionamiento (2)

petición

3128

cabecera y cuerpo

cabecera y cuerpo

si no pasa las ACL, error

Navegador web

si pasa las ACL

Squid

U06. Configuración de un servidor proxy-caché: Squid

Internet

7

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Instalación Ubuntu ●



[email protected]

Para instalar Squid en Ubuntu tenemos dos opciones: desde un terminal o desde el Synaptic. Desde un terminal: sudo apt-get install squid



Desde el Synaptic: – – –

Buscamos “squid” (sin las comillas). Seleccionamos el paquete squid. Pulsamos sobre Aplicar.

U06. Configuración de un servidor proxy-caché: Squid

8

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Instalación Independiente con Webmin ●

[email protected]

Accedemos a Webmin con https://localhost:10000. Y después de autentificarnos, hacemos clic en Servidores, Squid – servidor proxy.

U06. Configuración de un servidor proxy-caché: Squid

9

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejecución ●







En Ubuntu para que funcione Squid debemos incluir la directiva visible_hostname con el nombre de nuestro equipo. Para averiguar el nombre de nuestro equipos en un terminal tecleamos el comando $hostname Después editamos /etc/squid/squid.conf e incluimos en el lugar correspondiente: una copia visible_hostname nombre_equipo Haced de seguridad de Por último, ejecutamos (Suse y Ubuntu) /etc/squid/squid .conf antes de modificarlo. $sudo /etc/init.d/squid start

U06. Configuración de un servidor proxy-caché: Squid

10

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejecución (2) ●





Squid tiene muchas opciones pero las más importantes son -z y -k parse. $sudo squid -z Esta opción le indica a Squid que cree los directorios de la caché. Esta opción se debe utilizar cuando se arranca Squid por primera vez o cuando se modifica en el archivo squid.conf la configuración de la directiva cache_dir. $sudo squid -k parse Esta opción le indica a Squid revise el fichero squid.conf por si hay algún error.

U06. Configuración de un servidor proxy-caché: Squid

11

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Configuración ●



El fichero principal de configuración de Squid es /etc/squid/squid.conf. A continuación comentaremos las directivas más importantes: – – –

http_port 3128 → puerto en el que escucha Squid icp_port 3130 → puerto en el que escucha las peticiones ICP (entre cachés). cache_mem 8MB → cantidad de RAM que usa Squid para ● ● ●

Objetos en tránsito (in-transit objects). Objetos que se usan mucho (hot objects). Objetos negativos (negative-cached objects).

U06. Configuración de un servidor proxy-caché: Squid

No se pueden dejar espacios en blanco al comienzo de las líneas en squid.conf. 12

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Configuración (2) – – – – – – –

cache_swap_low 90 al alcanzar el 95% de la cache_swap_high 95 caché se eliminan los elementos menos usados hasta alcanzar el 90%. maximum_object_size 4096 KB → no se almacenará ningún archivo mayor de este tamaño. minimum_object_size 0 KB → no se almacenará ningún archivo menor de este tamaño. cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log

U06. Configuración de un servidor proxy-caché: Squid

13

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Configuración (3) –

cache_dir tipo directorio Mbytes L1 L2 → ● ● ● ● ●

tipo: sistema de almacenamiento a usar (ufs). directorio: ruta de la caché (/var/cache/squid). Mbytes: tamaño de la caché en MB (100). L1: número de subdirectorios de primer nivel (16). L2: número de subdirectorios de segundo nivel (256). Es recomendable que el directorio esté en una partición separada.

U06. Configuración de un servidor proxy-caché: Squid

14

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Control de acceso ●



Squid puede permitir o denegar el acceso a la caché con las listas de control de acceso (ACL). El control de acceso se consigue usando: –

Elementos ACL: asignan un nombre a las direcciones IP, puertos, dominios, etc. para usarlo en las reglas ACL. ● ●



acl permitidos src 172.26.0.0/255.255.0.0 acl todos src 0.0.0.0/0.0.0.0

Reglas ACL: definen qué acciones están permitidas o no usando los elementos ACL. ● ●

http_access allow permitidos http_access deny todos

U06. Configuración de un servidor proxy-caché: Squid

15

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Control de acceso Elementos ●









[email protected]

Control por IP origen (source): acl nombreACL src dirIP/mascara acl nombreACL src dirIP1-dirIP2/mascara Control por IP destino (destination): acl nombreACL dst dirIP/mascara acl nombreACL dst dirIP1-dirIP2/mascara Control por dominio de la máquina origen: acl nombreACL srcdomain nombreDominio Control por dominio de la máquina destino: acl nombreACL dstdomain nombreDominio Control por método de acceso (get, post, put): acl nombreACL method nombreMetodo

U06. Configuración de un servidor proxy-caché: Squid

16

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Control de acceso Elementos (2) ●



[email protected]

Control por puerto: acl nombreACL port numeroPuerto Control por tiempo: acl nombreACL time [dia] [h1:m1-h2:m2] –

[dia]puede tomar los siguientes valores: ● ● ● ● ● ● ●



M: lunes. T: martes. W: miércoles. H: jueves. F: viernes. A: sábado. S: domingo.

Existen muchos más elementos.

h1:m1 siempre tiene que se menor que h2:m2.

U06. Configuración de un servidor proxy-caché: Squid

17

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Control de acceso Elementos (3) ●



[email protected]

En la mayoría de los casos, se tiene una lista de valores para un elemento ACL aunque también es posible tener varias líneas ACL con el mismo nombre. Por ejemplo, las dos siguientes configuraciones son equivalentes: –

acl puertosHTTP port 80 8000 8080



acl puertosHTTP port 80 acl puertosHTTP port 8000 acl puertosHTTP port 8080

– –

U06. Configuración de un servidor proxy-caché: Squid

18

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Control de acceso Reglas ●



La sintaxis general para las reglas es access_list allow|deny [!]elementoACL... Donde access_list puede tomar diferentes valores pero el más importante es http_access. – –



http_access allow permitidos http_access deny todos

allow: permitir. ●deny: denegar.



La opción ! indica negación. –

http_access deny !puertosSeguros Esta regla indica que se deniega el acceso a todos los puertos menos a los “puertos seguros”.

U06. Configuración de un servidor proxy-caché: Squid

19

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejemplos de reglas ACL ●

Partimos de los siguientes elementos ACL: – – –



acl miIP src 1.2.3.4 → coincidirá con una petición que venga de la IP 1.2.3.4. acl elMundo dstdomain www.elmundo.es → coincidirá con la URL www.elmundo.es. acl mGet method GET → coincidirá con una petición HTTP GET. Todavía no se está permitiendo ni negando nada. Una ACL con varios valores coincidirá si lo hace con cualquiera de los valores. Se usa un O (OR) lógico. acl susIP src 1.1.1.8 1.1.1.28 1.1.1.88 → coincidirá si la petición se hace desde la IP 1.1.1.8 o desde la IP 1.1.1.28 o desde la IP 1.1.1.88.

U06. Configuración de un servidor proxy-caché: Squid

20

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejemplos de reglas ACL (2) –

– ●

acl cTV dstdomain www.antena3.es www.rtve.es www.lasexta.com → coincidirá con una petición a cualquiera de los sitios www.antena3.es, www.rtve.es o www.lasexta.com. acl mPut method PUT POST → coincidirá con una petición PUT o una petición POST. ¡IMPORTANTE!

Ejemplo de reglas ACL 1: – – – –

Las reglas se revisan en orden. La decisión sobre aceptar o denegar un acceso se toma en cuanto se encuentra la primera coincidencia.

http_access allow miIP http_access deny elMundo http_access allow mGet ¿Qué ocurre si un usuario desde la IP 1.2.3.4 hace una petición de www.elmundo.es?

U06. Configuración de un servidor proxy-caché: Squid

21

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejemplos de reglas ACL (3) Squid se encuentra con la autorización de la primera regla, miIP. Nuestra petición coincide con la ACL miIP, porque la IP origen es 1.2.3.4 y se permite la petición. El resto de reglas no son revisadas. – ¿Qué ocurre si se hace una petición PUT para www.elmundo.es desde 3.3.3.3? La petición no encaja con la primera regla pero coincide con la segunda. Y ésta regla implica que la petición debe ser rechazada. Así que el usuario recibe un mensaje de error de Squid. – ¿Qué ocurre si se hace una petición GET para www.gmail.com desde 3.3.3.3? No coincide ni con la primera ni con la segunda regla pero desíuncon tercera U06. Configuración servidorla proxy-caché: Squidque permite la petición. 22 –

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejemplos de reglas ACL (4) ●

Ejemplo de reglas ACL 2: – – –

http_access allow miIP elMundo http_access deny miIP La primera regla establece que una petición desde 1.2.3.4 y para www.elmundo.es será permitida. Sin embargo, la segunda regla establece que cualquier otra petición desde 1.2.3.4 será denegada. Así que estas dos reglas restringen al usuario con IP 1.2.3.4 a que pueda acceder sólo a www.elmundo.es.

U06. Configuración de un servidor proxy-caché: Squid

23

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejemplos de reglas ACL (5) ●

Ejemplo de reglas ACL 3: – – – –

http_access deny susIP cTV mPut http_access allow susIP cTV http_access deny susIP Estas 3 reglas permiten a los clientes susIP (1.1.1.8, 1.1.1.28 y 1.1.1.88) acceder a los servidores de cTV (www.antena3.es, www.rtve.es y www.lasexta.com) pero no con los métodos PUT o POST. Es más, los clientes de susIP no pueden acceder a ningún otro servidor.

U06. Configuración de un servidor proxy-caché: Squid

24

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Ejemplos de reglas ACL (6) ●



Uno de los errores más comunes consiste en escribir una regla que nunca puede cumplirse. Es fácil olvidar que Squid usa Y (AND) lógico en las reglas y O lógico en los elementos. La siguiente configuración nunca se puede cumplir: – – –



acl A src 1.1.1.1 acl B src 2.2.2.2 http_access allow A B

A Y B

La regla anterior debería escribirse así: – –

acl A src 1.1.1.1 2.2.2.2 http_access allow A

U06. Configuración de un servidor proxy-caché: Squid

1.1.1.1 O 2.2.2.2

25

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Dansguardian Introducción ●



[email protected]

Dansguardian es un filtro de contenido que usa Squid (o cualquier otro proxy) para realizar su trabajo. Dansguardian usa varios métodos de filtrado, como por ejemplo: – – – – –

Por URL y dominio. Por tipos MIME. Según la extensión de los archivos. Según las palabras que contenga la página web. ...

U06. Configuración de un servidor proxy-caché: Squid

26

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Dansguardian Instalación ●



[email protected]

Para instalar Dansguardian en Ubuntu tenemos dos opciones: desde un terminal o desde el Synaptic. Desde un terminal: sudo apt-get install dansguardian



Desde el Synaptic: – – –



Buscamos “dansguardian” (sin las comillas). Seleccionamos el paquete dansguardian. Pulsamos sobre Aplicar.

En cualquiera de los dos casos se instalarán más paquetes como por ejemplo el antivirus ClamAV. Si hay algún problema al instalarlo con apt-get, podemos probar con aptitude.

U06. Configuración de un servidor proxy-caché: Squid

27

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Dansguardian Funcionamiento ●





[email protected]

Dansguardian se sitúa entre el navegador web y el proxy interceptando y modificando su comunicación. Squid escucha en el puerto 3128 y Dansguardian lo hace en el 8080. Cuando una petición llega al 8080, Dansguardian la filtra y la pasa a Squid en el 3128. El flujo de eventos (simplificado) es el siguiente: 1.El cliente hace una petición a Dansguardian. 2.Dansguardian verifica la petición y le aplica los filtros por nombre de usuario, direcciones URL e IP. Si todo es correcto, se envía la petición a Squid. El flujo de eventos detallado correspondiente a la última versión de Dansguardian se encuentra aquí.

U06. Configuración de un servidor proxy-caché: Squid

28

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Dansguardian Funcionamiento (2)

3.Squid revisa la petición con sus ACL y, si está permitido, reenvía la petición a Internet. 4.A continuación desde Internet se envía tanto la cabecera como el cuerpo de la petición solicitada.

si pasa los filtros petición

8080

3128

cabecera (4) cuerpo (5)

si no pasa los filtros, error

Navegador web

cabecera y cuerpo

si no pasa las ACL, error

Dansguardian

U06. Configuración de un servidor proxy-caché: Squid

si pasa las ACL

Squid

Internet 29

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Dansguardian Funcionamiento (3)

[email protected]

5.Entonces Squid le pasa la cabecera como respuesta a la petición que realizó a Dansguardian, y éste verifica tanto el tipo MIME como la extensión del fichero. Si cumple los filtros, continúa por el paso 6. 6.Squid le devuelve el documento a Dansguardian y éste aplica los filtros por palabras e imágenes. 7.Si todo va bien, Dansguardian devuelve la cabecera y el cuerpo al navegador. 8.En cualquier punto, si alguno de los filtros bloquea la petición, el filtrado termina y se devuelve una página de acceso denegado. U06. Configuración de un servidor proxy-caché: Squid

30

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Dansguardian Configuración ●



[email protected]

Los ficheros de configuración de Dansguadian están en /etc/dansguardian (como siempre). Los parámetros más importantes de dansguardian.conf son los siguientes: – – – –

language = ’spanish’ filterport = 8080 → el puerto de Dansguardian proxyip = 127.0.0.1 → dirección IP de la máquina donde reside Squid proxyport = 3128 → puerto donde escucha Squid En algunas versiones de Dansguardian es necesario eliminar una línea del fichero dansguardian.conf para indicar que se ha configurado. #UNCONFIGURED - Please remove this line after configuration

U06. Configuración de un servidor proxy-caché: Squid

31

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Dansguardian Configuración (2) ●

[email protected]

Los ficheros que nos van a permitir configurar el filtrado y control de contenidos son los siguientes:

bannedextensionlist → extensiones de archivos prohibidos. – bannediplist → lista de IP que no van a tener acceso. – bannedmimetypelist → tipos de contenidos no permitidos. – bannedphraselist → palabras o frases prohibidas. Hay ejemplos en /etc/dansguardian/phraselists. – bannedregexpurllist → expresiones prohibidas en URL. – bannedsitelist → bloquea el acceso a un dominio. – bannedurllist → impide el acceso a una parte del dominio. – banneduserlist → usuarios que no van a tener acceso. – contentregexplist → mediante el formato “palabra fea” → “expresión” se puede sustituir unas expresiones por otras. U06. Configuración de un servidor proxy-caché: Squid 32 –

Andrés Rosique Hernández

Instalación y mantenimiento de servicios de Internet

Dansguardian Configuración (3)

[email protected]

exceptioniplist → lista de IP que no serán filtradas. – exceptionphraselist → palabras o frases que no se filtrarán. – exceptionsitelist → dominios que no se prohibirán. – exceptionurllist → parte de un dominio que no se bloqueará. – exceptionuserlist → usuarios que siempre tendrán acceso. – greysitelist / greyurllist → desbloquea los dominios / partes de los dominios prohibidos con banned pero los seguirá analizando usando el resto de filtros. – pics → configura el filtrado de imágenes. – weightedphraselist → lista de palabras con su correspondiente peso e instrucciones de definición <palabra>. U06. Configuración de un servidor proxy-caché: Squid 33 –

Andrés Rosique Hernández [email protected]

Instalación y mantenimiento de servicios de Internet

Glosario ● ● ●



● ●



ACL: Access Control List (lista de control de acceso) HTCP: HyperText Caching Protocol → sustituto ICP. HTTP: HyperText Transfer Protocol (protocolo de transferencia de hipertexto). HTTPS: HyperText Transfer Protocol over Secure Socket Layer (protocolo de transferencia de hipertexto sobre SSL). ICP: Internet Cache Protocol. MIME: Multipurpose Internet Mail Extensions (extensiones de correo Internet multipropósito). PICS: Platform for Internet Content Selection.

U06. Configuración de un servidor proxy-caché: Squid

34

Andrés Rosique Hernández [email protected]

Bibliografía Instalación y mantenimiento de servicios de Internet







Libros: – Duane Wessels. Squid: The Definitive Guide. O'Reilly, 2004 Enlaces: – http://es.wikipedia.org/. – http://www.onlamp.com/pub/a/onlamp/2004/02/12/squid.html. – http://dansguardian.org/?page=dgflow – http://www.cettolini.it/informatica/topic.asp?cat=1&topic=2. – http://sourceforge.net/docman/display_doc.php?docid=30290&gro Otros: – Apuntes del curso Software libre y educación (curso avanzado): servicios de red, gestores de contenido y seguridad. Thales-CICA, 2004-2005.

U06. Configuración de un servidor proxy-caché: Squid

35

Related Documents