Por D. Rafael J. Montero González
Por D. Rafael J. Montero González
Montero González
Introducción
Componentes y funcionamiento
Servidores web
Clientes web
Protocolo HTTP
Seguridad
Protocolo HTTPS
Alojamiento virtual de sitios web
HTTP (Hyper Text Transfer Protocol)
Protocolo de capa de aplicación diseñado para
proporcionar acceso a información hipermedia
remota.
El protocolo http y el modelo cliente/servidor
son la base del WWW (world wide web o
simplemente web)
Está formado por los siguientes componentes:
› Recursos
› Nombres y direcciones (URLs): íntimamete relacionado
con los servidores DNS
› Clientes y servidores web
› Proxies web: intermediarios cortafuegos y cache
› Tecnologías web
Uniform Resource locator.
http://193.168.200.101/pagina.html
› http: protocolo
› 192.168.200.101: dir IP de la máquina que aloja el recurso
› /pagina.html
http://aula.asir.es:8080/datos/practica1.pdf
› http: protocolo
› Aula.asir.es: nombre DNS donde está el recurso
› 8080: puerto en el que escucha peticiones el servidor http
› /datos/practica1.pdf
Escuchan, procesan y sirven peticiones
Los recursos deben estar alojados en la máquina
Escuchan peticiones en el puerto 80/TCP
Mas utilizados:
› Apache HTTP server
› IIS
› Nginx
› Lighttpd
Servidor de aplicaciones: producto que ofrece diferentes
contenedores para ejecutar varios servidores relacionados
Actividad 1.- Busca estadísticas de uso de servidores web
(web survey). Por ejemplo en la dirección:
http://news.netcraft.com/archives/2011/05/02/may-2011-web-server-surv
ey.html
Utiliza TCP como protocolo de transporte y
determina tipos de peticiones, así como el
formato y estructura de respuestas
Versión actual HTTP 1.1
Funcionamiento básico. Pasos
› El usuario introduce la URL en la barra de direcciones
o clic en hiperenlace
› Navegador analiza URL y establece conexión TCP
(después de haberse resuelto el nombre)
› Después de la conexión el navegador envía un
mensaje HTTP de petición
› Servidor envía mensaje de respuesta
› Se cierra la conexión TCP
Actividad 2.- Seguimiento de la conversación cliente servidor
HTTP
› Inicia sesión en Ubuntu con privilegios de administrador
› Inicia captura con wireshark, abre navegador e introduce la dirección web que desees.
Observa el tráfico capturado, analizando el inicio de conexión TCP y los mensajes
petición y respuesta entre cliente/servidor.
› Sitúate sobre un mensaje HTTP y haz clic en la opción Follow TCP stream.
› ¿Qué mensaje y que parte del mensaje contiene la resolución de IP del servidor?
Mensajes HTTP
› Dos líneas de texto plano que pueden ser de dos tipos:
petición o respuesta
› Mensajes de petición:
Formado por tres partes:
Línea inicial de petición: Método usado (GET, POST). Parte
relativa al servidor de la URL. Versión del protocolo utilizada
Línea de cabecera: formada por pares nombre/valor. Cada
cabecera en una línea
Cuerpo del mensaje: parámetros o ficheros a enviar al servidor
Mensajes HTTP
› Mensajes de respuesta:
Formado por tres partes:
Línea inicial de respuesta (estado): Versión HTTP, código de
estado o error (código 200, petición procesada correctamente)
Línea de cabecera: formada por pares nombre/valor. Cada
cabecera en una línea
Cuerpo del mensaje: queda determinado por el tipo de recurso
solicitado.
Mensajes HTTP
› Códigos de estado y error
Números de 3 cifras de 5 tipos
100-199 (informativo): el servidor ha recibido la petición pero no ha
finalizado de procesarla
200-299 (éxito): la petición se ha procesado correctamente (200
“ok”)
300-399 (redirección): petición procesada y redirigida a otra
localización (302 “Found”, 304”Not modified”)
400-499 (error del cliente): error a la hora de solicitar el recurso del
cliente (400: “Bad Request”, 401 “Unauthorized”, 403 “Forbidden”,
404 “Not found”)
500-599 (errores en el servidor): no resuelve la petición porque ha
existido un problema (500 “Internal Server error”, 503 “Service
Unavailable”)
Autenticación
› Se basan en el código de estado 401 y en las cabeceras
WWW-Authenticate y Authoritation. Navegadores
muestran un cuadro de identificación.
› Mecanismos:
Basic: cliente envía un usuario y clave codificados con el
algoritmo base 64.
Digest: cliente envía un usuario y clave hash de la clave al
servidor (MD5)
› Actualmente lo hacen las web mediante formularios,
lenguajes de programación o certificados digitales
Cookies
› Fragmento de información que se envía al cliente para
usarse en futuros accesos.
› Servidores envían las cookies usando cabeceras
(Cookies y Set-Cookie). Detalles:
Nombre
Contenido o valor: texto con el valor
Fecha de expiración
Ruta: donde va a almacenar el cliente
Dominio: de donde viene la cookie
Actividad 3.- Consulta la web
http://www.w3.org/Protocols/rfc2616/rfc2616.ht
ml y busca información sobre los códigos de
error y estado disponibles.
Hoja de prácticas 1.- Protocolo HTTP
HTTP no es seguro:
› Intercambio de información en texto plano, vulnerable
a sniffing
› Basic y Digest no son seguros
› Vulnerables a ataques de suplantación de identidad
(spoofing y man-in-the-middle)
› Ataques de robos de cookies
Actividad 4.- Busca información en Internet
sobre dos ataques web muy extendidos XSS y
SQL Injection.
HTTPS (hypertext transfer protocol secure) usa
SSL para encapsular mensajes.
› Clientes usan https:// en las URL
› Servidores escuchan peticiones por defecto 443/TCP
Consiste en simular que existen varias máquinas
con sus respectivos sitios web sobre un solo
servidor web.
www.asir.es y www.dam.es en un mismo servidor
Tres tipos, a continuación
Alojamiento virtual basado en IPs
› Servidor tiene diferentes IP por cada servidor web
virtual.
› El servidor debe tener varias tarjetas de red
configuradas cada una con una dirección IP
Alojamiento virtual basado en IPs
› Ejemplo de configuración
Equipo con 1 adaptador de red
Dos ip configuradas en la tarjeta
(193.100.200.101 y
193.100.200.201)
› Se configura el servidor para que
actúe de modo distinto en cada dir ip
por http
› Si DNS:
www.asir.es IN A 193.100.200.101
www.dam.es IN A 193.100.200.201
Actividad 5.- Configura el adaptador de red de un
equipo para que tenga dos direcciones IP
estáticas (Opciones avanzadas de las propiedades
de TCP/IP v4).
Comprueba la configuración aislando el
segmento de red de clase y haciendo ping a cada
dirección ip desde otro ordenador del segmento.
Alojamiento virtual basado en nombres
› Servidor permite alojar varios nombres de dominio en
la misma dirección IP
› Se configura el DNS que asocie los nombres de
dominio con la misma dirección IP
Alojamiento virtual basado en
nombres
› Ejemplo de configuración
Equipo con 1 adaptador de red
Una ip configurada en la tarjeta
(193.100.200.101
› Se configura el DNS:
www.asir.es IN A 193.100.200.101
www.dam.es IN A
193.100.200.101
› Se configura el servidor para que
responda a las peticiones:
http://www.asir.es y
http://www.dam.es
Alojamiento virtual basado en puertos
› Servidor atiende peticiones en una dir IP y/o
dominio:puerto diferentes.
› Combina el alojamiento basado en IP/nombres con el
uso de varios puertos a la escucha
Alojamiento virtual basado en
puertos
› Ejemplo de configuración
Equipo con 1 adaptador de red
Una ip configurada en la tarjeta
(193.100.200.101
› Se configura el DNS:
www.asir.es IN A 193.100.200.101
www.dam.es IN A 193.100.200.101
› Se configura el servidor para que
responda a las peticiones:
http://www.asir.es:80 ,
http://www.asir.es:8080 y
http://www.dam.es:80
Hoja de prácticas 2.- Instalación Apache XAMPP en
Windows
Hoja de prácticas 3.- Configuración Apache XAMPP en
Windows
Hoja de prácticas 4.- Instalación Apache linux por defecto
Hoja de prácticas 5.- Configuración Apache linux Parte 1
Hoja de prácticas 6.- Configuración Apache linux Parte 2