Está en la página 1de 40

Administración y Seguridad en redes GNU/LINUX

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

INICTEL 1 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 2 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 3 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 4 Módulo 3
Administración y Seguridad en redes GNU/LINUX

1. FIREWALL PROXY DE APLICACIÓN


1
1.1. DEFINICIÓN
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

INICTEL 5 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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 u sada
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.
L2
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

INICTEL 6 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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)

INICTEL 7 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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 sig uiente sintaxis:

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


Ejemplo 1:
http_access allow localhost

INICTEL 8 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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 cachemgr@dominio.com
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 nogrou p.


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

INICTEL 9 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 10 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 11 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 12 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 13 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 14 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 15 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 16 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 17 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 18 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 19 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 20 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 21 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 22 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 23 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 24 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 25 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 26 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 27 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 28 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 29 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 30 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 31 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 32 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 33 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 34 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 35 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 36 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 37 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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

INICTEL 38 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 39 Módulo 3
Administración y Seguridad en redes GNU/LINUX

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.

INICTEL 40 Módulo 3