Está en la página 1de 23

Práctica 6:

Puesta en marcha de un
servidor Proxy
Arquitectura de Sistemas y Aplicaciones Distribuidas – U.L.P.G.C.

David Jesús Horat Flotats


Enrique Fernández Perdomo
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Índice
Introducción a Squid...........................................................................................2
Obtención e Instalación de Squid....................................................................... 4
Configuración básica......................................................................................... 5
Ejemplo de configuración básica........................................................................ 8
Configuración avanzada......................................................................................9
Ejemplo de configuración avanzada................................................................. 11
Objetivos........................................................................................................11
Archivo de configuración.............................................................................. 11
Ejemplos de acceso....................................................................................... 12
Desde la interfaz interna........................................................................... 12
Desde la interfaz externa.......................................................................... 14
Comprobación del funcionamiento de los hermanos y padre....................... 14
Hermano .es.............................................................................................. 14
Hermano .com........................................................................................... 16
Configuración de un Navegador Web Gráfico para que use el Proxy.............. 19

1
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Introducción a Squid

Squid es un software que cachea datos. Lo realiza guardando las


peticiones que los usuarios realizan. En otras palabras, si una persona quiere
descargar una página web, pide a squid que obtenga dicha página. Squid se
conecta al servidor remoto (por ejemplo http://www.ulpgc.es) y pide la página.
Después reenvía la petición al usuario, pero al mismo tiempo mantiene una
copia. 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 soporta
actualmente los protocolos HTTP, FTP, GOPHER, SSL y WHAIS. No soporta
otros protocolos como RealAudio, Streams, POP3 y similares.

Dentro del campo de las cachés, es necesario tener en cuenta de qué


forma puede ser útil el realizar caché y que objetos deben ser cacheados. Es
totalmente inapropiado cachear por ejemplo números de tarjetas de crédito,
los resultados de un script ejecutado remotamente, sitios que cambian muy a
menudo (como www.elprincipalperiodico.com) o incluso sitios que no desean
ser cacheados.

Squid cumple estos requerimientos, siempre y cuando los sitios remotos


sigan los estándares.

Los scripts ejecutables cgi-bin no son cacheados, las páginas que indican
en las cabeceras peridos de caducidad son tenidos en cuenta, y es posible
especificar con reglas extra que se debe y que no se debe cachear, y para
cuanto tiempo.

Para determinar la utilidad y rendimiento de la cache, es necesario tener


en cuenta diversos factores. Utilizando una cache pequeña (un par de gigas)
se obtienen unos resultados altos (cercanos al 25%). Este espacio cachea los
sitios mas habituales, tales como ole, marca, y similares. Si se dobla el espacio
en disco, no se dobla este porcentaje. Esto es debido a que se está intentando
capturar el resto de peticiones, que con frecuencia son poco utilizadas. Una

2
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

cache grande (por encima de 20 Gb) probablemente no llegará al 50%, a no


ser que las páginas se mantengan durante mucho tiempo.

3
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Obtención e Instalación de Squid

Squid es el servidor caché más utilizado, por lo que suele estar incluido
en las distintas distribuciones de Linux que nos podemos encontrar,
especialmente las orientadas a servidores.

En nuestro caso, usamos la distribución de Linux Fedora Core 31, en la


que viene incluido Squid, por lo que la instalamos directamente desde el CD
sin mayor problema.

En caso de querer compilar e instalar la última versión, habría que ir a la


página oficial de Squid2 y descargarse, o bien la versión estable (actualmente
la 2.5), o bien la versión en desarrollo (actualmente 3.0). Los formatos de
descarga son o bien tar.gz o bien tar.bz2. En ambos casos deberemos
descomprimirlos, compilarlos e instalarlos.

Una vez descargado un gzipped tarball (squid-*-tar.gz), lo


descomprimimos con el comando:

tar -xvzf squid-*-src.tar.gz


cd squid -*
A continuación, para configurar, compilar e instalar Squid, ejecutamos:

./configure
make
make install
Esto instalará Squid en “/usr/local/squid”. Si quiere ver las opciones
disponibles para la instalación de Squid, ejecute:

./configure –help
En la instalación de Fedora Core 3, por defecto, el Squid se instala en
“/usr/sbin/squid” y sus archivos de configuración en “/etc/squid/”.
1 Fedora Core: http://fedora.redhat.com/
2 Squid Web Proxy Cache: http://www.squid-cache.org/

4
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Configuración básica

Todas las opciones de configuración de Squid se realizan en su fichero de


configuración. Por defecto se encuentra en “/usr/local/squid/etc/squid.conf”,
sin embargo en Fedora Core 3, se encuentra en “/etc/squid/squid.conf”. A
continuación explicaremos una por una las opciones de configuración del
Squid.

http_port [host:puerto | puerto]

Especifica el socket donde Squid escuchará peticiones. Por defecto Squid


escucha en todas las ip del ordenador por el puerto 3128. En el caso de tener
un ordenador con dos tarjetas de red: una para la red interna y otra de
conexión a internet, es recomendable especificar a Squid que sólo use la de la
red interna mediante su ip. Si elijes un puerto por debajo de 1024 (por
ejemplo el 80), deberás ser root para poder usarlo.

cache_mgr [usuario]

Especifica el usuario que recibirá un email en caso de que el servidor de


Squid deje de funcionar.

cache_effective_user [usuario]
cache_effective_group [grupo]

En caso de que Squid se ejecute como root, se cambiará su UID y GID a


los especificados por estos parámetros una vez se haya iniciado. Este recurso
se uso como medida de seguridad, ya que una vez iniciados los sockets, ya no
es necesario que Squid siga como administrador del sistema. En caso de no
especificar grupo, Squid se cambiará al grupo del que pertenezca el usuario.

ftp_user [usuario@ | usuario@dominio]

Permite especificar la dirección de correo electrónico que se mandará a


los servidores FTP en donde el login sea anónimo. Esto permite que en caso

5
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

de que un usuario abuse de un FTP, el administrador de dicho FTP tendrá una


dirección donde quejarse y advertir de dicho uso. En caso de poner solo
user@, el dominio se autocompletará con el actual.

http_access allow | deny [ip/máscara | nombre-clase]

Especifica qué ips pueden usar el servicio de Squid y cuales no. Esta
regla puede duplicarse cuantas veces se quiera para especifcar la lista entera
de permisos. Ejemplo:

http_access allow 172.16.6.0/255.255.255.0


http_access deny 172.16.0.0/255.255.0.0
La comprobación se realiza desde arriba hacia abajo y la que primero se
cumple es la que se ejecuta, por ello es aconsejable que las más restrictivas
estén debajo. También se recomienda usar alguna regla que deniege a todos
al final: “http_access deny 0.0.0.0/0.0.0.0” o “http_access deny all”.

acl [nombre-clase] src [ip/máscara]

Permite definir listas de cara a clasificar el acceso de forma más clara en


organizaciones grandes. Ejemplo:

# clases
acl red6 src 172.16.6.0/255.255.255.0
acl redes src 172.16.0.0/255.255.0.0
# permisos
http_access allow red6
http_access deny redes
Este ejemplo clasifica las redes del ejemplo del parámetro anterior, sin
embargo no se ve claramente su utilidad al ser una red pequeña.

cache_peer [cache-host] [tipo] [puerto_http] [puerto_icp]

Squid soporta el concepto de caché jerárquico, por el cual, si no tienes


una IP se la preguntas a otro caché antes que al servidor original. Esto sólo es

6
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

recomendable si la caché está dentro de la red y por tanto es más rápido que
preguntarle al servidor original. El host es la máquina a la que le
preguntaremos o nos preguntará. El tipo puede ser “parent”, “sibling” o
“multicast”. Para especificar varios servidores, simplemente se duplica la
línea.

7
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Ejemplo de configuración básica

A continuación hemos creado un servicio de caché con Squid tal que sólo
los ordenadores de la red local sean los que puedan acceder hacia afuera.

# Escucha en la red local por el puerto 8080


http_port 172.16.6.1:8080

# Si el servicio se cae, manda un email a root


cache_mgr root
# Cuando haya una conexión anónima a un FTP, manda
# como dirección email: administrador@midominio
ftp_user administrador@
# Desde que el Squid se active, cambia al usuario squid
cache_effective_user squid

# Lista de acceso
acl red6 src 172.16.6.0/255.255.255.0
acl red6ext src 172.16.1.6/255.255.255.255
acl red2 src 172.16.1.2/255.255.255.255
acl redes src 172.16.0.0/255.255.0.0
acl all src 0.0.0.0/0.0.0.0
acl loopback src 127.0.0.1/255.255.255.0

http_access allow loopback


http_access allow red6
http_access allow red6ext
http_access allow red2
http_access deny all

8
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Configuración avanzada

cache_dir [tipo-fs] [directorio] [opciones-fs]

Permite especificar el lugar donde se almacenará la caché de Squid y sus


parámetros. Tipo-fs representa el sistema de archivos donde estará nuestro
directorio. Por defecto está incluido el “ufs” que es el sistema tradicional de
Squid. En caso de querer otro formato habría que reconfigurarlo con la opción
–enable-storeio. Para el sistema “ufs”, que es el que usaremos, existen tres
opciones que hay que especificar: Mbytes L1 L2. Mbytes representa el tamaño
máximo de disco que usará Squid para la caché en el directorio especificado.
L1 representa el número máximo de subdirectorios que se crearán en el
directorio especificado. El valor por defecto de L1 es 16. L2 representa el
número máximo de subdirectorios que se crearán dentro de cada directorio de
L1. El valor por defecto de L2 es 256. El valor por defecto del parámetro es
“cache_dir ufs /var/spool/squid 100 16 256”.

cache_access_log [ruta/archivo]

Permite especificar el archivo donde se guardará todas las peticiones de


los clientes, tanto HTTP como ICP. Para deshabilitar el logging usar “none”. El
valor por defecto de este parámetro es: “cache_access_log
/var/log/squid/access.log”.

cache_peer_domain [cache-host] [dominio | !dominio]

Permite especificar para qué dominios hay que o para que dominios no
hay que preguntarle a otro caché. El cache-host debe estar especificado
previamente mediante la opción cache_peer.

udp_incoming_address [ip]
udp_outgoing_address [ip]

Permite especificar por qué interfaces de red escuchará (incoming) y

9
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

mandará (outgoing) paquetes ICP, que son los usados para preguntar. Si
especificamos “0.0.0.0” para “udp_incoming_address”, Squid escuchará por
todas las interfaces de red disponibles. Si especificamos “255.255.255.255”
para “upd_outgoing_address”, que es el valor por defecto, Squid mandará
paquetes ICP sólo por la interfaz especificada en “udp_incoming_address”.

acl [nombre-clase] (dst [ip] | dstdomain [dominio])

Permite definir listas de cara a prohibir el acceso a determinadas ips o


dominios como destino. Por ejemplo a sitios para adultos.

10
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Ejemplo de configuración avanzada

Objetivos
– Tamaño de caché de disco de 50 MB
– Realizar el logging de las solicitudes de los clientes
– 1 Padre
– 1 hermano sólo para .com
– 1 hermano sólo para .es
– Permitir solicitudes de clientes sólo de la interfaz de la red interna
– Permitir solicitar conexiones con servidores y cachés vecinos por la
interfaz externa
– Prohibir las siguientes direcciones:
– Playboy.com
– Playgirl.com
– Sólo permitimos a nosotros, nuestra red local y a la pasarela de red2 el
acceso al proxy

Archivo de configuración
# Caché situada en /var/spool/squid cuyo sistema de archivos
# es ufs, ocupa 50 MB y tiene esta cache 7 subdirectorios en el primer nivel
# y 100 en el segundo nivel.
cache_dir ufs /var/spool/squid 50 7 100

# Guarda la actividad de los clientes en el archivo especificado


cache_access_log /var/log/squid/clientes.log

# # hostname type port port options


# # ------------------ -------- ----- ----- -----------
cache_peer proxy.rcanaria.es parent 3128 3130 proxy-only
cache_peer 220.254.20.164 sibling 3128 3130 proxy-only

11
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

cache_peer 172.16.1.10 sibling 3128 3130 proxy-only

# 1 hermano para .es


cache_peer_domain 220.254.20.164 .es !.com
# 1 hermano para .com
cache_peer_domain 172.16.1.10 .com !.es

# Solo permite solicitudes de la red interna por el puerto 3128


http_port 172.16.6.1:3128
# Solo permite enviar preguntas por la red externa
tcp_outgoing_address 172.16.1.6
udp_outgoing_address 172.16.1.6

acl censurado dstdomain .playboy.com .playgirl.com


acl LosDemas src 0.0.0.0/0.0.0.0
acl MisInternos src 172.16.6.0/255.255.255.0

http_access deny censurado


http_access allow MisInternos
http_access deny LosDemas

Ejemplos de acceso
A continuación mostramos ejemplos de acceso desde varias estaciones.

Desde la interfaz interna


Si intentamos acceder a google nos lo permite perfectamente:

[root@enrique ~]# squidclient -h 172.16.6.1 http://www.google.es


HTTP/1.0 200 OK
Cache-Control: private
Content-Type: text/html
Set-Cookie:

12
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

PREF=ID=3faa49a75a2d03a5:LD=es:TM=1113931620:LM=1113931620:S=
m-qXtjcXXtJAwwua;
expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.es
Server: GWS/2.1
Date: Tue, 19 Apr 2005 17:27:00 GMT
X-Cache: MISS from pasarela12.redes.dis.ulpgc.es
Proxy-Connection: close
...
Sin embargo, si intentamos acceder tanto a www.playboy.com como
www.playgirl.com no podemos:

[root@enrique ~]# squidclient -h


172.16.6.1 http://www.playboy.com
HTTP/1.0 403 Forbidden
Server: squid/2.5.STABLE6
Mime-Version: 1.0
Date: Tue, 19 Apr 2005 17:29:23 GMT
Content-Type: text/html
Content-Length: 1063
Expires: Tue, 19 Apr 2005 17:29:23 GMT
X-Squid-Error: ERR_ACCESS_DENIED 0
X-Cache: MISS from pasarela12.redes.dis.ulpgc.es
Proxy-Connection: close
...

[root@enrique ~]# squidclient -h 172.16.6.1 http://www.playgirl.com


HTTP/1.0 403 Forbidden
Server: squid/2.5.STABLE6
Mime-Version: 1.0
Date: Tue, 19 Apr 2005 17:29:34 GMT
Content-Type: text/html

13
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Content-Length: 1065
Expires: Tue, 19 Apr 2005 17:29:34 GMT
X-Squid-Error: ERR_ACCESS_DENIED 0
X-Cache: MISS from pasarela12.redes.dis.ulpgc.es
Proxy-Connection: close
...

Desde la interfaz externa


[root@pasarela12 ~]# squidclient -h 172.16.1.6 http://www.gooogle.es
client: ERROR: Cannot connect to 172.16.1.6:3128: Connection refused
Es lógico, ya que Squid no está escuchando la interfaz 172.16.1.6, sólo la
172.16.6.1.

Comprobación del funcionamiento de los hermanos y padre


A continuación usaremos el Ethereal para comprobar el funcionamiento
de los hermanos y como se mandan los paquetes (las capturas mostradas se
obtienen tras exportarlas a texto plano desde Ethereal).

Los proxys usados son:

-Como padre: proxy.rcanaria.es (193.146.95.50)

-Como hermanos para .es: 220.254.20.164

-Como hermano para .com: 172.16.1.10

Hermano .es
1 0.000000 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 87
2 0.000031 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 87
4 0.065083 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 87
24 0.186011 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 88
25 0.186056 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 88
26 0.186243 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 88
47 0.253495 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 88
49 0.257163 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 89

14
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

50 0.257204 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 89


51 0.278058 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 90
52 0.278098 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 90
69 0.323775 193.146.95.50 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 89
71 0.342718 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 90
84 0.641992 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 91
85 0.644674 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 92
86 0.644714 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 92
87 0.646733 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 93
88 0.654701 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 94
89 0.654742 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 94
90 0.705929 193.146.95.50 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 91
92 0.708808 193.146.95.50 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 92
94 0.712008 193.146.95.50 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 93
96 0.720026 193.146.95.50 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 94
103 0.774414 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 95
104 0.774447 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 95
105 0.774467 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 95
107 0.774681 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 95
117 0.841289 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 95
126 1.105110 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 87
134 1.461001 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 89
137 1.505319 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 96
138 1.505361 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 96
139 1.505392 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 96
140 1.505496 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 96
141 1.508053 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 97
142 1.508095 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 97
143 1.508127 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 97
144 1.508235 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 97
145 1.572886 193.146.95.50 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 96
147 1.576190 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 97
175 1.882501 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 98
176 1.882542 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 98
177 1.882563 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 98
178 1.882716 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 98
179 1.887157 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 99
180 1.887196 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 99
181 1.887217 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 99
182 1.887268 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 99
183 1.901887 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 100
184 1.901929 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 100

15
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

185 1.901951 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 100
186 1.902068 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 100
188 1.949582 193.146.95.50 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 98
190 1.954109 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 99
191 1.968175 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 100
221 2.242718 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 96
224 2.244791 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 97
229 2.264353 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 101
230 2.264383 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 101
231 2.330102 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 101
236 2.624775 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 102
237 2.624805 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 102
238 2.679557 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 98
239 2.683286 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 99
240 2.691326 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 100
241 2.692708 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 102
249 3.073764 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 101

Hermano .com
1 0.000000 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 103
2 0.000032 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 103
3 0.000770 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 103
4 0.069223 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 103
18 0.981715 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 104
19 0.981754 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 104
20 0.981913 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 104
21 1.049196 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 104
55 1.637087 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 105
56 1.637118 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 105
57 1.637274 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 105
62 1.709727 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 105
66 1.831129 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 106
67 1.831171 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 106
68 1.831361 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 106
70 1.904041 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 106
75 2.029253 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 107
76 2.029292 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 107
77 2.029446 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 107
78 2.031097 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 108
79 2.031136 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 108
80 2.031207 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 108

16
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

81 2.041328 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 109
82 2.041370 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 109
83 2.041520 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 109
84 2.043736 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 110
85 2.043775 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 110
86 2.043843 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 110
87 2.094220 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 107
89 2.095506 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 108
91 2.107428 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 109
93 2.108426 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 110
105 2.206639 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 111
106 2.206677 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 111
107 2.206830 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 111
112 2.243211 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 112
113 2.243255 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 112
114 2.243438 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 112
115 2.273939 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 111
119 2.297607 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 113
120 2.297649 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 113
121 2.297805 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 113
122 2.311048 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 112
125 2.366368 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 113
129 2.398897 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 114
130 2.398939 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 114
131 2.399087 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 114
133 2.421558 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 115
134 2.421600 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 115
135 2.421774 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 115
139 2.464199 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 114
143 2.476763 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 116
144 2.476805 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 116
145 2.476956 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 116
146 2.486737 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 115
149 2.544076 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 116
154 2.575494 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 117
155 2.575534 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 117
156 2.575684 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 117
158 2.595991 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 118
159 2.596035 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 118
160 2.596198 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 118
163 2.643123 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 117
167 2.654189 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 119

17
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

168 2.654231 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 119
169 2.654431 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 119
170 2.662018 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 118
174 2.695564 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 120
175 2.695601 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 120
176 2.695748 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 120
178 2.719482 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 119
183 2.753764 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 121
184 2.753806 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 121
185 2.753986 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 121
186 2.761255 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 120
189 2.773491 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 122
190 2.773531 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 122
191 2.773689 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 122
194 2.820352 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 121
198 2.833751 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 123
199 2.833785 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 123
200 2.833941 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 123
201 2.838678 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 122
204 2.871813 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 124
205 2.871855 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 124
206 2.872030 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 124
208 2.898910 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 123
213 2.933488 172.16.1.6 220.254.20.164 ICP Opcode: ICP_QUERY (1), Req Nr: 125
214 2.933528 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 125
215 2.933549 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 125
216 2.933718 172.16.1.10 172.16.1.6 ICP Opcode: ICP_HIT (2), Req Nr: 125
220 2.939842 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 124
243 3.003337 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 125
248 3.514946 172.16.1.6 172.16.1.10 ICP Opcode: ICP_QUERY (1), Req Nr: 126
249 3.514979 172.16.1.6 193.146.95.50 ICP Opcode: ICP_QUERY (1), Req Nr: 126
250 3.515118 172.16.1.10 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 126
252 3.584440 193.146.95.50 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 126
255 3.904472 220.254.20.164 172.16.1.6 ICP Opcode: ICP_MISS (3), Req Nr: 125

18
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Configuración de un Navegador Web Gráfico para


que use el Proxy

Antes de realizar la configuración del proxy probamos si al navegar


podemos acceder a las páginas prohibidas por nuestro Proxy, como es el caso
de www.playboy.com. Si intentamos el acceso, comprobamos como la
conexión se realiza, tal y como se ve en la Ilustración 1, que se ha detenido
antes de que se cargue la página por completo.

Illustración 1: Acceso a www.playboy.com (detenido antes de entrar completamente)

Para configura el navegador web para que haga uso de nuestro proxy,
que en este caso se trata del Firefox, seguiremos los siguientes pasos:

1. Ir a Edit-->Preferences.

19
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

El cuadro del diálogo al que accederemos tras acceder por el menú


indicado, es el que se ve en la Ilustración 2.

Illustración 2: Cuadro de Diálogo de Preferencias del navegador web Firefox

2. Ir a Connection Settings

Picando en Connection Settings, que se ven el cuadro de diálogo


Preferencias de la Ilustración 2, accederemos a la configuración de la
conexión, donde se configura, entre otros parámetros el proxy a usar, en caso
de usarse alguno, como es nuestro caso.

El cuadro de diálogo que se nos abre para configurar la conexión es el de

20
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

la Ilustración 3, que se ve en el último punto, pues es ahí donde se configura


el proxy para nuestro servidor proxy en concreto.

3. Configurar el proxy poniendo:

El cuadro de diálogo de configuración de la conexión se ve en la


Ilustración 3, en la que ya se ha aplicado la configuración apropiada para
que Firefox haga uso de nuestro proxy, cuya IP es la 172.16.6.1 y que
escucha por el puerto 3128, es decir, los parámetros son los siguientes:

HTTP Proxy: 172.16.6.1Port: 3128

Visto gráficamente, lo tenemos en la Ilustración 3.

Illustración 3: Configuración de la Conexión para nuestro proxy

21
Práctica 6: Puesta en marcha de un servidor proxy David Jesús Horat Flotats
Arquitectura de Sistemas y Aplicaciones Distribuidas Enrique Fernández Perdomo

Una vez realizado el proceso de configuración habrá que Aceptar (OK)


todos los cuadros de diálogo. Esto aplicará la configuración. Ahora podemos
probar de nuevo el acceso a una página prohibida por nuestro servidor proxy.
Volvemos a intentar acceder a www.playboy.com y el resultado es el de la
Ilustración 4.

Illustración 4: Navegación usando el proxy. Denagación de acceso a www.playboy.com

En lugar de producirse el acceso a www.playboy.com como en el caso


anterior, en el que no se usaba el proxy configurado por nosotros, se produce
un error. Esto es debido a que el proxy deniega el acceso a
www.playboy.com, pues está prohibida. En su lugar, el proxy de squid
manda al navegador una página de error que es la que se ha mostrado en la
Ilustración 4.

22

También podría gustarte