Manual básico de proxy Squid

40
Administración y Seguridad en redes GNU/LINUX INICTEL 1 Módulo 3 MÓDULO 3: FIREWALL PROXY DE APLICACIÓN Objetivo General Adquirir los conocimientos necesarios para la administración del servidor Proxy, así como realizar tareas de mantenimiento y controlar mediante reglas de control de acceso a los clientes de la red privada que desean acceder a visitar páginas web que solicitan al servidor Proxy Squid

description

Manual básico en donde se describe como configurar de manera rápida un servidor Proxy en Linux, para el cual se utiliza el paquete Squid.

Transcript of Manual básico de proxy Squid

Page 1: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 1 Módulo 3

MÓDULO 3: FIREWALL PROXY DE APLICACIÓN

Objetivo General

Adquirir los conocimientos necesarios para la administración

del servidor Proxy, así como realizar tareas de

mantenimiento y controlar mediante reglas de control de

acceso a los clientes de la red privada que desean acceder a

visitar páginas web que solicitan al servidor Proxy Squid

Page 2: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 2 Módulo 3

Objetivo Específicos :

o Estará capacitado para implementar un servidor

Proxy-cache Squid

o Establecer listas de control de acceso donde se

define un conjunto de rangos de direcciones IP, lista

de enlaces, lista de archivos, rangos de puertos, etc.

Esto le permitirá realizar un mejor control cuando se

aplica restricciones.

o Asignar reglas de control de acceso que permite o

deniega el acceso a Squid a las listas de acceso

definidas por el administrador.

o Realizar tareas de mantenimiento al caché de Squid.

Page 3: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 3 Módulo 3

INTRODUCCIÓN

En este módulo se enseñará a instalar y configurar Squid que es un Proxy a nivel de

aplicación para HTTP, HTTPS y FTP. Squid es ideal para acelerar la navegación y

controlar el acceso a sitios web. Es el servidor Proxy más popular y extendido entre los

sistemas operativos basados sobre Linux y Unix. Una vez instalado el Proxy-Caché

Squid podrá salir a Internet desde un número ilimitado de clientes y almacenar las

páginas más cargadas en el caché, con el fin de optimizar el ancho de banda.

Page 4: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 4 Módulo 3

Sumario

1.1 Definición. 5 - 6

1.2 Ventajas y desventajas

1.3 Squid-Proxy de aplicación

1.4 Parámetros de configuración

1.5 Control de Acceso 7 - 8

1.5.1 Listas de control de acceso

1.5.2 Reglas de control de acceso

1.6 Parámetros de administración 9

1.7 Implementación de un servidor Proxy 10 - 37

1.8 Actividades del módulo 38 - 39

1.8.1 Auto evaluación

1.8.2 Laboratorio

1.9 Bibliografía y enlaces recomendados 40

Page 5: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 5 Módulo 3

1. FIREWALL PROXY DE APLICACIÓN

1.1. DEFINICIÓN1 Un servidor proxy se suele implementar como una aplicación independiente para cada servicio que

hace uso del proxy. El servidor proxy del nivel de aplicación entiende el protocolo de comunicación

específica de la aplicación. Cada aplicación proxy aparenta ser el servidor para el programa cliente y

aparenta ser el cliente para el servidor real.

Los programas clientes se conectan a un servidor proxy en lugar de un servidor remoto. El proxy

establece la conexión con el servidor remoto en beneficio de la aplicación cliente, después de

sustituir la dirección de origen del cliente con la del servidor proxy.

1.2. VENTAJAS Y DESVENTAJAS

Un servidor proxy de aplicación tiene las siguientes ventajas:

a. Los servicios Proxy son buenos para registrar toda actividad

b. Los servicios proxy pueden proveer caching

c. Los servicios proxy pueden hacer filtrado inteligente

Las desventajas son las siguientes:

a. Los servicios proxy se encuentran retrasados ante servicios no proxeados.

b. Los servicios proxy pueden requerir diferentes servidores por cada servicio.

c. Los servicios proxy usualmente requieren modificaciones a los clientes, aplicaciones o

procedimientos.

1.3. SQUID-PROXY DE APLICACIÓN

Squid es un software que usa el sistema de cache, guarda las páginas más visitadas y si estas se

vuelven a pedir, no hace falta que acceda al servidor remoto, simplemente el proxy squid tiene la

página guardada en disco. La próxima vez que alguien desee dicha página, squid simplemente la

lee del disco y la transfiere al usuario de forma instantánea.

SQUID es un software de libre de distribución para realizar la tarea de un servidor proxy con

prestaciones muy profesionales. Suele acompañar a las distribuciones más habituales, aunque

también puede obtenerse de su sitio oficial http://www.squid-cache.org.

1.4. PARÁMETROS DE CONFIGURACIÓN

El fichero de configuración de SQUID llamado squid.conf consta de varios parámetros configurables

que ajustan al servidor a nuestras necesidades. Habilitaremos los parámetros que son necesarios

para el funcionamiento del servidor proxy.

a. Puerto de escucha

Squid por defecto utiliza el puerto 3128 para atender las peticiones de los clientes que desean

acceder a servidores remotos (HTTP, HTTPS, FTP y GOPHER) para los otros servicios se requerirá

aplicar NAT. Se puede asignar otro puerto o más de un puerto de escucha. El parámetro http_port

1 Fuente : extraída del libro Guía Avanzada Firewalls Linux, autor: Robert L. Ziegler , año 2000

Page 6: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 6 Módulo 3

define el puerto de escucha del servidor proxy, también se puede agregar la dirección IP que vincula

con el servicio para permitir el acceso de la red local. Se da un ejemplo de cómo se configura con el

parámetro http_port la dirección IP y puerto de escucha del servidor proxy.

http_port 192.168.1.33:3128

b. Memoria usada

Se especifica la cantidad ideal de memoria para ser usada por los objetos en tránsito. Los datos de

estos objetos se almacenan en bloques de 4 Kb. El parámetro caché_mem especifica un límite

máximo en el tamaño total de bloques acomodados, donde los objetos en tránsito tienen mayor

prioridad. Sin embargo los objetos negativamente almacenados en el caché podrán utilizar la

memoria no utilizada hasta que esta sea requerida. De ser necesario, si un objeto en tránsito es

mayor a la cantidad de memoria especificada, squid excederá lo que sea necesario para satisfacer la

petición.

Por defecto se establecen 8 MB. Puede especificarse una cantidad mayor si así se considera

necesario, dependiendo esto de los hábitos de los usuarios o necesidades establecidas por el

administrador.

caché_mem 8 MB

c. Tamaño caché

Se establece el tamaño que tendrá el cache en el disco duro, donde se almacena los objetos

(páginas Web). Por defecto Squid utilizará un caché de 100 MB, el parámetro caché_dir define el

directorio caché y tamaño que se especifica con la siguiente sintaxis: caché_dir type directory size (MB) L1 L2

type

Define el tipo de sistema de almacenamiento para crear el cache de squid en disco, el tipo de

sistema archivo por defecto es ufs.

directory

Nombre del directorio caché de nivel principal donde se almacena los objetos, este directorio no lo

crea por defecto squid.

size (MB)

Especifica el tamaño en MB del caché de disco, por defecto es 100 MB.

L1

Es el primer nivel de subdirectorios que se crea debajo del directorio caché de nivel principal. Por

defecto se crea 16 subdirectorios.

L 2

Es el segundo nivel de subdirectorios que se crea por debajo de cada uno de los subdirectorios de

primer nivel. Por defecto se crea 256 subdirectorios.

caché ufs /usr/local/squid/var/caché 100 16 256

Page 7: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 7 Módulo 3

d. Registro de la actividad de los clientes

Se genera un archivo log donde se registra la actividad de los clientes en acceder a través de squid

a páginas web que desean visitar. El siguiente ejemplo se especifica con el parámetro

caché_access_log la ubicación del archivo log de acceso.

caché_access_log /usr/local/squid/var/logs/access.log

e. Registrar el estado del cache Squid

Se registra información general del estado actual del caché Squid. Se habilita con el parámetro

caché_log. Ejemplo en donde se indica con el parámetro caché_log la ubicación del archivo

caché.log.

caché_log /usr/local/squid/var/logs/caché.log

f. Registro de objetos almacenados

Se registra las actividades del directorio de almacenamiento. Los objetos que son rechazados por el

caché y que objetos son salvados y por cuanto tiempo. Se habilita con el parámetro

caché_store_log, a continuación se da un ejemplo de como se define la ubicación del archivo

store.log.

cache_store_log /usr/local/squid/var/logs/store.log

g. Archivo de registro PID

Se establece la ubicación del archivo donde se registra el número que identifica el proceso asociado

a Squid.

pid_filename /usr/local/squid/var/logs/squid.pid

1.5. CONTROL DE ACCESO

Una de las características de Squid es de establecer Reglas de Control de acceso que permitirá o

denegará el acceso a Squid. Para esto se establece Listas de Control de Acceso en donde se define

una red o ciertas máquinas en particular, cada una de estas listas tendrá asociada a una Regla de

Control que regulará esta actividad.

1.5.1. Lista de Control de Acceso

Se define una lista de control de acceso a partir de la siguiente sintaxis:

acl [nombre de la lista] [acltype][lo que compone a la lista]

dónde:

acl : Parámetro que define una lista de control de acceso

acltype : Tipo de lista de control de acceso. Se encuentra descrito en el fichero de configuración de

squid en la sección ACCESS CONTROLS, entre los que a continuación se describen:

src ip-address/netmask (intervalo de direcciones IP origen)

src addr1 -addr2/netmask (rango de direcciones IP origen)

dst ip-address/netmask (destino a direcciones IP de servidores base URL)

myip ip-address/netmask (dirección IP local)

Page 8: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 8 Módulo 3

srcdomain .foo.com ... (inversa loopback, dominio local, IP de cliente)

dstdomain .foo.com ... (destino a dominios)

port 80 70 21 ... (lista de puertos)

port 0-1024 ... (rangos de puertos)

myport 3128 ... (puerto TCP local)

proto HTTP FTP ... (lista de protocolos)

Ejemplo1:

Se tiene una red 192.168.1.0/255.255.255.0 en donde se desea definir toda la red local a través de

una lista de control de acceso de la siguiente manera:

acl redlocal src 192.168.1.0/255.255.255.0

También se puede definir una Lista de Control de Acceso invocando un fichero, en el cual se

encuentra una lista de direcciones IP. Se utiliza la misma sintaxis con la diferencia que no se define

lo que compone la lista sino el nombre del fichero.

Sintaxis:

acl [nombre de la lista] [acltype] filename

Ejemplo 2:

Se creará una lista de control de acceso que contenga una lista de direcciones de direcciones IP de

máquinas que se deniega el acceso a servidores remotos.

acl denegados src /etc/squid/denegados

dónde el fichero denegados contiene una lista de direcciones IP.

172.16.1.1 172.16.1.2 172.16.1.20 172.16.1.21 172.16.1.33 172.16.1.32 172.16.1.40

1.5.2. Reglas de Control de Acceso

Las reglas de control de acceso define si se permite o deniega el acceso a Squid a la lista de control

de acceso, se establece indicando el parámetro http_access seguido de la siguiente sintaxis:

http_access [deny o allow] [lista de control de acceso]

Ejemplo 1:

http_access allow localhost

Page 9: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 9 Módulo 3

http_access allow redlocal http_access deny all La línea http_access allow redlocal, permite el acceso al proxy para la lista denominada redlocal que

está conformada por la red 192.168.1.0/255.255.255.0, es decir cualquier máquina cuya dirección IP

esté comprendida entre 192.168.1.1 y 192.168.1.254.

La siguiente línea http_access deny all, no se permite el acceso a ninguna máquina. Es muy

importante el orden con que se declara las reglas de control de acceso, en este ejemplo se puede

ver que solo la red 192.168.1.1/255.255.255.0 tiene el acceso a Squid pero no otras máquinas que

pertenezca a otras redes.

Ejemplo 2:

http_access allow localhost http_access allow redlocal !denegados http_access deny all La línea http_access allow redlocal! denegados, estamos permitiendo el acceso para la lista redlocal,

excepto a las máquinas definidas en la lista denegados, es decir las indicadas en el fichero

/etc/squid/denegados.

1.6. Parámetros de administración

a. cache_mgr

La dirección de correo electrónico del responsable del caché Squid .

Ejemplo:

caché_mgr [email protected] b. caché_effective_user

El usuario y grupos con que se ejecutará el proceso squid. Por razones de seguridad sólo deben

tener permisos en el sistema, no asignarle un shell, no obstante deben tener permisos plenos sobre

los directorios de Squid logs y caché.

Ejemplo:

Se asigna como usuario a nobody y grupo nogroup para ejecutar el proceso squid.

caché_effective_user nobody nogroup.

Nota : Modificar el propietario del directorio var donde se crea el directorio caché y se genera los

registros logs de squid.

c. visible_hostname

El nombre del host con el que se anuncia el caché de squid.

Ejemplo:

visible_hostname proxy.dominio.com d. httpd_accel_host y httpd_accel_port

Si usted quiere ejecutar Squid como un acelerador httpd, defina el nombre del host y número de

puerto donde es del servidor real HTTP. También se puede configurar para indicar IP de hosts

virtuales entonces se especifica el nombre del host como "virtual". Esto hará que Squid use la

Page 10: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 10 Módulo 3

dirección IP en donde se acepta las solicitudes como el nombre del host en el URL. Si desea que

soporte puerto virtual entonces se especifica el puert o como "0".

NOTA: Si usted quiere habilitar sólo estas características, entonces poner la opción

'httpd_accel_with_proxy'

e. httpd_accel_with_proxy on ? off

Si se desea usar el Squid tanto como acelerador local httpd y como un proxy, cambiar esto hacia

"on" . Dentro de las opciones de proxy acelerado está el habilitar un proxy transparente,

regularmente se utilizará el puerto 80 y se valdrá del re-direccionamiento de peticiones de modo tal

que no habrá necesidad alguna de modificar la configuración de los navegadores de red para utilizar

el servidor Proxy; bastará con utilizar como puerta de enlace al servidor. Cabe indicar que debemos

especificar la IP de cualquier servidor Web en la red local o bien el valor virtual. A continuación se

define los parámetros para configurar squid como un proxy transparente.

httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on f. httpd_accel_uses_host_header on ? off

Si usted necesita acelerar para proporcionar el dominio y si están como servidores virtuales basado

en la misma dirección IP entonces usted necesitará habilitar este parámetro en on. Nótese que

Squid no verificará el valor de las cabeceras de cualquier host que coincida con su servidor squid de

aceleración, así que puede abrir un hueco grande en la seguridad a menos que usted establezca los

controles de acceso apropiados. Por defecto este parámetro está deshabilitado.

1.7. Implementación de un servidor Proxy

Se instalará un servidor Proxy Caché Squid para proteger a los clientes de la red local cuando

accedan a Internet.

A continuación se indica los pasos a seguir para implementar servidor Proxy Caché Squid

1. Para instalación de Squid se puede descargar en http://www.squid-cache.org o también se

encuentra en paquete binario rpm. En este caso se instalará Squid a partir de los ficheros fuentes

que se obtendrá de la página oficial de Squid como se muestra en la Figura 1.

Page 11: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 11 Módulo 3

Figura 1: Página Oficial de Squid

2. Ingresamos a la página donde está una lista de la suite de productos Squid versión 2.5. Ver

Figura 2.

Figura 2 : Lista de productos Squid versión 2.5

Page 12: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 12 Módulo 3

3. Ahora procedemos a descargar como se muestra en la Figura 3 el ficher o fuente squid-

2.5.STABLE5.tar.bz2 en el directorio opt.

Figura 3 : Descarga del fichero fuente Squid versión 2.5

4. En la misma página donde está la suite de productos Squid, en la parte inferior como se muestra

en la Figura 4 es tá los enlaces para descargar del archivo de verificación de sumatorias MD5 y

los parches de Squid para la versión 2.5

Figura 4 : Enlace para acceder a descargar archivos de verificación MD5 y parches de Squid

Page 13: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 13 Módulo 3

5. Primero ubicamos el checksums MD5 del fichero fuente Squid que descargamos anteriormente

como se muestra en la Figura 5.

Figura 5 : Selección del checksum MD5 para verificar la integridad del fichero fuente Squid

6. Seleccionado el checksum MD5 que corresponde del fichero fuente de Squid como se muestra en

la Figura 6 , procedemos a copiar para luego pegar en el fichero md5squid1 creado por el editor

de texto VIM

Figura 6 : Guardando el checksum MD5 de Squid en el fichero md5squid1

Page 14: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 14 Módulo 3

7. Procedemos con el comando md5sum a verificar la sumatoria de bits del fichero fuente squid-

2.5.STABLE5.tar.bz2 , donde se imprimirá en pantalla la suma de control como se muestra en la

Figura 7.

Figura 7 : Ejecución de md5sum para obtener la suma de control del fichero fuente de Squid.

8. Ahora procedemos a guardar esta suma de control como se puede apreciar en la Figura 8

usando un operador de salida que lo envía para ser registrado en el fichero md5squid2

Figura 8 : Enviando la suma de control hacer guardado en el fichero md5squid2

9. Comparando ambos ficheros md5squid1 y md5squid2, la suma de control del fichero fuente

Squid en donde se puede ver en la Figura 9 que no imprime ningún mensaje de diferencia por lo

tanto se ha verificado la integridad del fichero fuente de Squid.

Figura 9 : Verificando la integridad del fichero fuente Squid.

Page 15: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 15 Módulo 3

10. Ahora procedemos a descomprimir y extraer los ficheros fuentes de squid-2.5.STABLE5.tar.bz2

en el directorio opt como se muestra en la Figura 10.

Figura 10 : Procedimiento para descomprimir y extraer los ficheros fuentes de squid

11.Los ficheros fuentes al ser extraídos se encuentra almacenados en el directorio squid-

2.5.STABLE5 en donde procederemos a generar su enlace simbólico que se le asignará el

nombre de squid. Ver Figura 11.

Figura 11 : Enlace Simbólico al directorio fuente de Squid

12. En la página donde se accede para descargar el fichero fuente de Squid, existe un enlace

“Avaliable patches” para la versión 2.5 donde se descarga los parches como se muestra en la

Figura 12.

Figura 12 : Página Web donde se descarga los parches para Squid versión 2.5

Page 16: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 16 Módulo 3

13. En la Figura 13 muestra la página donde se da una breve información sobre el parche que

requiere Squid; es para evitar que bajo cierta condiciones Squid choque con un "Defecto de

Segmentación" después que aparece un mensaje de advertencia que se ha impreso en el

archivo caché.log. El grado de severidad de este problema es alto por lo tanto es necesario

descargar este parche que necesita Squid antes de instalar en el sistema.

Figura 13 : Información sobre el parche que se aplica a Squid

14.Ahora procedemos a descargar el parche squid-2.5.STABLE5-proxy_abuse.patch hacia el

directorio opt. Ver Figura 14

Figura 14 : Se procede a descargar el parche squid-2.5.STABLE5-proxy_abuse.patch

Page 17: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 17 Módulo 3

15. En la Figura 15 se muestra el procedimiento para parchar el fichero fuente ubicado en

squid/src/http.c

Figura 15 : Procedimiento para parchar el fichero fuente de squid llamado http.c

16. Se procede a acceder al directorio Squid. Ver Figura 16

Figura 16 : Accediendo al directorio Squid

17. En la Figura 17 se lista el directorio que contiene los ficheros fuentes de Squid.

Figura 17 : Listado de los ficheros fuentes de Squid.

18. En la Figura 18 se procede a configurar Squid con las siguientes opciones :

a. prefix: Ruta donde se instalará la aplicación

b. enable-underscores: Habilita para que Squid reconozca nombre de host que incluya el carácter

“ _ “ que lo rechaza por defecto.

c. enable-linux-netfilter: Habilita al kernel 2.4 reconocer Proxy transparente.

d. enable-err-languages: Permite definir el tipo de idioma a instalar, por defecto soporta varios

idiomas.

Page 18: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 18 Módulo 3

Figura 18 : Procedimiento para configurar Squid.

19. Luego se procede a compilar Squid como se muestra en la Figura 19

Figura 19 : Procedimiento para compilar Squid

20. A continuación como se muestra en la Figura 20 se procede a instalar Squid.

Figura 20 : Instalación de Squid

21. Se lista el directorio de Squid ubicado en /usr/local. Ver Figura 21.

Figura 21 : Listado del directorio Squid instalado

22. Acceder al directorio Squid . Ver Figura 22

Page 19: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 19 Módulo 3

Figura 22 : Acceso al directorio Squid

23. Se procede a configurar Squid editando el fichero de configuración squid.conf. Ver Figura 23

Figura 23 : Editando el fichero de configuración de Squid

24. Habilitar el parámetro http_port por donde Squid escucha las solicitudes que hacen los

navegadores para solicitarles páginas Web. En la Figura 24 se habilita tanto para el localhost y la

dirección IP 172.16.0.1 que permite acceder Squid a LAN privada teniendo como puerto de

escucha el 3128.

Figura 24 : Habilitando la direcciones IP y puerto de escucha de Squid

25. Cantidad de memoria requerida por Squid para los objetos en tránsitos. Ver Figura 25.

Figura 25 : Definición de la cantidad de memoria usada por Squid

Page 20: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 20 Módulo 3

26. Se habilita el parámetro caché_dir para definir el tamaño del directorio caché; se le asignará de

tamaño 50MB; se puede incrementar el tamaño para almacenar más objetos y acelerar la

navegación. Ver Figura 26

Figura 26 : Tamaño del directorio cache de Squid

27. El parámetro caché_access_log indica la ruta del fichero que registra el acceso de los clientes al

caché de squid. Ver Figura 27

Figura 27 :Ubicación del archivo de registro access.log.

28. En la Figura 28 se habilita el parámetro cache_log para especificar la ubicación del archivo que

registra información del caché de squid.

Figura 28 : Ubicación del archivo de registro caché.log.

29. El parámetro caché_store_log especifica la ubicación del archivo store.log donde se registra

sobre los objetos agregados o eliminados en el caché de Squid. Ver Figura 29

Page 21: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 21 Módulo 3

Figura 29 : Ubicación del archivo de registro store.log

30. En la Figura 30 se muestra la ubicación del archivo que almacena el número identificador de

proceso asociado a Squid.

Figura 30 : Ubicación del archivo squid.pid

31. En la Figura 31 se muestra la configuración mínima de listas de control de acceso recomendado

para Squid.

Figura 31 : Configura mínima de listas de Control de Acceso

Page 22: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 22 Módulo 3

32. Se agrega una lista de control de acceso llamado redlocal que define toda la red interna. Ver

Figura 32:

Figura 32 : Lista de Control de Acceso redlocal

33. Configuración mínima recomendada de reglas de control de acceso que permite o deniega el

acceso a Squid. Ver Figura 33

Figura 33 : Configuración mínima de reglas de control de acceso

34. Se agrega una regla de control de acceso que permite la red interna tener acceso a Squid y la

segunda regla deniega a todos acceder a Squid. Ver Figura 34

Figura 34 : Reglas de Control de Acceso

Page 23: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 23 Módulo 3

35. En la Figura 35 se define la dirección de correo electrónico del administrador de la caché de

Squid.

Figura 35 : Correo electrónico del administrador de la cache de Squid

36. Se observa en la Figura 36 en donde se define al usuario y grupo efectivo que genera el

directorio caché y ejecutará el proceso Squid.

Figura 36 : Usuario y Grupo efectivo que ejecutará Squid

37. Se define el nombre de hosts con el que se anuncia la caché de Squid. Ver Figura 37

Figura 37 : Define el nombre de hosts de Squid

38. Parámetros que definen un Proxy Convencional como se muestra en la Figura 38.

Page 24: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 24 Módulo 3

Figura 38 : Parámetros que se habilitan para Proxy Convencional

39. Este parámetro define el idioma que debe mostrar las páginas de error e informativas

desplegadas por Squid. Por defecto se le asigna el idioma inglés. En la Figura 39 se configura

indicando la ubicación del directorio Spanish.

Figura 39 : Parámetro que indica la ubicación del directorio que define el idioma por defecto.

40. En la Figura 40 lista las propiedades de los directorios contenidos en Squid. En donde el

directorio var se encuentra el directorio logs y se crea el directorio caché de Squid.

El usuario efectivo nobody es el que crea el directorio caché, por lo tanto debemos cambiar de

propietario y grupo al directorio var.

Figura 40 : Listado de las propiedades de los directorios de Squid

Page 25: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 25 Módulo 3

41. Asignar como propietario y grupo a nobody en el directorio var. Ver Figura 41

Figura 41 : Cambio de propietario y grupo al directorio var

42. Ingresamos al directorio sbin como se muestra en la Figura 42, donde se ubica el comando de

Squid para realizar tareas de mantenimiento con las siguientes opciones:

§ -f : Especifica la ubicación del fichero de configuración de Squid

§ -z : Crea y limpia el cache de Squid.

§ -k check : Comprueba que el proceso squid está funcionando

§ -k reconfigure : Permite a Squid volver a leer el fichero de configuración

§ -k shutdown : Finaliza Squid, al utilizar esta opción es muy probable que haya conexiones

abiertas, por lo que squid las mantendrá, como máximo, durante un tiempo establecido por el

parámetro "shutdown_lifetime".

§ -k rotate : Permite a Squid rotar sus ficheros de logs

Figura 42 : Acceso al directorio sbin

43. Con el comando squid crearemos el directorio caché usando las opciones -f para indicar la

ubicación del archivo de configuración que lee Squid y la opción -z para crear el cache de Squid.

Ver Figura 43.

Page 26: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 26 Módulo 3

Figura 43 : Creación del Cache de Squid

44. En la Figura 44 se muestra el procedimiento para arrancar squid.

Figura 44 : Ejecución de squid

45. Para ejecut ar squid cuando se carga el sistema se guarda en el archivo script rc.local ubicado en

el directorio /etc/rc.d. Ver Figura 45

Figura 45 : Registrando para ejecución de Squid en el archivo rc.local

46. Luego de haber inicializado Squid procedemos a revisar su archivo cache.log, que nos da

información del estado del caché de Squid. En la Figura 46 se puede observar que se ha

inicializado Squid en el sistema, asimismo acepta solicitudes de los clientes de la LAN interna por

la inter face de red asignado la dirección 172.16.0.1 a través del puerto 3128.

Page 27: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 27 Módulo 3

Figura 46 : Información del estado del caché de Squid

47. El siguiente paso es configurar el cliente de Squid, para eso utilizaremos como ejemplo el

navegador Mozilla y seleccionamos el menu Editar -> Preferencias donde visualizaremos la

siguiente ventana que se muestra en la Figura 47. Luego seleccionamos la opción Proxies y se

habilita la opción donde dice “Manual proxy configuration” y se agrega la dirección IP del Proxy y

puerto de escucha.

Page 28: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 28 Módulo 3

Figura 47 : Configuración del cliente Squid

48. Se procede a probar la configuración en el navegador escribiendo el siguiente enlace

http://www.awstats.org , solicitud de acceso a esta página que recibirá Squid. En la Figura 48 se

aprecia el acceso de esta página Web solicitada por el cliente.

Page 29: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 29 Módulo 3

Figura 48 : Acceso al cliente de visitar páginas Web a través de Squid

49. Revisando el archivo access.log que se muestra en la Figura 49, se puede observar que Squid

acepta la solicitud de la máquina cliente que pertenece a LAN interna protegida por el proxy

Squid. De este modo Squid solicitará por el cliente al servidor Web público, el cliente accede a

las páginas Web que Squid tiene en transferencia como si fuera el servidor Web publico.

Figura 49 : Información del registro de acceso de los clientes hacia Squid

Page 30: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 30 Módulo 3

50. También se puede configurar Squid para restringir el acceso a sitios no permitidos a que visite el

cliente, primero salimos del directorio sbin y creamos un archivo en el directorio etc como se

muestra en la Figura 50 donde registraremos todos los sitios no permitidos que serán restringido

por Squid.

Figura 50 : Creando el archivo sitios denegados

51. En este archivo editamos una lista de sitios no permitidos como se muestra en la Figura 51.

Figura 51 : Lista de sitios no permitidos registrado en el archivo

52. Después editamos el archivo de configuración en donde agregaremos una nueva lista de control

de acceso y se define el tipo acl “url_regex” que permite a Squid en el archivo especificado

contener una lista de nombres URL. Como se muestra en la Figura 52.

Figura 52 : Definiendo la lista de control de acceso para sitios prohibidos

53. Se aplica una regla de control de acceso como se muestra en la Figura 53, a la lista de control

de acceso (acl) llamado sitios prohibidos; esto permite a Squid denegar el acceso a los sitios

prohibidos que se menciona en el archivo “sitios denegados” a todos los clientes de la lista acl red

local.

Page 31: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 31 Módulo 3

Figura 53 : Regla de control de acceso a la lista acl sitios prohibidos

54. Otra forma de definir una regla de control de acceso es usando “ ! “ como se muestra en la

Figura 54, en donde squid permitirá el acceso a los clientes de la lista acl redlocal excepto a los

que soliciten visitar direcciones de páginas no permitidas comprendidas en la lista acl sitios

prohibidos.

Figura 54 : Regla de control de acceso a la lista acl sitios prohibidos

55. Luego de configurar el archivo squid.conf ejecutaremos squid estando en el directorio actual

(/usr/local/squid) con las siguiente opciones:

sbin/squid -f etc/squid.conf -k reconfigure

Para que vuelva a leer el archivo de configuración de este modo squid aplicará las reglas de

control. En la Figura 55 se solicita el acceso a la página http://www.mp3.com , donde Squid

responde indicando que las reglas de control de acceso impiden que su solicitud sea permitida.

Page 32: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 32 Módulo 3

Figura 55 : Denegando Squid el acceso a sitios no permitidos

56. Revisando el archivo de registro access.log como se muestra en la Figura 56 se deniega el

acceso a la máquina cliente que pertenece a la LAN interna.

Figura 56 : Información del registro de acceso al cliente de Squid

57.Con squid también podemos restringir archivos de extensión, editamos en el archivo de

configuración de squid una nueva lista de control de acceso llamado archivos y el tipo acl

“urlpath_regex” seguido de la opción -i y a continuación una lista de extensiones de archivos

como se muestra en la Figura 57.

Page 33: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 33 Módulo 3

Figura 57 : Lista de control de acceso que contiene extensiones de archivos

58. Se aplica una regla de control de acceso como se muestra en la Figura 58, esto permite a Squid

denegar a que descargue archivos con extensiones definida en la lista acl “archivos” a todos los

clientes de la lista acl “redlocal”.

Figura 58 : Regla de control de acceso a la lista acl archivos

59. De igual modo como se muestra en la Figura 59 se puede definir con “!” en donde squid

permitirá el acceso a los clientes de la lista acl “redlocal” excepto a los que soliciten visitar

direcciones de páginas que permitan descargar archivos con extensiones definida en la lista acl

“archivos”.

Figura 59 : Regla de control de acceso a la lista acl archivos

60. En la Figura 60 se solicita el acceso a la página web donde se descargan archivos comprimidos

con extensión “zip”, Squid responde indicando que las reglas de control de acceso impiden que su

solicitud sea permitida.

Page 34: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 34 Módulo 3

Figura 60 : Denegando Squid a descargar archivos no permitidos

61. El archivo de registro access.log como se muestra en la Figura 61 deniega el acceso a la

máquina cliente cuando intenta descargar un archivo de extensión no permitida por las reglas de

control.

Figura 61 : Información del registro de acceso al cliente de Squid

62. En la Figura 62 se habilita los parámetros que permite a Squid utilizar el puerto 80 al ser

desviado hacia el Proxy todo el tráfico que se solicita a través de determinados puertos,

habitualmente interceptan el tráfico solicitado al puerto 80. A esto se le llama proxy transparente,

porque su utilización es transparente al usuario, este no tiene que configurar en los navegadores

Page 35: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 35 Módulo 3

Web para utilizar el Proxy, bastará con utilizar como puerta de enlace la dirección IP del servidor

Proxy que encaminará todas las solicitudes de los clientes de la red interna con destino al Proxy.

Figura 62 : Parámetros para habilitar Proxy Transparente

63. Todas las solicitudes de los clientes deben ser redireccionado hacia el puerto 3128 por donde

Squid recibe cualquier petición originada en la red local hacia servicios HTTP (80), HTTPS (443),

FTP (21) principalmente, para esto hay que agregar una regla en la tabla NAT como se muestra

en la Figura 63 donde todas las solicitudes de la red local con destino al puerto 80 sean

redireccionado hacia el puerto 3128 por donde escucha Squid.

Figura 63 : Regla de redireccionamiento de puertos

64. En el navegador Mozilla habilitamos la opción “Conexión directa a Internet “. Ver Figura 64

Page 36: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 36 Módulo 3

Figura 64 : Configuración del cliente Squid

65.En la Figura 65 en la máquina cliente asignamos como puerta de enlace la dirección IP del

servidor Squid.

Figura 65 : Asignación de puerta de enlace

66. Se procede a probar la configuración en el navegador escribiendo el siguiente enlace

http://www.linux.org/docs/index.html, solicitud de acceso a esta página que recibirá Squid. En la

Figura 66 se aprecia el acceso de esta página Web solicitada por el cliente

Page 37: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 37 Módulo 3

Figura 66 : Acceso al cliente de visitar páginas Web a través de Squid en Modo Transparente

Page 38: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 38 Módulo 3

1.8. ACTIVIDADES DEL MÓDULO 1.8.1. AUTOEVALUACIÓN 1. ¿Qué parámetro define la ubicación y tamaño del disco donde se almacena los objetos?

a. caché_dir_ufs b. caché_dir_fs c. caché_access_log d. caché_dir

2. ¿Cuál es la opción que permite a squid limpiar el disco donde se almacena los objetos? a. -D b. -k c. -z d. -f

3. ¿Cuál es el archivo donde se registra información de los objetos almacenados en disco? a. cache.log b. squid.log c. store.log d. access.log

4. ¿Qué opción de Squid permite renovar nuevos archivos de registro? a. -k reload b. -k reconfigure c. -k rotate d. -k check

5. ¿Cuáles de estas listas son parámetros administrativos? a. http_access b. visible_hostname

c. caché_dir

d. httpd_accel_port

6. Defina una regla de control de acceso que no permite Squid descargar archivos de extensión

definidos en la lista de acceso llamado extensiones a. acl_access deny extensiones b. http_access drop extensiones c. acl _access drop extensiones d. http_access deny extensiones

Page 39: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 39 Módulo 3

1.8.2. LABORATORIO Experiencia practica 1.- Instalación de un servidor Proxy

Duración

§ 45 minutos

Objetivos

§ Brindar al participante las recomendaciones y procedimiento a seguir para implementar un

servidor Proxy en Linux.

Recursos a utilizar

Una PC que tenga dos interfaces de red por alumno con Linux distribución (RedHat 9.0 o Debían 3.0)

Ejecución de la Práctica I

Procedimiento para implementar un servidor Proxy para proteger la red privada con salida a Internet.

- Habilitar parámetros relacionado con la seguridad del sistema.

Rechazar a responder a solicitudes broadcast

Protección de Cookie TCP SYN

Protección contra malos mensajes de error

Habilitar el reenvió de paquetes

- Descargar fichero fuente de la aplicación Squid

- Verificación de la integridad del fichero fuente

- Descomprimir y extraer los ficheros fuentes de Squid

- Descargar los parches que requiere Squid

- Configuración

- Compilación

- Instalación de Squid

- Configuración mínima de los parámetros de Squid

- Crear listas de Control de acceso para:

§ Intervalo de direcciones IP de la red local

§ Sitios denegados

§ Archivos de extensión

- Aplicar reglas de control de acceso

- Creación del directorio caché de Squid

- Ejecución de Squid

- Configuración de la máquina cliente.

Page 40: Manual básico de proxy Squid

Administración y Seguridad en redes GNU/LINUX

INICTEL 40 Módulo 3

1.9. BIBLIOGRAFÍA

Textos. § Securing and Optimizing Linux: The Ultimate Solution version: 2.0, autor : Gerhard Mourani,

Publicado por : Open Network Architecture, Inc., Ultima version : 2001-06-10

Enlaces. § http://www.squid-cache.org Página oficial de Squid-caché contiene información sobre Squid.

§ http://es.tldp.org/Tutoriales/doc -servir-web-escuela/doc-servir-web-escuela-html/squid.html

Contiene información sobre la instalación y configuración de Squid.

§ http://squid-docs.sourceforge.net/latest/html/book1.html Contiene información en inglés sobre

Squid escrito por Oskar Pearson.