Práctica 6: Puesta en marcha de un servidor Proxy

Anuncio
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
#
# ------------------ -------- -----
cache_peer proxy.rcanaria.es
cache_peer 220.254.20.164
port port
options
----- ----------parent
sibling 3128
11
3128 3130 proxy-only
3130 proxy-only
Práctica 6: Puesta en marcha de un servidor proxy
Arquitectura de Sistemas y Aplicaciones Distribuidas
cache_peer 172.16.1.10
sibling 3128
David Jesús Horat Flotats
Enrique Fernández Perdomo
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
2 0.000031
172.16.1.6
220.254.20.164
4 0.065083
193.146.95.50
172.16.1.6
ICP
ICP
ICP
Opcode: ICP_QUERY (1), Req Nr: 87
Opcode: ICP_QUERY (1), Req Nr: 87
Opcode: ICP_MISS (3), Req Nr: 87
24 0.186011
172.16.1.6
193.146.95.50
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
49 0.257163
172.16.1.6
172.16.1.6
ICP
220.254.20.164
14
ICP
Opcode: ICP_QUERY (1), Req Nr: 88
Opcode: ICP_MISS (3), Req Nr: 88
Opcode: ICP_QUERY (1), Req Nr: 89
Práctica 6: Puesta en marcha de un servidor proxy
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
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
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
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
ICP
ICP
ICP
ICP
Opcode: ICP_QUERY (1), Req Nr: 90
Opcode: ICP_QUERY (1), Req Nr: 92
Opcode: ICP_QUERY (1), Req Nr: 94
103 0.774414
172.16.1.6
220.254.20.164
104 0.774447
172.16.1.6
172.16.1.10
105 0.774467
172.16.1.6
193.146.95.50
107 0.774681
172.16.1.10
117 0.841289
193.146.95.50
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
138 1.505361
172.16.1.6
193.146.95.50
139 1.505392
172.16.1.6
220.254.20.164
140 1.505496
172.16.1.10
141 1.508053
172.16.1.6
193.146.95.50
142 1.508095
172.16.1.6
220.254.20.164
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
176 1.882542
172.16.1.6
172.16.1.10
177 1.882563
172.16.1.6
193.146.95.50
178 1.882716
172.16.1.10
179 1.887157
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
ICP
ICP
ICP
ICP
ICP
ICP
Opcode: ICP_QUERY (1), Req Nr: 95
Opcode: ICP_QUERY (1), Req Nr: 95
Opcode: ICP_QUERY (1), Req Nr: 95
Opcode: ICP_MISS (3), Req Nr: 95
Opcode: ICP_MISS (3), Req Nr: 95
Opcode: ICP_QUERY (1), Req Nr: 96
Opcode: ICP_QUERY (1), Req Nr: 96
Opcode: ICP_QUERY (1), Req Nr: 96
Opcode: ICP_MISS (3), Req Nr: 96
Opcode: ICP_QUERY (1), Req Nr: 97
Opcode: ICP_QUERY (1), Req Nr: 97
Opcode: ICP_QUERY (1), Req Nr: 98
Opcode: ICP_QUERY (1), Req Nr: 98
Opcode: ICP_QUERY (1), Req Nr: 98
172.16.1.6
ICP
Opcode: ICP_MISS (3), Req Nr: 98
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
181 1.887217
172.16.1.6
220.254.20.164
182 1.887268
172.16.1.10
183 1.901887
172.16.1.6
193.146.95.50
184 1.901929
172.16.1.6
220.254.20.164
172.16.1.6
ICP
ICP
ICP
15
ICP
ICP
Opcode: ICP_QUERY (1), Req Nr: 99
Opcode: ICP_QUERY (1), Req Nr: 99
Opcode: ICP_MISS (3), Req Nr: 99
Opcode: ICP_QUERY (1), Req Nr: 100
Opcode: ICP_QUERY (1), Req Nr: 100
Práctica 6: Puesta en marcha de un servidor proxy
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
249 3.073764
220.254.20.164
172.16.1.6
ICP
172.16.1.6
ICP
Opcode: ICP_MISS (3), Req Nr: 102
Opcode: ICP_MISS (3), Req Nr: 101
Hermano .com
1 0.000000
172.16.1.6
193.146.95.50
ICP
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
18 0.981715
172.16.1.6
172.16.1.10
19 0.981754
172.16.1.6
193.146.95.50
20 0.981913
172.16.1.10
21 1.049196
193.146.95.50
55 1.637087
172.16.1.6
172.16.1.10
56 1.637118
172.16.1.6
193.146.95.50
57 1.637274
172.16.1.10
62 1.709727
193.146.95.50
66 1.831129
ICP
ICP
ICP
172.16.1.6
ICP
172.16.1.6
ICP
ICP
ICP
172.16.1.6
ICP
Opcode: ICP_QUERY (1), Req Nr: 103
Opcode: ICP_MISS (3), Req Nr: 103
Opcode: ICP_QUERY (1), Req Nr: 104
Opcode: ICP_QUERY (1), Req Nr: 104
Opcode: ICP_MISS (3), Req Nr: 104
Opcode: ICP_MISS (3), Req Nr: 104
Opcode: ICP_QUERY (1), Req Nr: 105
Opcode: ICP_QUERY (1), Req Nr: 105
Opcode: ICP_MISS (3), Req Nr: 105
172.16.1.6
ICP
Opcode: ICP_MISS (3), Req Nr: 105
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
75 2.029253
172.16.1.6
172.16.1.10
76 2.029292
172.16.1.6
193.146.95.50
77 2.029446
172.16.1.10
78 2.031097
172.16.1.6
ICP
ICP
ICP
Opcode: ICP_MISS (3), Req Nr: 106
Opcode: ICP_QUERY (1), Req Nr: 107
Opcode: ICP_QUERY (1), Req Nr: 107
172.16.1.6
ICP
Opcode: ICP_MISS (3), Req Nr: 107
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
80 2.031207
172.16.1.10
ICP
172.16.1.6
ICP
16
Opcode: ICP_QUERY (1), Req Nr: 108
Opcode: ICP_MISS (3), Req Nr: 108
Práctica 6: Puesta en marcha de un servidor proxy
Arquitectura de Sistemas y Aplicaciones Distribuidas
ICP
David Jesús Horat Flotats
Enrique Fernández Perdomo
81 2.041328
172.16.1.6
193.146.95.50
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
86 2.043843
172.16.1.10
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
ICP
172.16.1.6
ICP
ICP
Opcode: ICP_QUERY (1), Req Nr: 109
Opcode: ICP_QUERY (1), Req Nr: 110
Opcode: ICP_MISS (3), Req Nr: 110
105 2.206639
172.16.1.6
172.16.1.10
106 2.206677
172.16.1.6
193.146.95.50
107 2.206830
172.16.1.10
112 2.243211
172.16.1.6
193.146.95.50
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
119 2.297607
172.16.1.6
172.16.1.10
120 2.297649
172.16.1.6
193.146.95.50
121 2.297805
172.16.1.10
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
130 2.398939
172.16.1.6
193.146.95.50
131 2.399087
172.16.1.10
133 2.421558
172.16.1.6
193.146.95.50
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
143 2.476763
172.16.1.6
172.16.1.10
144 2.476805
172.16.1.6
193.146.95.50
145 2.476956
172.16.1.10
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
155 2.575534
172.16.1.6
193.146.95.50
156 2.575684
172.16.1.10
158 2.595991
172.16.1.6
193.146.95.50
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
167 2.654189
172.16.1.6
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
ICP
172.16.1.6
ICP
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
ICP
172.16.1.6
ICP
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.10
ICP
17
Opcode: ICP_QUERY (1), Req Nr: 111
Opcode: ICP_QUERY (1), Req Nr: 111
Opcode: ICP_MISS (3), Req Nr: 111
Opcode: ICP_QUERY (1), Req Nr: 112
Opcode: ICP_MISS (3), Req Nr: 111
Opcode: ICP_QUERY (1), Req Nr: 113
Opcode: ICP_QUERY (1), Req Nr: 113
Opcode: ICP_MISS (3), Req Nr: 113
Opcode: ICP_QUERY (1), Req Nr: 114
Opcode: ICP_QUERY (1), Req Nr: 114
Opcode: ICP_MISS (3), Req Nr: 114
Opcode: ICP_QUERY (1), Req Nr: 115
Opcode: ICP_MISS (3), Req Nr: 114
Opcode: ICP_QUERY (1), Req Nr: 116
Opcode: ICP_QUERY (1), Req Nr: 116
Opcode: ICP_MISS (3), Req Nr: 116
Opcode: ICP_QUERY (1), Req Nr: 117
Opcode: ICP_QUERY (1), Req Nr: 117
Opcode: ICP_MISS (3), Req Nr: 117
Opcode: ICP_QUERY (1), Req Nr: 118
Opcode: ICP_MISS (3), Req Nr: 117
Opcode: ICP_QUERY (1), Req Nr: 119
Práctica 6: Puesta en marcha de un servidor proxy
Arquitectura de Sistemas y Aplicaciones Distribuidas
168 2.654231
172.16.1.6
193.146.95.50
169 2.654431
172.16.1.10
170 2.662018
193.146.95.50
174 2.695564
172.16.1.6
172.16.1.10
175 2.695601
172.16.1.6
193.146.95.50
176 2.695748
172.16.1.10
178 2.719482
193.146.95.50
183 2.753764
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
David Jesús Horat Flotats
Enrique Fernández Perdomo
Opcode: ICP_QUERY (1), Req Nr: 119
Opcode: ICP_MISS (3), Req Nr: 119
Opcode: ICP_MISS (3), Req Nr: 118
Opcode: ICP_QUERY (1), Req Nr: 120
Opcode: ICP_QUERY (1), Req Nr: 120
Opcode: ICP_MISS (3), Req Nr: 120
172.16.1.6
ICP
Opcode: ICP_MISS (3), Req Nr: 119
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
189 2.773491
172.16.1.6
172.16.1.10
190 2.773531
172.16.1.6
193.146.95.50
191 2.773689
172.16.1.10
194 2.820352
193.146.95.50
198 2.833751
172.16.1.6
172.16.1.10
199 2.833785
172.16.1.6
193.146.95.50
200 2.833941
172.16.1.10
201 2.838678
193.146.95.50
204 2.871813
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
ICP
Opcode: ICP_MISS (3), Req Nr: 120
Opcode: ICP_QUERY (1), Req Nr: 122
Opcode: ICP_QUERY (1), Req Nr: 122
Opcode: ICP_MISS (3), Req Nr: 122
Opcode: ICP_MISS (3), Req Nr: 121
Opcode: ICP_QUERY (1), Req Nr: 123
Opcode: ICP_QUERY (1), Req Nr: 123
Opcode: ICP_MISS (3), Req Nr: 123
172.16.1.6
ICP
Opcode: ICP_MISS (3), Req Nr: 122
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
213 2.933488
172.16.1.6
220.254.20.164
214 2.933528
172.16.1.6
172.16.1.10
215 2.933549
172.16.1.6
193.146.95.50
216 2.933718
172.16.1.10
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
249 3.514979
172.16.1.6
193.146.95.50
250 3.515118
172.16.1.10
252 3.584440
193.146.95.50
255 3.904472
220.254.20.164
172.16.1.6
ICP
ICP
ICP
172.16.1.6
ICP
ICP
ICP
172.16.1.6
ICP
ICP
172.16.1.6
ICP
172.16.1.6
ICP
18
Opcode: ICP_MISS (3), Req Nr: 123
Opcode: ICP_QUERY (1), Req Nr: 125
Opcode: ICP_QUERY (1), Req Nr: 125
Opcode: ICP_QUERY (1), Req Nr: 125
Opcode: ICP_HIT (2), Req Nr: 125
Opcode: ICP_QUERY (1), Req Nr: 126
Opcode: ICP_QUERY (1), Req Nr: 126
Opcode: ICP_MISS (3), Req Nr: 126
Opcode: ICP_MISS (3), Req Nr: 126
Opcode: ICP_MISS (3), Req Nr: 125
Práctica 6: Puesta en marcha de un servidor proxy
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Arquitectura de Sistemas y Aplicaciones Distribuidas
David Jesús Horat Flotats
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
Descargar