Índice -...

17
Squid + Webmin Configuración básica Squid + Webmin Configuración básica Índice 1 Instalación de Squid ......................................................................................................................... 2 2 Configuración de Squid ................................................................................................................... 4 2.1 Configuración inicial................................................................................................................ 4 2.2 Configuración del acceso..........................................................................................................5 2.2.1 ACLs................................................................................................................................. 5 2.2.2 Reglas................................................................................................................................8 2.2.3 Reglas por defecto.............................................................................................................9 2.2.4 Directrices para la ordenación de las reglas...................................................................... 9 2.2.5 Ejemplo de configuración............................................................................................... 10 3 Squid con webmin .......................................................................................................................... 11 3.1 Instalación de webmin............................................................................................................ 11 3.2 Acceso a webmin.................................................................................................................... 11 3.3 Configuración de squid........................................................................................................... 12 3.3.1 Crear ACLs..................................................................................................................... 14 3.3.2 Crear reglas (restricciones)............................................................................................. 15 4 Apéndices ....................................................................................................................................... 16 4.1 Archivo de configuración por defecto sin comentarios ni líneas en blanco........................... 16 4.2 Configurar navegador Firefox para usar el proxy..................................................................17 5 Fuentes de información .................................................................................................................. 17 --1/17--

Transcript of Índice -...

Page 1: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

Squid + Webmin

Configuración básica

Índice 1 Instalación de Squid.........................................................................................................................2 2 Configuración de Squid ...................................................................................................................4

2.1 Configuración inicial................................................................................................................4 2.2 Configuración del acceso..........................................................................................................5

2.2.1 ACLs.................................................................................................................................5 2.2.2 Reglas................................................................................................................................8 2.2.3 Reglas por defecto.............................................................................................................9 2.2.4 Directrices para la ordenación de las reglas......................................................................9 2.2.5 Ejemplo de configuración...............................................................................................10

3 Squid con webmin..........................................................................................................................11 3.1 Instalación de webmin............................................................................................................11 3.2 Acceso a webmin....................................................................................................................11 3.3 Configuración de squid...........................................................................................................12

3.3.1 Crear ACLs.....................................................................................................................14 3.3.2 Crear reglas (restricciones).............................................................................................15

4 Apéndices.......................................................................................................................................16 4.1 Archivo de configuración por defecto sin comentarios ni líneas en blanco...........................16 4.2 Configurar navegador Firefox para usar el proxy..................................................................17

5 Fuentes de información..................................................................................................................17

--1/17--

Page 2: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

1 Instalación de SquidActualmente tenemos dos posibles versiones para instalar.

root@manolo-debian:/# apt-cache policy squidsquid: Instalados: (ninguno) Candidato: 2.7.STABLE9-4.1+deb7u1 Tabla de versión: 2.7.STABLE9-4.1+deb7u1 0 500 http://security.debian.org/ wheezy/updates/main amd64 Packages 2.7.STABLE9-4.1 0 500 http://ftp.es.debian.org/debian/ wheezy/main amd64 Packagesroot@manolo-debian:/# apt-cache policy squid3squid3: Instalados: (ninguno) Candidato: 3.1.20-2.2+deb7u2 Tabla de versión: 3.1.20-2.2+deb7u2 0 500 http://ftp.es.debian.org/debian/ wheezy/main amd64 Packages 500 http://security.debian.org/ wheezy/updates/main amd64 Packages

¿Cuál escoger?Si no tenemos ningún requisito previo, se recomienda la 3.1. Además, entre otras cosas, ésta incluye soporte para IPv6.

Puede instalarse desde los propios repositorios de Debian, mediante interfaz gráfica o mediante comandos.

root@manolo-debian:/# apt-get install squid3Leyendo lista de paquetes... HechoCreando árbol de dependencias Leyendo la información de estado... HechoSe instalarán los siguientes paquetes extras: squid3-commonPaquetes sugeridos: squidclient squid-cgi resolvconfSe instalarán los siguientes paquetes NUEVOS: squid3 squid3-common(...)

--2/17--

Page 3: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

Comprobar archivos.root@manolo-debian:/# ls -l /etc/squid3/total 212-rw-r--r-- 1 root root 1547 ago 28 2014 errorpage.css-rw-r--r-- 1 root root 421 ago 28 2014 msntauth.conf-rw-r--r-- 1 root root 206557 ago 28 2014 squid.conf

Comprobar puerto 3128 abierto.Es posible que únicamente aparezca el asociado a IPv6, pero esto no representa un problema.

root@debian00:/# netstat -ltn | grep 3128tcp6 0 0 :::3128 :::* LISTEN

--3/17--

Page 4: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

2 Configuración de Squid Squid mantiene sus archivos de configuración en el directorio /etc/squid3/. El archivo principal de configuración de squid es /etc/squid3/squid.conf.Este archivo incluye todas las directivas de configuración disponibles, la mayoría están comentadas y tienen un valor predefinido. Estos valores predefinidos son óptimos para la mayoría de las instalaciones y solo se tendrán que cambiar en caso de que la configuración lo requiera. En algunos otros casos se descomentan las directivas aún cuando se deje el valor predeterminado con propósitos de hacer explícitas las configuraciones.Ya que no existe página de manual para el archivo de configuración squid.conf, en su lugar, la información de las directivas de configuración están incluidas como comentarios en el mismo archivo squid.conf. Se recomienda que antes de que haga cambios en el archivo squid.conf haga una copia de respaldo para que la pueda usar como manual de referencia.

root@manolo-debian:/# cp /etc/squid3/squid.conf /etc/squid3/squid.conf.bak

2.1 Configuración inicial

Puerto por el que Squid escuchará peticiones HTTP (default=3128)http_port 3128

Nombre de host asociado al proxy. Es el que aparece, por ejemplo, cuando bloquea una web.visible_hostname proxy.manolo.test

Directorio donde se almacenan los mensajes que son devueltos a los clientes web. error_directory /usr/share/squid3/errors/Spanish

Por ejemplo, el mensaje que se muestra cuando se rechaza una conexión está en el documento ERR_ACCESS_DENIED, codificado en HTML.Por defecto, los mensajes están en inglés. Si se desea, modificar el parámetro para utilizar la carpeta Spanish.

Archivos de log.

• Actividad de los clientes.access_log /var/log/squid3/access.log squid

• Eventos generados por Squid: problemas al leer ciertos archivos, espacio insuficiente, autenticación, …

cache_log /var/log/squid3/cache.log

• Objetos puestos en caché.cache_store_log /var/log/squid3/store.log

--4/17--

Page 5: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

2.2 Configuración del accesoSquid incorpora un sistema de control de acceso bastante flexible y potente basado en Listas de Control de Acceso o ACLs. Los controles de acceso en Squid están formados por dos componentes principales: las ACLs y las reglas asociadas a dichas ACLs.

Es decir: la configuración del acceso consta de dos partes:1. Crear ACL2. Crear regla que permite o deniega el acceso a las conexiones que coinciden con ACL

Resumen:acl1acl2aclN

reglaA permitir acl2reglaB denegar aclNreglaX permitir acl1

Cuando un cliente intenta una conexión, se comprueba una a una y en orden si coincide con alguna regla. La primera coincidencia que se encuentra es la efectiva (se permite o no la conexión) y ya no se miran las reglas siguientes.

2.2.1 ACLsDefinen el origen o destino de la petición realizada por el cliente . Hay diferentes tipos de ACL.

• Origen

◦ Dirección IP del cliente

◦ Nombre del usuario, Grupo de usuarios

◦ Navegador

• Destino

◦ Puerto

◦ Dominio DNS

◦ URL

• Otros

◦ Tipo MIME

◦ Protocolo

◦ Método usado en la petición, GET, POST, CONNECT

◦ all (ACL predefinida utilizada para permitir o denegar cualquier conexión)

--5/17--

Page 6: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

TIPOS DE USO HABITUAL

ORIGEN src Dirección IP del cliente, puede ser una sola dirección lista o rango de direcciones IP. Soporta el uso de mascaras de subred en formato CIDR.

browser User-agent (nombre “interno” del navegador web) desde el cual se realiza la petición.

DESTINO dstdomain Nombre de dominio solicitado por el cliente.urlpath_regex Ruta, sin incluir el nombre de host.url_regex URL completa: nombre de host + rutaport Número de puerto

MIME req_mime_type Tipo de recurso MIME solicitado (request) por el cliente.rep_mime_type Tipo de recurso MIME enviado (reply) al cliente.

Aclaraciónhttp://informatica.etitudela.com/aplicweb/v2/index.php/area-smr-online |---------------------------|----------------------------------------- dstdomain | urlpath_regex----------------------------------------------------------------------------- url_regex

SINTAXIS

acl nombre tipo valor Básica

acl nombre tipo -i valor No sensible a mayúsculas

acl nombre tipo valor1 valor2 valorN Con lista de valores

acl nombre tipo “/etc/squid3/lista.acl” Valores en archivo de texto(recomendado cuando hay muchos valores)

acl nombreX tipoX valor1acl nombreX tipoX valor2acl nombreX tipoX valorN

Valores combinados en una sola lista

--6/17--

Page 7: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

EJEMPLOS

acl loc_sysadmin src 192.168.221.110/255.255.255.255 Una IP

acl loc_subnet src 192.168.221.0/255.255.255.0 Una subred

acl loc_subnet src 192.168.221.0/24 Una subred con CIDR

acl loc_rango_directores src 192.168.221.200-192.168.221.210/24 Un rango de IPs

acl loc_gerentes src 192.168.221.130 192.168.221.140 192.168.221.150 Una lista de IPs

acl loc_gerentes src "/etc/squid3/loc_gerentes.acl" Lista de IPs guardada en archivo

acl puertos_seguros port 80 21 443 563 70 210 1025-65535 Lista de puertos

acl videosweb dstdomain youtube.com justin.tv Ciertos sitios web

acl porn urlpath_regex -i porno sexo Ciertas palabras de la URL

acl audios req_mime_type -i audio/mp3audio/mpeg audio/wav Petición de archivos de audio

--7/17--

Page 8: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

2.2.2 ReglasLas directivas más comunes son dos:

• http_access para peticiones HTTP

• http_reply_access para las respuestas HTTP.

SINTAXIS

http_access allow acl Permitir

http_access deny acl Denegar

http_access allow acl1 acl2 aclN Varias ACL. Deben coincidir todas.

http-access deny !acl Lo contrario de lo que aparece en la ACL

EJEMPLOS

http_access allow localhost Permitir al host local

http_access allow dominios_msn loc_sysadmin Permitir a varios dominios

http-access deny !Safe_ports Denegar a puertos no seguros

--8/17--

Page 9: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

2.2.3 Reglas por defectoSquid viene configurado por defecto con las siguientes reglas:

acl manager proto cache_objectacl localhost src 127.0.0.1/32 ::1acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1acl SSL_ports port 443acl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 # httpsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025-65535 # unregistered portsacl Safe_ports port 280 # http-mgmtacl Safe_ports port 488 # gss-httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl CONNECT method CONNECThttp_access allow manager localhosthttp_access deny managerhttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhosthttp_access deny all

2.2.4 Directrices para la ordenación de las reglasEn general, desearemos mantener las directivas predetermindas y agregar las nuestras del siguiente modo:

http_access allow manager localhosthttp_access deny managerhttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhost

AQUÍ LAS NUESTRASCOLOCAR LAS MÁS RESTRICTIVAS PRIMERO

http_access deny all

Si no se encuentra coincidencia con ninguna de las reglas, lo normal sería denegar el acceso. Por eso siempre queda la última http_access deny all.

--9/17--

Page 10: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

2.2.5 Ejemplo de configuraciónPermitir conexiones desde la red local, pero bloqueando el acceso a las webs de prensa deportiva.

...acl loc_subnet src 192.168.1.0/24acl depor dstdomain .sport.es .elmundodeportivo.es .marca.com .as.com

http_access allow manager localhosthttp_access deny managerhttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhost

http_access deny deporhttp_access allow loc_subnet

http_access deny all...

--10/17--

Page 11: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

3 Squid con webmin

3.1 Instalación de webminLa versión actual (en el momento de escribir estas líneas) es la 1.7En este caso, el software no puede encontrarse en los repositorios de Debian. Por tanto, deberemos descargar el paquete DEB de la web oficial www.webmin.com

Para instalarlo mediante interfaz gráfica, debería bastar con un doble clic.

Para la instalación mediante comandos, apt-get install probablemente no servirá, por lo que se suele hacer lo siguiente:

1. Descargar archivo.deb y guardarlo en una carpeta del disco duro.2. Instalarlo con el comando dpkg, que sería algo así como una forma de más bajo nivel que

apt de acceder a la gestión de paquetes.dpkg -i /ruta/archivo.deb

3. Pero dpkg sólo instala, sin tener en cuenta dependencias. De hecho, durante la instalación debería informar de dichas dependencias.Para resolverlas automáticamente, sí que tendremos que echar mano de apt.

apt-get install -f

3.2 Acceso a webminWebmin escucha por el puerto 10000 y utiliza conexiones seguras.Para acceder a Webmin (puede hacerse desde cualquier ordenador de la red) hay que teclear la URL:

https://ip_servidor:10000

Para loguearse y administrar el servidor, el usuario debería ser root o tener capacidades de sudo.

--11/17--

Page 12: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

3.3 Configuración de squidPara acceder a la configuración de Squid:

Servers Squid Proxy Server→

Existen varias categorías de configuración: Ports and Networking, Logging, Cache Options, …La gestión del filtrado de tráfico se realiza mediante las listas de control de acceso (ACLs) de la categoría Access Control, fundamentalmente mediante las pestañas Access control lists y Proxy restrictions.

--12/17--

Page 13: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

La configuración se basa en dos pasos:1. Crear listas de acceso2. Crear restricciones, donde debemos escoger, para cada lista:

• si permitiremos o denegaremos el acceso

• si buscamos las conexiones que coinciden con la lista o lo contrario, las que no coinciden (por ejemplo: el puerto 80 o todos los puertos excepto el 80)

• el orden en que se ejecutarán las restricciones

¡Cuidado! Es muy importante tener en cuenta cómo ordenaremos las restricciones, ya que el proxy tendrá en cuenta únicamente la 1ª coincidencia que encuentre y no analizará las demás.

Las listas se crean en la pestaña Access control lists y se agregan, indicando si tienen permitido o denegado el acceso, en la pestaña Proxy restrictions. Es aquí, en Proxy restrictions, donde el administrador debe poner especial cuidado en ordenar correctamente las restricciones.

--13/17--

Restricciones predeterminadas

Agregando una nueva restricción

Page 14: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

3.3.1 Crear ACLsA la hora de crear una ACL, tenemos varios tipos disponibles para filtrar las conexiones: por IP, por puerto, por tipo de contenido, por nombre de dominio, etc.

Los elementos de una lista pueden guardarse en el propio archivo de configuración de Squid o en un archivo de texto aparte (Separate file). Esta segunda opción se recomienda, sobre todo, cuando la lista está formada por más de una línea, para facilitar la revisión y la edición.

--14/17--

Tipos de ACL

Page 15: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

3.3.2 Crear reglas (restricciones)

Creación de la nueva regla.

Escoger si queremos permitir (Allow) o denegar (Deny).

Escoger si queremos que la ACL coincida (Match), o su contrario (Don't match).

Reorganizar para insertar la nueva regla en el punto deseado (por defecto, aparece la última):

Al finalizar, pinchar en Apply changes.

--15/17--

Page 16: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

4 Apéndices

4.1 Archivo de configuración por defecto sin comentarios ni líneas en blancoArchivo original: valores predeterminados:

root@manolo-debian:/# grep -E -v '^(#|;|$|[ ]*#)' /etc/squid3/squid.confacl manager proto cache_objectacl localhost src 127.0.0.1/32 ::1acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1acl SSL_ports port 443acl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 # httpsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025-65535 # unregistered portsacl Safe_ports port 280 # http-mgmtacl Safe_ports port 488 # gss-httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl CONNECT method CONNECThttp_access allow manager localhosthttp_access deny managerhttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhosthttp_access deny allhttp_port 3128coredump_dir /var/spool/squid3refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern -i (/cgi-bin/|\?) 0 0% 0refresh_pattern . 0 20% 4320

Una buena idea sería realizar una copia de seguridad del archivo original y, posteriormente, eliminar todos los comentarios para obtener un archivo más limpio y manejable.

--16/17--

Page 17: Índice - informatica.etitudela.cominformatica.etitudela.com/pub/aula30x/servicios_de_red/squid/Squid... · 500 wheezy/updates/main amd64 Packages ... Para loguearse y administrar

Squid + WebminConfiguración básica

4.2 Configurar navegador Firefox para usar el proxyPara configurar Firefox en el cliente para que utilice el proxy:

Herramientas Opciones Avanzado Red Conexión Configuración→ → → → → Configuración manual del proxy→

Ahí debemos indicar la IP del servidor proxy y el puerto (por defecto, el 3128)Por defecto suele estar configurado para que no se utilice para las conexiones locales: por ejemplo, para acceder a un servidor web instalado en el propio equipo.

No usar proxy para:localhost, 127.0.0.1

5 FuentesManual de Instalación de Servidor Proxy Web con Ubuntu Server y SquidJorge Armando Medina y Alejandro Gabriel Sánchez Martínezhttp://tuxjm.net/docs/Manual_de_Instalacion_de_Servidor_Proxy_Web_con_Ubuntu_Server_y_Squid/html-onechunk/

Aula [email protected]

@aula30x junio 2015 – v.3

--17/17--