Tema 4 - Servicio HTTP Servicios en Red

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 29

Servicio HTTP

¿Qué es HTTP?: Protocolo de Transferencia de Hipertexto. Es el método más común de intercambio de información
en la red WWW, mediante el cual se transfieren páginas desde un ordenador servidor a uno cliente.

→ Actualmente está en su versión 3 (2018). Se introdujeron algunas mejoras pero el funcionamiento básico del
protocolo apenas ha cambiado desde la versión 1.1. de 1999. Es frecuente ver HTTP / 1.1

→ HTTPS: Protocolo que la versión segura de HTTP. Es un estándar web desde el 2000.

WWW: World Wide Web, la telaraña mundial

Es una agrupación de miles de páginas electrónicas basadas en textos y en todo tipo de información multimedia,
conectadas entre sí, a través de hiperenlaces (elementos de las páginas que enlazan con otras páginas o elementos).

→ Las páginas web están escritas en lenguaje de marcas de hipertexto: HTML

Modelo cliente servidor (Arquitectura web clásica)

Cliente HTTP: Programa navegador. Solicita a un servidor Web el envío de páginas de información. Chrome, Firefox.

Las páginas son documentos de texto plano, estructurado por etiquetas en lenguaje HTML y que el navegador
interpretará para poder mostrarlo al usuario en el formato adecuado

Si lo que recibe no es un documento de texto (vídeo, sonido) no reconocido por el cliente, éste deberá encargarse
de activar una aplicación externa capaz de gestionarlo, o preguntar al usuario qué desea hacer con el fichero.

HTTP: protocolo sin estado

El protocolo HTTP no recuerda ningún suceso de conexiones anteriores a la actual.

→Después de atender una petición, libera la conexión.

→Cookies: Ficheros de texto que se intercambian entre el cliente y el servidor, la próxima vez que se demande un
intercambio de información partiendo de la misma situación, se tendrá en cuenta la información de dichos ficheros.
Dan “memoria” al protocolo.

Ej: Mantener una sesión abierta en un servidor web→ Puedo mantenerla abierta aunque visite otras webs

1. ¿Cómo sabemos las cookies que tenemos guardadas si utilizamos el navegador Chrome ?

Mira en chrome://settings/content/all y averigua cuántas cookies tienes actualmente con ese navegador.

2. ¿Por qué las cookies pueden ser un problema para la privacidad del usuario?

Software de Servidores webs

 Apache: Es el más usado en Internet. Es software libre. Actualmente está en la versión 2. Normalmente
trabaja sobre Linux pero también puede instalarse sobre Windows .
 Internet Information Server (IIS): Desarrollado por Microsoft para sus sistemas servidores (Ej: 2008 server,
2012 server, etc; también se puede activar en sistemas operativos cliente como Windows 10).
 Nginx: Es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo
electrónico (IMAP/POP3).
● GWS (Google Web Server): es un servidor a medida que Google usa en sus infraestructuras.
Uso de servidores web:

El puerto estándar para conexiones con HTTP es el 80 (TCP)

URL ( localizador de recursos uniforme)

Es una secuencia de caracteres que se usa para nombrar recursos en Internet, por su localización.

Partes de que consta:

 El protocolo que se usa para comunicar


 El servidor o máquina con el que se comunica
 El puerto de red en el servidor para conectarse
 La ruta al recurso en el servidor (por ejemplo, su nombre de archivo).

Ej: http://www.pepe.com:8080/casa/pepe.htm

3. Identifica las partes de las siguientes URLs:


● ftp://ftp.microsoft.com:3222

● https://merluzo.com:8443

● http://terra.es/cine/video/estar.wmv

Comunicación HTTP

El intercambio de información entre el cliente y el servidor web se concreta mediante mensajes: Son las peticiones
del que se realizan entre el cliente y el servidor, así como las respuestas en sentido inverso.

El contenido de dichos mensajes son líneas de texto, cada una de las cuales contiene las órdenes y parámetros con
las sintaxis definidas por el protocolo HTTP.

Métodos de petición (REQUEST)

Formato básico:

MÉTODO URI VERSIÓN_HTTP

Ejemplo: GET http://www.educaragon.org HTTP/1.0

URI: Es el identificador del recurso en el servidor. Suele coincidir con su URL. Un URI se diferencia del URL en que
permite incluir en la dirección una subdirección (las que empiezan por "#" que indican un fragmento de una página
web)

MÉTODOS más usados:


 GET: Para obtener cualquier tipo de información del servidor. Ocurre cada vez que se pincha en un enlace y
se accede a una página web.
 HEAD: Como el GET pero la respuesta no tiene el cuerpo del mensaje (muestra la cabecera de la página web)
 POST: Envío de información del cliente al servidor (Ej: datos que se introducen en un formulario web)

4. Observa la siguiente captura de Wireshark y contesta a las preguntas siguientes:

a) ¿Cuál es la dirección IP del servidor web? 188.125.73.108


b) ¿Cuál es el puerto de conexión del servidor web? 80
c) ¿Qué método de petición usa el cliente web? GET
d) ¿Cuál es la URI que se pide? http://www.yahoo.es/
e) ¿Qué versión del protocolo HTTP se usa? HTTP/1.1
f) ¿Qué responde el servidor al cliente? 301 Moved Permanently

5. Observa la siguiente captura de Wireshark y contesta a las preguntas siguientes:

a) ¿Qué método de petición usa el cliente web? POST


b) ¿Cuál es la URI del método? http://servicios.aragon.es/fct/incio.login.do
c) ¿Qué versión del protocolo HTTP se usa? 1.1
d) ¿Qué responde el servidor al cliente? 200 OK

Métodos de respuesta (RESPONSE)

Son las respuestas del servidor web a las peticiones del cliente. Formato:

Versión_del_protocolo Código_de_estado Texto_explicativo

Ej: HTTP/1.1 405 Method Not Allowed

Ej: HTTP/1.1 200 OK

Código de estado: número de tres cifras. Tipos:

● Informativos (1xx)
● Éxito de la solicitud (2xx)

● Redireccionar la solicitud (3xx)

● Error generado en el cliente (4xx)

● Errores generados en el servidor (5xx)

Típicos códigos de estado:

● 200: OK, Operación llevada con éxito

● 404: Página no encontrada

6. Busca en el listado de códigos de estado ¿Qué significa en http un código de estado 505? ¿Quién lo genera? Lo
genera el servidor y significa el servidor no soporta o no quiere soportar la versión del protocolo HTTP utilizada en la
petición del navegador.

Esquema de una comunicación con HTTP

1. Un programa cliente establece la conexión con un servidor web

2. El cliente envía una petición indicando el método, la URI a la que pretende acceder y la versión del
protocolo.

3. El servidor responde con una línea de estado (versión protocolo, código de estado, texto explicativo), varías
líneas de encabezado adicionales y un cuerpo del mensaje donde aparecen los datos solicitados por el
cliente.

4. El programa servidor cierra la conexión.

→A CADA PETICIÓN HTTP DEL CLIENTE, EL SERVIDOR DEBE DAR UNA RESPUESTA

7. Relaciona la siguiente captura de Wireshark con el esquema anterior de comunicación con HTTP (indica también
quién es el servidor, el cliente, la petición, URI, versión del protocolo y línea de estado)

1. IP cliente: 192.168.1.35 IP servidor: 194.224.66.49


2. Petición:

MÉTODO de petición: GET URI: http://www.rtve.es/

Versión protocolo: HTTP/1.1

3. Respuesta (línea de estado):

Versión del protocolo: 1.1 código: 200 texto: OK

Certificado digital

Un certificado digital o certificado electrónico es un fichero informático generado por una entidad de servicios de
certificación que asocia unos datos de identidad a una persona física, organismo o empresa confirmando de esta
manera su identidad digital en Internet.

El certificado digital es válido para autenticar a un usuario o sitio web en internet por lo que es necesaria la
colaboración de un tercero que sea de confianza para cualquiera de las partes que participe en la comunicación.

El nombre asociado a esta entidad de confianza es Autoridad Certificadora pudiendo ser un organismo público o
empresa reconocida en Internet.

Los certificados digitales emitidos por una Autoridad Certificadora llevan un coste económico.

Autoridad de certificación

Es la entidad que garantiza la identidad del usuario mediante la emisión de certificados, permite la firma electrónica
y el intercambio de claves de cifrado.

Ejemplos:

 Fábrica Nacional de Moneda y Timbre


 VERISIGN: Empresa pionera y líder mundial en emisión de certificados digitales.

Protocolo SSL (Secured Sockets Layer)/TLS (Transport Layer Security)

Protocolo utilizado en transacciones seguras vía web entre un cliente y un servidor.

Servicios que proporciona:

 Autenticación: El usuario se identifica de forma unívoca


 Integridad: La información no se altera
 Confidencialidad: Es privado entre el cliente y el servidor

SSL ha evolucionado a otro protocolo de cifrado llamado TLS . SSL llegó hasta la versión 3.0 y después se continuó
con TLS. La versión de TLS que más se usa es la 1.2. Desde el año 2018 existe la versión 1.3, que es la más segura.

(Filtrar por tls en Wireshark)

Protocolo de aplicación HTTPS

El sistema HTTPS utiliza un cifrado basado en SSL/TLS para crear un canal cifrado más apropiado para el tráfico de
información sensible que el protocolo HTTP.

De este modo se consigue que la información sensible no pueda ser usada por un atacante que haya conseguido
interceptar la transferencia de datos de la conexión, ya que lo único que obtendrá será un flujo de datos cifrados que
le resultará imposible de descifrar. HTTPS usa por defecto usa el puerto 443.
Para preparar un servidor web que acepte conexiones HTTPS, el administrador debe crear un certificado de clave
pública para el servidor web. Este certificado debe estar firmado por una autoridad de certificación para que el
navegador web lo acepte.

Los navegadores web generalmente son distribuidos con los certificados raíz firmados por la mayoría de las
autoridades de certificación por lo que éstos pueden verificar certificados firmados por dichas autoridades.

Las organizaciones pueden también ser su propia autoridad de certificación, particularmente si son responsables
de establecer acceso a navegadores de sus propios sitios (sitios en una compañía intranet).

Estas pueden agregar copias de su propio certificado firmado a los certificados de confianza distribuidos con el
navegador.

Cuando nos aparece un error de este tipo en el navegador:


Es debido a que el navegador no reconoce la autoridad de certificación del servidor. Se tendrá que instalar en el
navegador el certificado correspondiente de la organización.

(Por ejemplo, el servidor Apache se puede activar un módulo SSL con un certificado autofirmado)

8. Captura con Wireshark el tráfico de tu tarjeta mientras simulas la compra de un billete en RENFE.es ¿Qué
protocolos de seguridad identificas? TLSv1.2 ¿A qué puerto nos conectamos con el servidor seguro de RENFE? 443

9. ¿Por qué al acceder a la web http://pagina-web.com/index.html aparece en el navegador como no seguro?

10. Esta es la información que vemos de un certificado digital de El Corte Inglés:


¿Qué Autoridad de Certificación lo emite? GeoTrust.

¿Qué tipo de clave se puede saber? La pública.

Para la encriptación de la comunicación HTTPS se sigue el siguiente esquema de 2 claves:

 Una clave pública que el servidor comparte con el cliente para que éste encripte
 Una clave privada que el servidor no comparte y para desencriptar

Al principio de la conexión se genera una llave de sesión (session key) encriptada con la calve pública y que será la
que servirá para encriptar y desencriptar todas las comunicaciones.

Fases de una conexión HTTPS


Se dan los 2 tipos de cifrados:

Cifrado asimétrico:

La clave de sesión:

 Se cifra con clave pública


 Se descifra con la clave privada del servidor

Cifrado simétrico:

Se usa la misma clave (clave de sesión) para cifrar y descifrar las comunicaciones.

11. Al conectarse a https://www.wikipedia.org capturamos estas tramas que usan TLS:

¿Qué trama asegura al cliente que se ha conectado al servidor de www.wikipedia.org? Certificate, Certificate Status.

Haz la experiencia de capturar con Wireshark mientras accede a la esta web. Analiza la captura y encuentra la trama

donde el servidor envía su clave pública al cliente.

El mensaje "Change Cipher Spec" es para indicar que a partir de este punto, los datos se cifrarán o descifrarán utilizando los
parámetros acordados.

12. Observa la diferencia en el Handshake de TLSv1.2 y TLSv.1.3 (versión actual)


13. Lee el siguiente artículo: https://www.nobbot.com/redes/hacker-web-falsa/

a) ¿Cómo llegan a la web falsa los usuarios? A través de un link.


b) ¿Por qué creen los usuarios que la web no es falsa? Por el candado.
c) ¿Es garantía que una web no es falsa el hecho de usar https? No. Razona la respuesta

14. ¿Cómo nos puede ayudar el sitio https://letsencrypt.org/es/ a montar un servidor HTTPS?

Ayuda, Diferencias entre certificados SSL de pago y Let’s Encrypt:


https://planetampodcast.com/2021/05/diferencias-entre-certificados-ssl-de-pago-y-lets-encrypt/

15. ¿Qué relación tiene X.509 con los certificados digitales?

https://es.wikipedia.org/wiki/X.509#Estructura_de_un_certificado

Práctica con el servidor Apache2

Necesitaremos nuestras MV Ubuntu Server y Lubuntu. Utilizaremos esta configuración IP:

En el cliente: 192.168.4.200 (Lubuntu)

En el servidor: 192.168.4.100 (server)

En nuestro Ubuntu Server hacemos la instalación: #apt install apache2

Comprobamos que funciona desde el cliente Lubuntu con el firefox:


La página de inicio por defecto del servidor será la que se encuentra en: /var/www/html/index.html. La vamos a
editar para que salga nuestro nombre en la página de inicio:

Comprueba el cambio accediendo desde el cliente a la página de inicio:

El servicio se llamaba apache2

 Detener servicio: # systemctl stop apache2


 Iniciar servicio: # systemctl start apache2
 Reiniciar servicio: # systemctl restart apache2

También se puede usar las opciones clásicas de #service apache2 start, #service apache2 stop y #service apache2
restart
Si únicamente estás realizando cambios en la configuración, puedes recargar Apache sin necesidad de perder las
conexiones que pudieran estar activas: # systemctl reload apache2

El proceso se llama también apache2.

Directorio de instalación: /etc/apache2


Archivo generados en /etc/apache2 en la instalación:

El Archivo de configuración general de Apache es: /etc/apache2/apache2.conf. Si hacemos cambios en este archivo
deberemos reiniciar el servicio para sean efectivos.

Este archivo sirve para configurar el servidor apache. Cada línea contiene una directiva de configuración. Si la línea
empieza por un # es un comentario.

En ese fichero se incluyen los ficheros que forman parte de la configuración de Apache2:

...

IncludeOptional mods-enabled/*.load

IncludeOptional mods-enabled/*.conf

...

Include ports.conf

...

IncludeOptional conf-enabled/*.conf

IncludeOptional sites-enabled/*.conf

Los ficheros que se añaden guardados en el directorio mods-enabled corresponden a los módulos activos.

Los ficheros añadidos del directorio sites-enabled corresponden a la configuración de los sitios virtuales activos.

El fichero ports.conf se especifica los puertos de escucha del servidor.

Algunas directivas que podemos configurar son: #Directorio con los ficheros de configuración de Apache

ServerRoot "/etc/apache2"

#DIrectorio de archivos log por defecto

Por defecto están los Archivos log (error.log y access.log) están en /var/log/apache2
Variables de entorno

El servidor HTTP Apache HTTP ofrece un mecanismo para almacenar información en variables especiales que se
llaman variables de entorno. Esta información puede ser usada para controlar diversas operaciones como por
ejemplo, almacenar datos en ficheros de registro (log files) o controlar el acceso al servidor. Podemos encontrar
estas variables definidas en el fichero /etc/apache2/envvars.

Por ejemplo: el valor de la variable de entorno APACHE_LOG_DIR es /var/log/apache2

Apache escucha en el tradicional puerto 80 del protocolo HTTP como puedes comprobar en el archivo
/etc/apache2/ports.conf

El archivo de configuración POR DEFECTO de Apache2( /etc/apache2/sites-available/000-default.conf)

Este archivo sirve para configurar el servidor apache. Cada línea contiene una directiva de configuración. Si la línea
empieza por un # es un comentario.

Directivas básicas con sus valores por defecto: #Nombre del servidor
ServerName nombre del servidor. Si le ponemos un nombre DNS, debemos registrar este nombre en un servidor
DNS y el servidor DNS del cliente debe resolver ese nombre.

#Directorio raíz de los documentos publicados

DocumentRoot /var/www/html

Podemos comprobar que, por defecto, la página index.html del sitio web se encuentra en ese directorio:

Virtualizar varios sitios web en el mismo servidor

Apache es capaz de atender, desde una sola máquina, a todo un conjunto de sitios web.

Primero habrá que disponer los directorios públicos en /var/www

Creamos el directorio smr2

Y creamos el archivo html: nano /var/www/smr2/index.html

Ahora vamos a crear un archivo de configuración para el sitio web virtual.

Este archivo de configuración irá en /etc/apache2/sites-available (es el directorio donde se alojan los diferentes
sitios virtuales que podrían habilitarse) siendo el archivo 000-default.conf el sitio por defecto.
Para el sitio virtual crearemos otro archivo de configuración y utilizaremos la estructura siguiente

<VirtualHost *:80>
Directivas de configuración
</VirtualHost>

De entre las directivas posibles, vamos a fijar las siguientes para cada sitio virtual:
● ServerName (Nombre por el que se va a acceder al virtual host, el nombre DNS o el nombre de la máquina)

● ServerAlias (Es otro nombre con el que se puede acceder al sitio)

● DocumentRoot (Es el directorio donde están los archivos html del sitio)

Creamos /etc/apache2/sites-available/smr2.conf y escribimos:

Para habilitar un sitio virtual y deshabilitar el sitio que estaba por defecto hacemos lo siguiente:

a2dissite 000-default.conf (para deshabilitar el sitio por defecto)

a2ensite smr2.conf (para habilitar el nuevo sitio virtual)

Reiniciamos el servicio con la recarga de estos archivos: systemctl reload apache2

Lo que hace la orden a2ensite es crear un enlace simbólico al fichero smr2.conf dentro del directorio
/etc/apache2/sites-enabled. Digamos que pasa de ser un sitio disponible a ser un sitio activado. Puedes
comprobarlo listando el contenido de /etc/apache2/sites-enabled:

Y comprobamos desde el cliente el nuevo sitio virtual SMR2:


Hemos accedido por IP. Para acceder por el nombre del servidor smr2.com sería necesario que este registrado
smr2.com a la IP 192.168.4.100 en el archivo de zona smr2.com de Bind

Tener varios sitios activos a la vez

Si quisieramos tener los 2 sitios activos a la vez podríamos hacerlo habilitándoles y además cada sitio web debería
escuchar por un puerto diferente.

Ejemplo: Un sitio web <VirtualHost *:80> y otro <VirtualHost *:8080>

Ejemplo:

Además debe indicarse todos los puertos de escucha del servidor web en:

y recargar los archivos de configuración.

A uno accedemos con http://192.168.4.100 y al otro con http://192.168.4.100:8080

Otra forma de tener varios sitios web en la misma máquina es hacer que cada sitio web responda a una IP diferente,
es el virtual host basado en Ip:

Para ello debemos asignar a una interfaz varias IPs y para cada sitio virtual indicaremos su IP:

1) configuración en netplan

enp0s8:

addresses: [192.168.4.100/24, 192.168.4.110/24] y hacemos netplan apply

2) Configuración de los sitios virtuales por IP:

un sitio: <VirtualHost 192.168.4.100:80>.... </VirtualHost>

otro sitio: <VirtualHost 192.168.4.110:80>.... </VirtualHost> y reiniciamos el servicio.

También podemos hacer que un mismo sitio responda a varias IPs. Ejemplo:
Se supone que las 2 IPs corresponden a IPs del servidor en diferentes interfaces de red)

Otra forma de tener varios sitios web en una máquina es por medio los nombres DNS que aparecen en ServerName
siempre y cuando previamente hayamos asociado estos nombres DNS con la Ip de la máquina en su zona DNS
definida en Bind.

Ejemplo:

En este caso se accederá a un sitio web con lab.geekflare.com y al otro con gf.dev.

HTTPs en Apache

Ahora vamos a habilitar el módulo SSL para poder usar https con el servidor.

Para ello: # a2enmod ssl y habilitamos el sitio default-ssl.conf: # a2ensite default-ssl.conf cuya configuración está
en:

y reiniciamos el servidor: # systemctl restart apache2

Ahora desde el cliente intentamos la conexión con https:


Le damos a Advanced

Nos advierte que el certificado de nuestro sitio no es válido por que está auto-firmado. Nos da igual, y añadimos
excepción.

y confirmamos la excepción.

Comprueba que funciona la web con https, aunque nos advierte que la conexión no es segura
En los detalles de la conexión vemos:

Y el certificado:

Este el aspecto del archivo default-ssl.conf:

Como se puede ver el puerto 443 es el que está configurado para ser usado por este sitio virtual
y certificado generado por la instalación por defecto es el que si indicaba así en la configuración del VirtualHost:

que tiene extensión .PEM

La clave privada se indica en:

Comentar que imprescindible esta directiva para que el módulo esté activo:

Si quisieramos hacer un certificado autofirmado tendríamos que usar el comando openssl req.

Ejemplo:

y después poner la localización del certificado (.pem) y la clave privada (.key) en la configuración del sitio.

Partiendo de la siguiente configuración en Apache en /etc/apache2/sites-available

Si queremos que el servidor web atienda una petición por su nombre DNS o su alias debemos configurar el servidor
DNS de este dominio. Para ello, con Bind, editamos:
y añadimos los RR necesarios en el fichero indicado:

Reiniciamos el servicio:

y en el cliente indicamos cuál debe ser su servidor DNS:

Ahora ya podemos acceder al servidor web mediante los nombres DNS:


 Instalación: #apt install apache2
 La página de inicio por defecto del servidor será la que se encuentra en: /var/www/html/index.html. El
servicio se llama apache2
 Detener servicio: # systemctl stop apache2
 Iniciar servicio: # systemctl start apache2
 Reiniciar servicio: # systemctl restart apache2
 Recargar Apache: # systemctl reload apache2
 El proceso se llama apache2.
 Puerto de escucha por defecto: 80 TCP
 Directorio de instalación: /etc/apache2 (es el APACHE_LOG_DIR)
 Archivo de configuración principal: /etc/apache2/apache2.conf.
 El fichero ports.conf se especifica los puertos de escucha del servidor.
 Las variables de entorno están definidas en el fichero /etc/apache2/envvars.
 Directorio de los sitios disponibles: /etc/apache2/sites-available
 Archivo de configuración por defecto: 000-default.conf

Directivas básicas para un sitio con sus valores por defecto: Se ponen entre <VirtualHost *:80> y </VirtualHost >

 ServerName: Nombre por el que se va a acceder al virtual host, el nombre DNS o sino el nombre de la
máquina. Es necesaria si queremos acceder por el nombre al servidor (también sería necesario que el
nombre DNS pueda ser resuelto por un servidor DNS)
 DocumentRoot /var/www/html —> Directorio raíz de los documentos publicados
 Errorlog /var/log/apache2/error.log —> fichero que registra los errores
 CustomLog /var/log/apache2/access.log common —> fichero registra accesos al sitio en formato común:

(En los registros consta la IP del cliente, fecha, la petición del cliente y el código de respuesta del servidor a la
petición). EJ: Petición GET con respuesta 200 del servidor. También existe el formato combined, algo más extenso:

Nota: Los archivos log los creará apache al empezar a registrar accesos. No es necesario que existan previamente,
pero sí el directorio donde se situarán.

 Archivos log en /var/log/apache2: accesses.log, error.log


 Habilitar un sitio virtual: a2ensite archivo_de_configuración_del_sitio.conf (Crea enlace simbólico en
/etc/apache2/sites-enable )
 Deshabilitar un sitio virtual: a2dissite archivo_de_configuración_del_sitio.conf (Elimina enlace simbólico en
/etc/apache2/sites-enable )
HTTPs en Apache: Habilitar el módulo SSL para poder usar https con el servidor: # a2enmod ssl , Habilitar el sitio
default-ssl.conf: # a2ensite default-ssl.conf. Aspecto de los ficheros de configuración en sites-available:
Existen navegadores para movernos por la web desde el terminal de Linux. Uno de los más usados en w3m.

Como es un navegador en línea de comandos sólo puede mostrar texto. No se pueden ver imágenes o videos. Sin
embargo, si podemos ver:

 El texto general de la página.


 Los vínculos (links), lo que permite usar menús, navegar por el contenido.
 De las imágenes, videos, animaciones solo podremos ver su ubicación y en caso de que posean algún
vínculo la dirección del vínculo.
W3m no muestra el estilo de la página (Guardado en archivos .css) sino su estructura básica hecha en HTML.

Vamos a instalarlo en nuestra máquina de Ubuntu Server para salir a Internet por la conexión NAT.

Instalación: #apt install w3m

Para llegar a una página basta con poner en el terminal w3m sitio_web.

Ejemplo: w3m www.google.es

Con el tabulador y cursores podemos ir moviéndonos por la página web.


Y con Enter seleccionar el enlace deseado.

Podemos escribir texto haciendo ENTER sobre las áreas que haya que completar, estas áreas normalmente se
encuentran entre corchetes "[ _ ]". Luego aparecerá en la última línea del programa una pequeña barra con la
indicación "TEXT:", en esa línea podemos escribir lo que necesitemos y presionando nuevamente ENTER ese texto se
escribe en el área seleccionada. Esto sirve para escribir usuarios, contraseñas, comentarios, etc.

 Con la tecla U podemos navegar hacia otra URL


 Para volver atrás se usa mayúsculas+B
 Menú de opciones: tecla INSERT
 Para salir del navegador: mayúsculas+Q

Comprueba la navegación con 3wm en www.google.es y en tu sitio web de Apache

Ejercicios de repaso (Resueltos):

1. Observa la siguiente captura de una trama en Wireshark:

a) ¿Cuál es la IP del servidor web? 92.122.188.112


b) ¿Cuál es el método de petición HTTP empleado? HEAD
c) ¿Cuál es la URI completa de la petición?
ds.download.windowsupdate.com/v11/2/microsoftupdate/redir/v6-muredir.cab?1511250744
Nota: .cab son archivos especiales de Windows para instalaciones. Lo que viene después del interrogante es
un parámetro de la URI

2. Observa la siguiente captura de una trama en Wireshark:

a) ¿Cuál es la IP del servidor web? 188.244.95.224


b) ¿Cuál es el método de petición HTTP empleado? GET
c) ¿Cuál es la URI completa de la petición? www.educaaragon.org/index.asp
3. Observa en estas tramas las primeras fases de conexión a un servidor web:

a) ¿Cuál es la dirección IP del servidor web?¿Es un servidor web seguro? Razona la respuesta.
204.79.197.200
b) ¿Cuál es el puerto de conexión del servidor web? 443
c) ¿Se produce un intercambio de certificado entre el cliente y el servidor? ¿Por qué?
El protocolo de intercambio de información es TSL, que es un protocolo para intercambio de información
segura a través del navegador con cifrado de los datos. Para ello es necesario la transferencia de certificados
del servidor al cliente y el intercambio de claves públicas para el cifrado de la conexión.
4. Observa la siguiente imagen

a) ¿Es este un servidor con el que nos comunicamos por un canal cifrado? Razona la respuesta Si, se está
utilizando el protocolo HTTPS por lo que la conexión es cifrada.
b) ¿Qué es "Symantec Class 2 Secure Server CA -G4"? ¿Para qué sirve? El emisor del certificado digital.

5. Si nos aparece esta página en el navegador

¿Qué código de estado transmitirá con HTTP al cliente el servidor web?


404. No encontrado.
¿Qué significa dicho código? El elemento buscado no se encuentra.
Prueba a encontrar el código de respuesta del servidor mediante la herramienta
DevTools DE CHROME: CTRL+Mayúsculas+C en CONSOLE
6. Instala IIS en tu Windows 10 activando esta característica:
Accede a su página de inicio mediante http://localhost ¿Qué página carga por defecto?
Investiga mediante la herramienta de configuración

● Cuál es el directorio por defecto del servidor en el que se ponen los archivos web del sitio web.
● Dónde almacena los registros de los accesos al servidor

7. Si vemos esto:

a) ¿La conexión está cifrada? Si


b) ¿Qué problema tiene el certificado? No es un certificado oficial creado por una compañía
certificadora y no es considerado como válido por el explorador.

8. ¿Cuál es el protocolo actual para el cifrado que se usa en HTTPS? TLS.V1.2-TLS.V1.3

9. ¿Qué clave del servidor obtiene un navegador web al conectar con un servidor seguro?

Certificado del servidor que contiene la clave pública del servidor.

10. Al usar HTTPS con el servidor Apache aparece la siguiente información en el navegador del cliente ¿Por qué?
No es un certificado oficial creado por una compañía certificadora y no es considerado como válido por el
explorador.
11. Si un navegador tiene esta información sobre el CPIFP Los Enlaces

¿Mostrará alguna advertencia de seguridad al acceder a la página


https://moodle.cpilosenlaces.com/login/index.php?
¿Qué se hizo para que apareciera este certificado de confianza en el navegador?
¿Cómo podemos encontrar los certificados raíz de confianza en Windows 10? Comprueba si tienes instalado el
certificado raíz de la FNMT y cuál es su fecha de validez.

12. Observa la siguiente captura de Wireshark


¿Cuál es la IP del servidor web? ¿Qué significan los códigos 200 y 304? ¿Por qué se generó el código 304 de
respuesta?

PREGUNTAS SOBRE APACHE

13. En Apache2 cuál es:


● El directorio público por defecto: /var/www/html

● El nombre del servicio: apache2


¿Cómo se configura un sitio virtual en Apache?
14. En Apache2, ¿cómo deshabilitaríamos el sitio por defecto?
¿Y cómo lo volveríamos a habilitar?
12. Indica cómo podríamos conseguir que nuestro servidor web con Apache use el protocolo HTTPS para conexiones
de los clientes.
13. En Apache, si hago un cambio en un archivo de configuración /etc/apache2/sites-available/misitio.conf ¿con qué
sentencia serían efectivos los cambios?
14. Interpreta la siguiente información del archivo access.log de apache2:

¿Es de tipo common o combined?


15. ¿Cuál es la característica principal del navegador w3m?
16. Imagina que vamos a poner en marcha un nuevo sitio web con un servidor de Apache2. El archivo de
configuración se llamará sitio-guay.conf y estará en /etc/apache2/sites-available
Escribe el contenido básico del archivo sitio-guay.conf teniendo en cuenta que el directorio de los archivos log
será /var/log/apache2 y el directorio raíz del sitio será /var/www/guay/
¿Con qué sentencia habilitaremos el sitio?
18. ¿Porqué al activar el módulo SSL en Apache nos dice “See how to configure and create self-signed certificates”?

19 . En Apache, en la configuración del sitio que trabaja SSL (default-ssl.conf) nos indica lo siguiente:

¿Qué determina esta configuración en el funcionamiento del servidor web?


¿Qué significa comúnmente “aceite de serpiente” (snakeoil)?
Nota:.pem es extensión de un certificado y .key es donde está la clave privada

También podría gustarte