Professional Documents
Culture Documents
4 Servicio HTTP
En el CD del libro dispones del documento SMR_SER_04_Historia_ HTTP. pdf donde
encontrardés una breve resefia histérica del proto- colo HTTP y sus RFC asociados.
Algunos de los conceptos utiliza- dos se definen en SMR_SER_O4_ Conceptos_Importantes.
pdf.
a
1 Importante
HTTP es el protocolo de la web. Se define como un conjunto de normas que permiten la
comuni- cacién entre el servidor y los clientes y la transferencia de in- formacién entre
ambos.
La informacién transferida son los llamados hipertextos o pdginas HTML (HiperText
Markup Langua-
ge) o también paginas web. S
@ 1. El servicio HTTP
Las siglas HTTP corresponden al Protocolo de Transferencia de HiperTexto (HyperText
Transfer Protocol), creado en 1990 en el CERN (Laboratorio Europeo de Fisica de las
Particulas) como un medio para compartir datos cientificos a escala internacional de una
manera rdpida y con un coste moderado. Es el método mds comin de intercambio de
informacién en la World Wide Web, por el cual se transfieren las paginas web o HTML a un
ordenador. El hipertexto no es mds que el contenido de las paginas web y el protocolo de
transferencia es el conjunto de normas mediante las cuales se envian as peticiones de
acceso a una web y la consiguiente respuesta.
En la actualidad, gran parte de las aplicaciones software, ya sean de gestién, consulta,
ofimatica, formacién, entretenimiento, comercio electrénico, etcétera, son aplicaciones web
que los usuarios pueden utilizar mediante navegadores que permiten acceder a los
servidores web donde se alojan, ya sea en redes publicas (Internet) o privadas (intra- nets).
El servicio HTTP es el pilar sobre el que se construye todo este entramado que hace posible
la intercomunicacién a escala planetaria.
Existe una versién segura de HTTP llamada HTTPS que permite el uso de cualquier mé-
todo de cifrado siempre que lo compartan el servidor y el cliente. Basta con agregar unos
componentes a los equipos para que ejecuten of claceiants correspondiente de
encriptacion.
CD Marietta See eee
Puertos utilizados por HTTP Duracién: © 5 min _Dificultad: © facil
Objetivos: conocer los puertos que usa el protocolo HTTP. Acceder a los archivos que
contienen informacién sobre los puertos utilizados por los servicios.
Desarrollo: 1, Ubuntu GNU/Linux Ejecuta el siguiente comando en GNU/Linux: $ cat
/etc/services | grep http # Updated from http://www.iana.org/assignments/port-numbers
and other
A Servicio HTTP
En el CD del libro dispones del documento SMR_SER_O4_Caso_
practico_a.pdf, donde encontra- ras una descripcién del proceso de comunicacién HTTP y
los mé- todos asociados.
y consejos
La nueva versi6n de HTTP/1.1 esta detallada en el RFC 2068
(enero 1997), es mds potente y dispone de trece métodos dife- rentes.
."
Por ejemplo, en un mensaje de peticidn al servidor la primera linea tiene la estructura:
GET /index.html http/1.0
La accién debe interpretarse como una peticién (GET) del archivo index.html que se halla
en el directorio raiz (/) y es compatible con la versién 1.0 del protocolo HTTP.
La primera linea del mensaje de respuesta del servidor ha de tener la estructura siguiente:
HTTP/1.0 200 OK
Esta orden debe interpretarse como la respuesta de peticién servida con éxito (cdédigo
200) e indica la versién de HTTP utilizada (1.0). El texto OK estd relacionado con el cédigo
de error correspondiente.
Esquema de una comunicacién Duracién: © 5 min Dificultad: © facil
Objetivos: conocer la estructura de un proceso de comunicacién normal utilizando el
protocolo HTTP. Simular un proceso de comunicacién con el protocolo HTTP.
Desarrollo: 1. El programa cliente establece la conexién con un programa servidor web.
Una forma de conocer mds a fondo el esquema de comunicacién consiste en utilizar un
cliente de Telnet para conectarse a un servidor HTTP y enviar «a mano» los comandos
necesarios. El servidor responderd en texto plano. Por ejemplo, desde una shell GNU/Linux
puede teclearse telnet localhost 80 para comenzar la comunicacién. No obstante, muchos
servidores web tie- nen Telnet cerrado por seguridad.
2. El cliente envia una peticién indicando el método URI al que pretende acceder y
versién del protocolo. Ademds, se pueden enviar diversas cabeceras HTTP. Un ejemplo
simple de peticién es el siguiente:
GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1 User-Agent: amano/1.0
[es]
3. El servidor responde con una linea de estado que incluye la versién de pro- tocolo, un
cdédigo de éxito o error y el texto explicativo del cédigo. Ademas, se envian diversas
cabeceras HTTP adicionales. Finalmente, dentro del cuer- po del mensaje aparecen los
datos solicitados. Un ejemplo simple de res- puesta es el siguiente:
HTTP/1.1 400 Bad Request
Date: Mon, 06 Jul 2009 18:26:55 GMT
Server: Apache/2.2.11 (Unix)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
LS
4. El programa servidor cierra la conexién.
r
4 Servicio HTTP
ge Vocabulario
Favicon (favorites icon). lcono aso- ciado con un sitio web.
6. Averigua cudles son los subtipos multipart mas importantes.
7. Observa el contenido completo del archivo /etc/mime.types sQué tipos conoces? Haz
una relacién de los que desconoces y averigua para qué aplicaciones sirven.
8. Abre el archivo de MIME en Windows para comprobar que son los mismos tipos
estdndar. sEncuentras diferencias con el mismo archivo de GNU/Linux? sCudles? aPor
qué crees que sucede esto?
9. Obtén un listado de los tipos MIME. Acude a alguna web de confianza como, por
ejemplo, http://www.iana.org.
(Continda) _
Servicio HTTP A
4. Tipos MIME relacionados con el protocolo HTTP Ejecuta el siguiente comando en
GNU/Linux: $ cat /etc/mime.types | grep http application/http
application/vnd.httphone application/x-httpd-php phtml pht php application/x-httpd-
php-source phps application/x-httpd-php3 php3 application/x-httpd-php3-
preprocessed php3p application/x-httpd-php4 php4 message/http message/s-http
SS
Tal como se comprueba en el Caso prdctico 3, los tipos MIME se pueden referenciar
de 1.
Es
sde tres lugares diferentes:
Desde el servidor, que indica al navegador el tipo de datos que envia. Por ejemplo, en el
servidor Apache se puede establecer con la directiva DefaultType el tipo MIME por defecto
que el servidor utilizard en los archivos cuyo tipo no pueda reconocer automaticamente.
DefaultType text/plain
Desde la pagina web, donde se hace referencia a los tipos MIME a través de un enlace que
lleva a un archivo externo, como una hoja de estilo:
¢ Puede especificarse como atributo en otras etiquetas HTML, como object o form (atributo
enctype).
• Con las etiquetas , podemos hacer que la pagina participe en el didlogo cliente-
servidor especificando tipos MIME.
Desde el navegador web para que interprete el tipo MIME recibido desde el servidor y
también puede indicar qué tipos MIME acepta (cabecera http-accepf). Si aparece /, significa
que acepta cualquier tipo MIME.
text/xml,application/xml,application/xhtml+xml,text/ html;
q=0.9,text/plain;q=0.8,image/png,/;q=0.5
te es el contenido de la variable predefinida HTTP_ACCEPT de PHP que estd disponi-
ble mediante la llamada a la funcién phpinfo () .
10. Desde Webmin comprueba todos los tipos MIME que hay activados en el ser- vidor de
aula aulaSER.
16. sCémo comprobarias el E fae PID del proceso corres- : er pondiente a Apache2?
JavaBeans
4
Fig. 4.2. Funcionamiento de un servidor web. Peticiones web dindmicas.
Para que el navegador Ilegue al servidor web (ya sea en una red local o en Internet), este
debe tener asignada una direccién IP Unica que identifique al equipo en la red.
6 ae Cuando el navegador hace una peticién al servidor web, utiliza un nombre que identi-
na fica al servidor. Esta solicitud se transmite a un servidor DNS que resuelve el nombre y
la URL sirve para localizar recur- devuelve la direccién IP correspondiente. La solicitud del
navegador se dirige al servi- sos en Internet. Tim Berners-Lee la dor web correcto. La
informacién que el usuario proporciona al navegador para conec- empleo por primera vez
en 1991. tar con un servidor web se llama URL (Uniform Resource Locator), que indica la
forma
de acceder a un recurso utilizando un protocolo de comunicacién.
2. La doble barra con dos puntos (//:), que hace las veces de separador.
Existen muchos servidores web, pero los dos mds conocidos e importantes por sus nive- les
de implantacién son Apache e IIS (Internet Information Service). Normalmente se asocia
Apache a entornos libres Unix/GNU Linux (aunque existen versiones de Apache
para Windows) e IIS para entornos Windows propietarios (no existen versiones para
GNU/Linux).
Objetivo: realizar la instalacién del servidor web Apache desde el entorno grafico Synaptic.
Desarrollo:
1. Localizar e instalar la aplicacién Apache2 Sigue este itinerario: Sistema >
Administracién > Gestor de paquetes Synaptic. Archive diter Bequete Configuraciin
Ayuda
we mere asec os me ne
mie meme ennai tie ein etn anand Administracién del si | O aclserver4-nsshat “O41 Médulo
AOLservera: genera hashes SHAL i® | Administracion de! sistema)” 1D aolservers-nsxmi
Ls1 Médulo para soporte XML en aolserver4 | | Administracién del sistemal[} —
_aolserver4-xotcl 161-1 Objetos extendidos Tel (XOTe!): Orientacién a objetos para
AOLServer- médulo | | Administracién del sistema |} aosd-cat 2. Una herramienta de
dispaly en panrtalla que usa libaosd
Bibliotecas Ht
| Bibliotecas (multiverse) | s comunes del servidor HTTP Apache il |Bibliotecas (universe) |
([) <3 _apache2-doc entacién del servidor de HTTP Apache | Bibliotecas - Antiguo 1D
apache2-mpm-event HTTP Apache - modelos de controlador de evento | | | Bibliotecas -
Antiguo {univé) |} apache2-mpm-itk ultiusuario para Apache 2.2 IS | i ae ea 1 ne | | ace = oo
[ epee ee serviter mente — |
Bibl ‘ {un | | Obtener captura de pantalla a
Ciencia | > El objetivo de la fundacién de sof 3 } |Ciencia (multiverse) | || que cumpla los
esténdares, de cé} ”® mit Troe
Ciencia (universe) | || extensible. €1 resultado ha sido el __"" Peeper |
Comunicacién Hed] }
conan ‘Sus caracteristicas son, poder usar HTTPS, hosts virtuales, CGI, SSI,
i ATI | IPV6, sencillez pare el guionado y la integracién con bases de datos,
| filtrado de peticiones y respuestas, varios esquemas flexibles de autenticacién, y mas.
i i if
|
2B Bild vie 3 ceju, 19:52 | eviee
la IP 127.0.0.1, identificada como la interfaz de loopback), — un nombre de dominio si
@ & ~ & © B [Wl rtpmocainosy fi Mas visitadosv @ Getting Started _ Bilatest Headlines ~
Fe It works! |
SSR PRENTICE eS POE FR POT TT
Servicio HTTP A
17. sCudnto conoces de Apa- ches Visita la pagina web http: //www.htmlpoint.
com/test/apache.htm y responde a las preguntas escogiendo solo una de las cinco
opciones.
¢ Por Ultimo, estan las Opciones de Edicién de los propios archivos de configuracién. En
nues- tro caso, vemos en la Figura 4.11 el archivo / etc/apache2.conf que muestra el
conteni- do de la directiva relacionada con el apartado Archivos de Opciones de Por-
Directorio (Ac- cessFileName .htaccess).
El archivo /etc/apache2 . conf contiene las direc- tivas de configuracién global del servicio
(una por linea). Esta dividido en secciones y cada una con- tiene un grupo de directivas
relacionadas con di- cha seccién.
Servicio HTTP 4
mae ners Editar Archivos de Configuracién | Editar Directivas en Archivo: | |
fetcjapache2/apache2.conf ¥)
# These need to be set in /etc/apache2/enwars User S{APACHE_RUN_USER} Group
S{APACHE RUN GROUP}
The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
i-
Servicio HTTP A
ee
lumno] crea el directorio /home/alumnol/public_html y deposita su pd- gina web. Para el
Caso prdctico, basta con crear un archivo index.html que da la bienvenida a su pagina
personal.
Al acceder a la URL http://servidor.aulaSER.com/~alumno] verds el texto del archivo
index.html creado, en este caso:
2 Ss oo
(@ceting Sared [taest Hesines~
Bienvenidos a la pagina web de Alumno1 Caso practico del médulo Servicios en Red
Fig. 4.15. Comprobacién de utilizacién del médulo userdir de Apache Server.
De esta forma, se accede al home del usuario y no al directorio /var/www/, al que
accederias si pusieses solo servidor.aulaSER.com.
Si se quiere acceder a la pdgina web sin necesidad de utilizar el cardcter «~», habré que
definir un alias en /etc/apache2/conf.d/alias. Desde el entor- no grafico de Webmin, ve a la
opcién Alias y redireccionamientos del servidor virtual por defecto, activa los campos y
guarda y aplica los cambios.
A continuacién, comprueba que el alias creado es: alias /alumnol/
/home/alumnol/public_html/
Ahora ya puedes acceder a la web del alumno1 directamente, sin necesidad de incluir el
cardcter «~» en la URL.
Semen ee ee Alias y Redireccionamientos ones Para servidor por defecto
Fig. 4.16. Alias y redireccionamientos en Apache.
Si ahora vamos al navegador, veremos:
Bienvenidos a la pagina web de Alumno1 | Caso practico del médulo Servicios en Red
Fig. 4.17. Comprobacién de funcionamiento del alias.
~
Utilizacién de archivos . htaccess
Los archivos .htaccess permiten a los usuarios qu no tienen permisos modi- ficar la
configuracién y asi ejercer algén control sobre el comportamiento de su parte del servidor
Apache2.
El archivo .htaccess se situa en el directorio al que debe afectar, junto con todos los
subdirectorios. Las modificaciones introducidas no requieren reiniciar el servidor web.
Para que el servidor haga caso de los archivos .htaccess debes incluir la directiva
AllowOverride (permite sobreescritura).
ohm aa RTT fo)
El enlace simbdlico en Ubuntu GNU/Linux se identifica por la «l» (de link) que aparece al
princi- pio de la mdscara de permisos.
importante r
a2enmod es la orden que activa la utilizacién de médulos de Apache72. Es decir, crea un
enla- ce simbélico del médulo dispo- nible en /etc/apache2/ mods-available en el direc-
torio /etc/ apache2/mods- enabled.
gSabias que...? 9
¢ Un alias permite definir direc- torios virtuales e instalar un sitio web fuera del directorio
establecido en la directiva DocumentRoot e incluso en otro servidor.
¢ En la web de Apache http:// httpd.apache.org/docs/2.2/ oon mapullenetalen rence.html,
las directivas que tengan una «h» en la pentltima columna son vdlidas para el archivo -
htaccess.
NX al
23. 5Cudl es el significado de i directivas Filelnfo Auth Config Limit Indexes?
(Continéa) y
-htaccess? aPor qué?
NX
"A
4 Servicio HTTP
26. sQué ventajas e inconve- nientes tiene la utiliza- cidn de hosts virtuales?
27. Haz una tabla resumen de las directivas implica- das en la creacién de
hosts virtuales.
2
PRY 1) ees
e Un host virtual basado en nom- bres utiliza la directiva:
El «*» indica que los servidores especificados aceptan todas las solicitudes entrantes por el
puer- to 80.
Un host virtual basado en direc- ciones IP utiliza la directiva:
La IP esta asociada a un sitio web.
En este caso, el servidor virtual recibe las solicitudes en funcién de la IP requerida, no del
nom- bre del servidor.
e La directiva AllowOverride:
—Debe especificarse siempre den- tro de una entrada Directory.
— Indica las directivas que estan permitidas en los ficheros de control de acceso por
usuario. Los valores pueden ser: All, None, Directival, Directiva2,
a etcétera.
nil
La pantalla reproducida en la Figura 4.13 permite comprobar que la opcién esta activada.
Verds que en Archivo de opciones de Por-Directorio aparece -htaccess. En la Figura 4.13
fijate en que aparece la directiva AllowOverri- de junto con otras directivas que matizan y
limitan el dmbito de aplicacién de la sobrescritura.
AllowOverride FileInfo AuthConfig Limit Indexes
Ambas pueden sustituirse, ya que poner un archivo . htaccess en el directorio /var
/www/ejemplo/ con una directiva equivale a colocarla en una seccién de la configuracién
del sitio principal del servidor.
Fijate en el archivo .htaccess en /var/www/ejemplo, cuyo contenido es: AddType
text/ejemplo .eje
Su efecto serd el mismo que en /etc/apache2/sites-available/de- fault. Tan solo tendrds
que afiadir:
AddType text/ejemplo .eje
Este archivo se carga cuando Apache? arranca, mientras que a . htaccess se
accede cada vez que se solicita un archivo.
NX a
® 4.5. Hosts virtuales en Apache Mediante el uso de hosts virtuales, Apache2 permite alojar
varios dominios en una sola maquina, es decir, ejecutar mds de un sitio web en el mismo
servidor.
Podemos albergar dos sitios (web servidor1.aulaSER.com y servidor2.aulaSER.com) en la
misma maquina, respondiendo ambos a una sola IP y con Apache2 configurado y
atendiendo las peticiones de ambos sitios por el puerto 80.
Apache soporta dos tipos de hosts virtuales:
1. Hosts virtuales basados en nombres: permiten alojar varios nombres de host (o domi-
nios) en una misma maquina (IP).
2. Hosts virtuales basados en IP: una maquina responde de diferente manera a diferen-
tes direcciones IP. Tenemos multiples IP asignadas al sistema y queremos que cada
una de ellas soporte un sitio web.
Una vez en la ventana correspondiente, debes indicar que este servidor atende- rd
peticiones de cualquier direccién, utilizard el puerto por defecto y su nombre serd
virtualA.aulaSER.com.
Configuracién de Médulo
snd Cambios | ‘@r Apache Buscar Ssnaven
Servidor Web Apache
Apache version 2.2.11
Seansbu canesiiasaa gars ieee CO Aquetias no manejadas por otro servidor f ¢ E ° «{ } E @
anadw aireccién de servidor virtual de nombres (si es necesario) @ edie Cteeee Oe
Puerte © Por defecto © Cuaiquiera © k hale pare Documentos ma @ Permitic acceso a este
directorio Nombre del Servidor o @ [vituaAauwserncom ———~*«&S:r i Agregar servidor
virtual a archivo © archivo nttpa.cont estanaar @ Nuevo arcnivo pajo et ae virtuates /et:
fsa [lable t © archivo =e 3 i Coven erections Gunes | Servidor. aulaSER.com:80 (varfwww)
|~ | i
Ene Te EC
Fig. 4.18. Creacidn de un host virtual. Pulsa en Crear Ahora y, después, en Aplicar Cambios.
Aparece una nueva entrada en el ment principal, tal como muestra la Figura 4.19.
Configuracion de Médulo Aplicar Cambios | Parar Apache Buscar Documentos...
Servidor Web Apache
Apache version 2.2.11
‘Seleccionar todo. | invertir seleccién.
Define las opciones por defecto para todos los otras sevidores virtuales y procesa cualquier
requerimiento no manejado. os Direceién Cuaiquiera Nombre del Servidor servidor
aulaSER.com Puerto Cuaiquiera Raiz para Documentos Automático
Servidor por Defecto
w=
Maneja el servidor basado en nombre en la direccién *.
Direcetén Cuaiquiera
Nombre det Servidor servidor aulaSER com
Puerto 60 Raiz para Documentos /var/www ©) Servidor Virtuat Maneja e! servidor basado
en nombre virtualA.aulaSER.com en ia direccién *. ow Direcctén Cuaiquiera Nombre del
Servidor virtuaiA auiaSER.com
Puerto Cuaiquiera Raiz para Documentos /var/www/virtuaiA O Servidor Virtual
Seleccionar todo. | Invertir seleccién.
(istessiertei Servers | t
Fig. 4.19. Host virtual ae
Se muestra el servidor por defecto genérico, el servidor virtual que identifica el dominio y
el servidor virtual que se acaba de crear virtualA.aulaSER.com.
Configuracién del host virtual
Para acceder a la configuracién del nuevo host virtual, pulsa sobre el globo terrd- queo de
la entrada correspondiente. Se mostrardn las opciones disponibles.
nate oe mbaue Opciones de Servidor Virtual ""euorngene
Para virtualA aulaSER.com
Servicio HTTP A
Importante TY) e
La orden aZ2ensite activa la utili- zacién de host virtuales de Apache2. Crea un enlace
simbé- lico de /etc/apache2/ sites- available en el directorio /etc/ apache2/sites-enabled.
El directorio sites-available alber- ga archivos de configuracién para diversos hosts
virtuales que po- drian ser utilizados en Apache2.
En cambio, sites-enabled contie- ne enlaces simbdlicos a sitios de sites-available/ que el
adminis- trador ha activado.
a
éSabias que...?
Los servidores virtuales:
¢ En las directivas en las que no se ha especificado valor toman
; a (ma C) . Kis eRe oll... cds i. los valores dados en el servi- * sf we al dor principal. : jus :
eepearenss = ua e El servidor principal debe ser — a por defecto las paginas que se
mostrardn son las del primer host virtual de la lista.
El servidor oficial deberé apare- cer como y estara antes de cualquier otro
is virtual definido. S
a"
.
~
Accede a Editar directivas para conocer las incluidas en el archivo de configu- racién del
host virtual. Entre otras se tienen las siguientes: NameVirtualHost DocumentRoot
“/var/www/virtualA” ServerName virtualA.aulaSER.com Allow from all Options +Indexes La
directiva NameVirtualHost indica que se activan los hosts virtuales por nombre. Los grupos
... definen los
hosts virtuales de nuestro servidor. En cada uno de estos bloques se indica a Apache2 el
DocumentRoot del host especificado en ServerName.
EI primer host virtual de la lista es el que se usa por defecto. Cuando una peticién entra en
Apache2 desde un navegador web a través de una IP dada, Apache2 comprueba el nombre
de dominio que se estd solicitando y muestra el contenido asociado.
Resolucién de nombres para el nuevo servidor
Una vez creado el host virtual, hay que acceder desde Webmin a Servidor de DNS BIND y
afiadir el registro correspondiente a virtualA.aulaSER.com en la zona DNS aulaSER.com.
Indice de Modulo Apply Zone Direccién Registros Apply Configuration ‘Stop BIND En
aulaSER.com ee Trampe de vide @ pordetecto © ["_) [segundos|~) Direceten fiszacei002s«
(=) @s Os Owe (_Creae j Seleccionar todo. | invertir seleccion. () aulaSER.com. Por defecto
192.168.100.254 | () pel2.euleSER.com. Por defecto 192.168.1002 { | ©)
servidor.oulaSER.com. Por defecto | C) pc 3.eulaSER.com. Por defecto 192.168.1003 j Por
detecto
© pel.auiaser.com. Seleccionar todo. | Invertir seleccion
Delete Setected | @ Deicte reverses too?
Regresar a liste de conas | Regresar a tipos de registro
Por detecto 192.168.100.1 (© pei4.auiaser.com. 192.168.1004 ]
Fig. 4.21. Inclusién del registro A para el host virtual recién creado.
Acceso al host virtual virtualA.aulaSER.com
Creamos un archivo index.html en /var/www/virtualA/ de bienvenida a nuestro host
virtual. Al acceder con el navegador, verds la pantalla siguiente:
ES saueenececenseeanen nS me
ieeqieneatemony,m [oss ee ee ee
Bienvenidos al Servidor Virtual de Apache2: virtualA.aulaSER.com Servicios en Red
Fig. 4.22. Comprobacién de funcionamiento del host virtual creado.
Como es légico, cada host virtual configurado en el dominio aulaSER puede tener una
estructura web totalmente independiente del servidor por defecto. Para abreviar, solo se
han implementado los accesos a los archivos index. html que abren la puerta a las diversas
webs.
SJ
Servicio HTTP A
® 4.6. Autenticacién en Apache
Cuando el servidor Apache recibe la petici6n de una pagina web, comprueba que se haya
autorizado antes de atender la solicitud. En concreto, realiza tres pasos: autentica- ciédn,
autorizacién y control de acceso.
¢ Autenticacion: comprueba la identidad del usuario (ses realmente quien dice ser?). El
usuario proporciona un nombre y una contrasefia (es decir, sus credenciales). Si coinciden
con las almacenadas en su base de datos, da por concluida la primera operacién.
Existen dos métodos de autenticacién HTTP:
— Basico o simple: el usuario en el navegador web introduce su login o nombre de usuario
y contrasefa, y se envian al servidor sin cifrar.
• Digest: el usuario en el navegador web introduce su login de usuario y contrasefia y se
envian cifrados al servidor.
Estos dos métodos solo autentican al usuario. Los datos que se envian del navegador web al
servidor 0 viceversa no estan cifrados. Son formas de controlar el acceso a los recursos,
pero no protegen el intercambio de informacién.
Esta operacién también puede realizarse mediante la utilizacién de certificados digitales.
¢ Autorizacién: el servidor debe comprobar si el usuario validado tiene acceso a la
informacién que solicita. Para ello, el servidor dispone de una lista de los usuarios que
pueden acceder a los recursos que ofrece.
Desde Apache? la autorizacién se gestiona con directivas del tipo en el archivo de
configuracién o mediante la utilizacién de archivos .htaccess.
• Control de acceso: establece y controla las mdquinas que tienen acceso a un re- curso
independientemente del usuario que accede. Desde Apache2 el control de acceso se
gestiona mediante las directivas , y , o mediante el archivo de configuracién . htaccess
para controlar un di- rectorio concreto.
frehilernaesiccen SE a eee
Autenticacién basica’ en Apache2 Duracién: © 15 min _Dificultad: © media
Objetivo: mostrar la configuracién y utilizacién de los médulos correspondientes a la
autenticacién bdsica en Ubuntu GNU/Linux.
Desarrollo: 1. Activacién de médulos
El médulo que controla este método de autenticacién es auth_basic y tiene la ventaja de que
esta soportado por todos los navegadores web. Por el contrario, tiene el inconveniente de
que el login y la contrasefia no van cifradas del nave- gador web al servidor.
Comprueba si estd instalado utilizando Webmin. La Figura 4.23 muestra que el médulo
auth_basic esta activado.
epee Configure Apache Modules
This page allows you to select which optional Apache modules are enabied. using the
checkbox next to each module name. Be careful when disabling a module, as any existing
directives that are specific to it will be no longer recognized.
| O) actions Disabled a Disabled : [OSSETIA TT TEEN Cmca a Oasis Disabled | CO ter
Disabled ma LE a EY TE Oe Onabies OC auth digest Disabled ' O ident Disabled | C
autne_atios Disabled | Co imagemap Disabled
Fig. 4.23. Activacién del médulo de autenticacién bdsica.
(Continéa)
importante
En la autenticacién HTTP basica
el login del usuario y la contrase- fia no van cifrados del navega- dor web al servidor.
éSabias que...? ?
Para configurar la autenticacién, asi como la autorizacién y el con- trol de acceso utilizando
archivos . htaccess, es necesario incluir la directiva:
AllowOverride AuthConfig
De esta forma se pueden usar
las directivas de autenticacidn.
Ni
A Servicio HTTP
2. Directorios a proteger mediante autenticacién bdsica
Para configurar el médulo auth_basic debes seguir este itinerario: Webmin > Otros >
Directorios web protegidos > Agregar proteccién para un nuevo di- rectorio.
Una vez alli, se abrird una interfaz en la que debes introducir los datos del di- rectorio que
hay que proteger:
Gece Ss Agregar Directorio Protegido
@ Sistema
© Servidores Ren AL NEE SESS STATS STREP SS MATTE ORS LIT SEIS Lectura de Correo de
Ruta al directorio [Nariwww/directorie protegido G3 Usuarios Servidor Web Apache
Archivo que contiene jos usuarios: @
Servidor de ONS BIND | O archive seteccionado ...[ Vest vsftpd | Titteariiily ato Tit hut PE Bs
8 owes aside coh win end ® Ninguno Cargas y Descargas © Seleccionar automaticamente
Comandos Personalizados Oo S ~ Archive « a Comandos de Consola " { —— — eee Jed
Conasidn SSH Encriptacion de contrasena © Encriptacion Unix © mos © digest Directorios
Web Protegidos Dominio de autencicacién Dre ob - Estado de Sistema y de [Directorio
proteg a} seme nee @ Todos tos usuanos del archivo sateces 0a Fos cree © solowsuarios-[
Modulos de Pert (CPAN) Z Tinel HTTP © Solo miembros de los grupos . 7 Bred B Hardware
San peeing tas: GBS DER 5s or ENE SEE IS BE EE al S Cluster { Crear |
@ Un.used Modules
Fig. 4.24. Configuracidén de un directorio con autenticacién bdsica requerida.
Debes asegurarte de que el nuevo directorio se halla en el host virtual por de- fecto
(default) y de que se permite la utilizacién de archivos .htaccess.
AllowOverride AuthConfig
Se puede comprobar, y editar si consideras oportuno, accediendo a Editar di- rectivas del
host virtual servidor.aulaSER.com.
A continuacién, pulsa en Crear. La siguiente pantalla requerira que especifi- ques los
usuarios que podrdn acceder al dominio de autenticacién Directorio protegido.
COnMereenen me Madi Directorios Web Protegidos
Seleccionar todo. | Invertir seleccion. | Agregar proteccion para un nuevo directorio.
Ole cos tee) s VA Lae eae
Seleccionar todo. | Invertir seleccion. | Agregar proteccion para un nuevo directorio. | Un-
Protect Selected Directories || Un-Protect and Remove Files
-[ Buscar directorios protegidos bajo: | ( =)
Fig. 4.25. Configuracién de auth_basic.
(Continda)
Servicio HTTP A
Da de alta al usuario alumno! para que pueda validarse en el dominio de avu- tenticacién
definido.
Indice de Modulo
Crear Usuario Detalles del usuario de autenticacion Web
Nombre de usuario [atumnol | éHabilitado? @ si Ono Contrasena [alumnol |
a Regresar a lista de usuarios y directorios
Fig. 4.26. Usuarios con acceso al directorio protegido.
Dentro del directorio protegido, se ha creado un archivo . htpasswd cuyo contenido es el
usuario y la contrasefia encriptada.
Es conveniente que compruebes ademas que se ha creado un archivo .htac- cess en el
directorio /var/www/directorio_protegido que contiene una entrada para los usuarios
permitidos, del tipo:
Require user alumnol
3. Acceso al directorio protegido A continuacién, abre el navegador en la pagina del
servidor por defecto: servidor.aulaSER.com. En la URL escribe
http://servidor.aulaSER.com/directorio_protegido.
La Figura 4.27 muestra la peticién de validacién del usuario:
Bienvenidos al Servidor Apache2 Servicios en Red |
identificacion requerida
SS) http://servidor.aulaser.com esta solicitando un nombre de usuario y una contrasefia. El
i & sitio dice: "Directorio protegido”
Nombre de usuario: { alumnol
Contrasefia: | ee@eeee
Fig. 4.27. Comprobacidn de funcionamiento de la autenticacién bdsica.
Al introducir las credenciales del usuario (nombre y contrasefia), muestra el
contenido del directorio. (Continéa) - L sil
Importante a an e Hay que tener cuidado con este tipo de autenticacién.
Cuando un usuario vdlido intro- duce su contrasefia, ambos datos quedan almacenados en
la caché de Apache. Aunque salgamos del directorio protegi- do, se podria acceder de nuevo
sin necesidad de validar de nuevo el usuario hasta que expi- re la caché. SA
En el CD del libro dispones del documento SMR_SER_04_Caso_ Practico_b.pdf, que explica la
autenticacién bdsica en Apache2 en los que se trabaja directa- mente con los archivos de
confi- guracién correspondientes.
A Servicio HTTP
q Tuy Xela thi
La Unidad 3 (Acceso y Control remoto) explica en el apartado 3 los conceptos bdsicos sobre
crip- tografia.
28. sCémo bloquearias el
acceso al dominio com- pleto aulaSER.com?
Cconieene os es ene
Archivo Editar Yer Historial Marcadores Herramientas Ayuda «a =m v e orn [[s) |
nttp.servidor aulaser.comidirectorio._protegido/ Bin Mas visitados pectic Se Oe
tae n 1.480 en servi
@ index of /directorio_protegido & |
— of jaleactirts | protegido
Name Last modified Size Description
@ Parent Directory (P| redireccién_puertos 06-Jul-2009 19:13 1.9K _
Apache/2.2.11 (Ubuntu) Server at servidor.aulaser.com Port 80
Fig. 4.28. Contenido del directorio protegido.
En el caso de que el usuario o la contrasefia no sean correctos, muestra de nuevo la misma
ventana de identificacién
N ii
© 4.7. Control de acceso en Apache2
Cuando un usuario hace una peticién HTTP al servidor, este puede atenderla 0 no e! funcién
de la maquina desde la que se hace la solicitud.
En este caso se utilizan las directivas Allow, que permite, y Deny, que rechaza el acce so en
funcidén del nombre o la direccién de la maquina desde la que se hace la solicitu de
informacién.
La directiva Order, por su parte, indica a Apache2 en qué orden tiene que aplicar las
anteriores La sintaxis es: Allow from direccién
Direccidn es la direccién IP 0 nombre de dominio completamente cualificado. Se pus den
indicar varias direcciones o nombres de dominio.
Si, por ejemplo, se quisiera denegar el acceso a un equipo con IP 240.77.0.10, habri que
escribir:
Deny from 240.77.0.10
En el caso de que se desease denegar el acceso desde un nombre de equipo, habri que
hacerlo desde el servidor que pertenece al dominio aulaSER.com:
Deny from servidor.aulaSER.com Las peticiones procedentes de dicha maquina serdn
denegadas. Por otra parte, la directiva Order indica en qué orden se aplican las directivas
Allow y Den)
En el ejemplo siguiente, primero se evalia Deny (from all) y no se permite el acceso ningn
usuario. A continuacién, se realiza la misma operacién con Allow, que permit el acceso solo
a usuarios de pcl 1.aulaSER.com:
Order deny,allow Deny from all Allow from pcll.aulaSER.com
Si se usa solo la directiva Allow (sin combinar con Deny), se permitiria el acceso a usuc rios
de esa maquina y a cualquier otro usuario, pero en este caso solo deben entrar Ic que
pertenecen a pcl l.aulaSER.com.
Servicio HTTP A
@ 5. El servidor web seguro
Un servidor web es seguro cuando garantiza la comunicacién con el cliente web con
autenticacién y confidencialidad.
El protocolo SSL permite establecer una comunicacién segura y codificada entre el ser-
vidor web y el navegador. SSL trabaja conjuntamente con el protocolo HTTP, creando un
protocolo de transmisién de hipertexto seguro llamado HTTPS.
El protocolo HTTPS se basa en dos tipos de criptografia:
¢ Simétrica o de clave compartida. ¢ Asimétrica o de clave publica-privada.
Ambos tipos presentan diversas ventajas e inconvenientes, pero cumplen con los objeti-
vos deseados.
En concreto, la criptografia asimétrica se utiliza en los procesos de autenticacién, ya que
cada usuario protege su clave secreta. No obstante, es lenta para el cifrado, a di- ferencia de
la criptografia simétrica, mucho mds rdpida, aunque poco eficaz a la hora de gestionar las
claves.
® 5.1. gQué es la firma digital?
Es una porcién de cédigo que se adjunta a un mensaje y que garantiza al destinatario la
identidad del remitente y la integridad del mensaje. Se utiliza en entornos de clave publica.
La figura siguiente muestra la técni- — % ca de la firma digital sobre un men- —_—~ saje.
El proceso de firma digital se desa- rrolla en varias fases:
1. El usuario origen aplica un algo- ritmo hash sobre los datos y ge- nera un hash.
2. El usuario origen con su clave privada transforma el hash en una firma digital.
3. El usuario origen envia al usua- rio destino los datos, la firma y el certificado digital del
origen.
Importante / | &
El objetivo del certificado digital
es asociar una clave publica a un determinado usuario.
Actividades
29. Accede a la pagina web https://www.trustcenter. de/ y obtén la firma digi- tal de
forma gratuita.
Vocabulario
Hash. Funcién o método para ge-
nerar claves que representen de manera univoca a un documento, un registro, un archivo,
etcétera.
i Clave privada eS
{®) Certificado digital
dos, con lo cual genera un valor
hash.
. El usuario destino utiliza la clave
publica del usuario origen y el valor hash obtenido para com- probar la firma.
a
Desencriptacién Clave publica | de A
Sooo la be lad
Fig. 4.29. Criptografia asimétrica: firma digital.
A Servicio HTTP
éSabias que...?
Un certificado (CRT) es un CSR firmado por la CA.
Este archivo contiene la clave publica del usuario, su nombre, el nombre de la CA, y esta
firma- do digitalmente por la CA.
De esta forma, otras entidades pueden verificar esta firma para comprobar la veracidad del
cer- tificado.
A Vocabulario
SSL (Secure Socket Layer). Estable- ce conexiones seguras en Internet porque todos los
datos que se transfieren entre el navegador y el servidor van cifrados.
TLS (Transport Layer Security). Es la evolucién de SSL que acabard por sustituirlo en el
futuro. La versién 1 de TLS coincide prdacticamente con la versién 3 del protocolo SSL.
S
S
Si coincide, se puede asegurar lo siguiente: ¢ El mensaje no ha sido modificado y, por lo
tanto, se respeta su integridad.
¢ El Unico usuario que ha podido firmarlo es el remitente, ya que es el Unico que posee la
clave privada que se corresponde con la clave publica con que se ha descifrado.
Todo el proceso es transparente para el usuario.
La asociacién entre la firma digital y la persona que la utiliza es el objetivo de los certi-
ficados digitales.
El certificado digital (CSR) se define como el conjunto de caracteres afiadidos a un docu-
mento que acreditan al autor del documento (autenticacién) y la integridad de los datos.
El certificado digital contiene la clave publica del usuario y algunos datos personales como
el nombre, apellidos, DNI, etcétera, firmados digitalmente por una autoridad certificadora
(CA). ‘
La CA es un tercero de confianza que permite que personas que no se conocen entre si,
puedan confiar en los certificados que se presentan el uno al otro. Son CA, por ejemplo,
Verisign 0 la Fabrica Nacional de Moneda y Timbre.
El certificado digital lo utiliza el usuario para firmar sus mensajes con su clave privada
(criptografia asimétrica), que solo él conoce y que impide que pueda después negar que es
el autor. La validez de la firma puede ser comprobada por cualquier otro usuario que tenga
la clave publica del autor.
© 5.2. El protocolo SSL
En apartados anteriores se vio c6mo Apache gestiona la autenticacién del usuario me
diante credenciales.
El protocolo SSL (Secure Socket Layer) garantiza que todo el intercambio de informaciér
realizado en una sesién de conexidén se hace de forma segura mediante encriptacién.
En una conexién TCP/IP, el protocolo SSL proporciona las garantias siguientes: 1.
Confidencialidad: cifra la informacién transferida.
2. Integridad del mensaje: controla cualquier modificacién intencionada o accidenta en la
informacién mientras se transmite por Internet.
Los navegadores llevan ya incorporados un médulo SSL que se activa de forma automé tica
cuando es necesario. Normalmente, se escribe https:// en la URL.
Servicio HTTP A
© 6.5. Certificados para Webmin
Una vez se dispone de los certificados desde
Indice de Médulo
. : . 7 iones SSL Aplicar Cambs Webmin, hay que ir a Opciones SSL del servi- ileal nae dor
virtual seguro e indicar el itinerario que [=a Cera poe ae Sa debe seguirse hasta ellos. Arcee
te Catentetciow peed. porgatcto @ [macnoacnetmapategee Ya)
Sep Rees Orremm O70 tet) rt ed Debemos aplicar los cambios. nea (Bee TY) er ecectete vee
O Laem Archive de bitécore SSL }
De cualquier forma, Webmin no gestiona bien — (=) los certificados. Para tener completa
seguridad = * w="snenssenwe
de que se han incluido en el archivo de confi- _ Fig. 4.32. Opciones para el servidor seguro.
guracién del host virtual seguro, hay que editar el archivo e incluir las directivas siguientes:
SSLEngine on SSLCertificateFile /etc/apache2/ssl/miCA/cacert.pem SSLCertificateKeyFile
/etc/apache2/ssl/miCA/private/cakey.pem
Salimos y, desde Webmin, aplicamos los cambios en Apache.
© 6.6. Comprobacién de funcionamiento
Abrimos el navegador y vamos a hitps://servi archivo Editar Yer Historia! Marcadores
Hemamientas Ayuxta dor. Veremos un mensaje de aviso: el certifica- @ © ~ @ © @ [a
inpsiseridor
do que tiene disponible no es fiable (ya lo sa- sims visitados~ @-Getting Started {Latest
Headlines biamos). Anadimos una excepcién. e
Confirmamos la excepcién. El mensaje incluido
en el archivo index.html ya esté preparado. La conexién segura ha fallado La configuracién
segura de Apache para Win- STRGIODGT Gt acnetcr tae identi - 7 No se confia en el
certificado porque esta firmado por si mismo.
dows es idéntica a la de Ubuntu. Partimos de perks dpe efi npniset
un servidor Apache2.2 instalado y con hosts aalicie eal
. . . error: S€c_error_ca_ce' virtuales configurados. Para activar el soporte e wenulew= ec
SSL de Apache2 en Windows XP, debemos ha- + Puede ser un prablema con la coniguracién
del seridr,o bien que
alguien est intentando suplantar al servidor. © Si esta seguro de que se ha conectado
anteriomente a este servidor con éxito, ef error puede ser temporal por lo que se puede
intentar
cer lo siguiente:
1. Comprobamos que esta disponible el ejecu- AGO Ga encod table openssl.exe en el
directorio /bin a de Apache2.2. Hay que seleccionar el archi- = vo de Apache2 binario
con soporte SSL. Fig. 4.33. Afiadir excepcidn.
d) Una aplicacién que permite el acceso a Internet. Indica cual es la afirmacién verdadera:
b) Sin estado.
d) Sin enlace.
Configura el cliente HTTP es que acepte siempre las cookies enviadas desde el servidor
Google.es.
. La ejecucién de Apache en Ubuntu se realiza desde el
usuario:
a) Root del sistema.
b) Sudo apache.
c) Propio www-data.
d) Cualquier usuario.
b) El control de acceso.
c) La a) y la d).