You are on page 1of 44

Unidad Servicio HTTP

En esta unidad aprenderemos a:


Describir los fundamentos y protocolos en los que se basa el funcionamiento de un servidor
web.
¢ Montar un servidor web.
¢ Crear sitios virtuales.
e Instalar médulos sobre el servidor.
• Configurar la seguridad del servidor.
© Comprobar el acceso de los usuarios al servidor.
¢ Establecer mecanismos para asegurar las comunicaciones entre el cliente y el servidor.
Y estudiaremos:
¢ Los conceptos necesarios para comprender los mecanismos de la transferencia de
paginas web.
¢ La instalacién y configuracién del servicio HTTP en el servidor y en el cliente.
¢ La instalacién y configuracién de médulos complementarios.
e La creacién y gestién de hosts virtuales.
• La configuracién y activacién de mecanismos para la autenticacién segura de usuarios.
¢ La monitorizacién y el control de actividad
en el servidor web.
Las configuraciones especificas en sistemas operativos libres.

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

sources like http://www. freebsd.org/cgi/cvsweb.cgi/src/etc/services


www 80/tcp http # WorldWideWeb HTTP
https 443/tcp # http protocol over TLS/SSL
https 443/udp
http-alt 8080/tcp webcache # WWW caching service http-alt 8080/udp #WWW caching
service
Como puedes ver, el servicio www utiliza por defecto el puerto 80 TCP. El resto de puertos
se comentardn a lo largo de la unidad.
2. Windows
Abre el archivo C:32en Windows para comprobar que se trata de los mismos puertos
estandar.
http 80/tcp www www-http #World Wide Web https 443/tcp MCom https 443/udp MCom

® 1.1. Cémo funciona el protocolo HTTP El HTTP es un protocolo cliente-servidor cuyo


funcionamiento esté basado en el envio de mensajes. Su mecanismo es el siguiente:
e El usuario especifica en el cliente web (o navegador) la direccién de la pagina que quiere
consultar segin un formato http: //direcci6én[:puerto] [path].
¢ El cliente web descodifica la informacién de la URL diferenciando el protocolo de acceso,
la IP o nombre de dominio del servidor, el puerto, etcétera.
¢ El cliente web establece una conexidn (socket) con el servidor web y solicita la pdgi- na
(mensaje request).
e El servidor envia dicha pagina (si no existe, envia un cdédigo de error) y el cliente web
interpreta el cédigo HTML recibido (mensaje response del servidor).
e Se cierra la conexidn.
Servidor web
Documentos, ; Red TCP/IP imagenes, Usuario Internet sonido, video
Fig. 4.1. Esquema de una transferencia web.
El protocolo HTTP es un protocolo sin estado, es decir, no recuerda nada relativo a co-
nexiones anteriores a la actual. Cuando el cliente web solicita un documento HTML, puede
ocurrir lo siguiente:
¢ Si el servidor lo encuentra, lo envia. * Si no existe, envia un cédigo de error.
En ambos casos, y al tratarse de un protocolo sin estado, la conexién se libera al finali- zar.
Solo dura el tiempo necesario para la transmisién del documento solicitado.
Para cada objeto que se transfiere por la red, se realiza una conexidén independiente. Por
ejemplo, si el cliente web solicita una pdgina que incorpora varias imdgenes, se
realizan las siguientes conexiones: una para el documento HTML y otra por cada una de las
imagenes.
Para resolver estas situaciones de «falta de memoria», ademds de almacenarse la infor-
macién de la sesién actual (cuya informacién se pierde, por ejemplo, al cerrar el nave-
gador), se utilizan las cookies.
En la versién 1.0 del protocolo HTTP el cliente web podia solicitar del servidor solo tres _
operaciones:
CC aaa eee
GET Obtiene informacién del servidor. La operacién se ejecuta cada vez que se pulsa sobre
un enlace y se accede a una pdgina web.
Envia informacién desde el cliente web al servidor, tal como ocurre, por ejemplo, con los
datos introducidos en un formulario web.
HEAD Similar a GET, aunque solo se pide la cabecera de la pagina con informacién como el
tamaiio, el tipo, la fecha de modificacién, etcétera.
Tabla 4.1. Métodos del protocolo HTTP 1.0.
Servicio HTTP A
éSabias que...?
Un servidor proxy-caché actia como una barrera de proteccién que permite separar redes
asi como una zona caché con la que acelerar el acceso a pdginas web 0 restringirlo a ciertos
contenidos.
Este servicio suele utilizar el puer-
to 8080.
Vocabulario ny )
Cliente web. Programa que permi- te visualizar la informacién que contiene una pdgina
web.
Cookie. Archivo de texto que se intercambia entre el cliente web y el servidor.
Servidor web. Programa que implementa el protocolo HTTP.
aCémo podrias saber qué servicio esta escuchando en el puerto 80?
2. sRecuerdas dénde se colo- ca el puerto que quieres utilizar en el navegador
cuando introduces una URL?
3. 3Sabrias diferenciar un tex- to convencional de un hi- pertexto?
4. Haz una comparativa en- tre los protocolos HTTP 1.0 y 1.1 comentando las di-
ferencias mds importantes.

5. Averigua cudl es el RFC correspondiente al proto- colo HTTP 1.0.

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

@ 2. Los tipos MIME


Los tipos MIME (Multipart Internet Mail Extension) son una forma abierta y extensi- ble de
representar el contenido de los datos. Como su nombre indica, en un primer momento
fueron empleados para extender las caracteristicas del correo electréni-
co. En la actualidad se ha generalizado su utilizacién y también puede llamdrseles IMT
(Internet Media Types).
MIME adjunta un archivo de cabecera a los documentos en el que indica el tipo de
contenido del archivo. De esta manera, el servidor web y el navegador pueden manejar y
mostrar los datos correctamente.
Los MIME indican el tipo de archivo que se transfiere del servidor web al cliente o na-
vegador web.
Se componen de tipos (indicados antes del cardcter «/») y subtipos (después del cardc- ter
«/»). Por ejemplo, son tipos MIME:
© Text/html. Define todos los archivos de texto que contienen cédigo HTML. ¢ Video/mpeg.
Define todos los archivos de video almacenados en formato mpeg.
¢ Image/*. Define todos los archivos de imagen almacenados en cualquier formato (gif,
jpeg, bmp, etcétera).
El registro de los tipos MIME lo controla la IANA (Internet Asigned Numbers Authority)
segin lo especificado en el RFC 2048. En su sitio web (www.iana.org) se puede obte- ner la
lista completa y actualizada de los tipos registrados. De esta manera, se asegu- ra que dos
tipos de contenido distintos no acaben con el mismo nombre.
El prefijo especial x- queda reservado para tipos experimentales (desplegados sin que haya
terminado el proceso de registro) 0 tipos de uso interno de organizaciones (por ejemplo,
image/x-fwh).
El protocolo HTTP usa los tipos MIME en sus cabeceras para, por ejemplo:
1. Informar al cliente del tipo de datos que recibe del servidor con el encabezado
content-type. Un navegador tipico puede manejar los datos de tres formas distintas
segun el tipo MIME indicado en contenttype:
¢ Visualizar el documento, por ejemplo con tipos text/html. ¢ Llamar a una aplicacién
externa, por ejemplo con tipos application/pdf.
¢ Preguntar al usuario qué hacer ante un tipo que no se entiende, como, por ejem- plo,
image/x-fwf.
Desde el navegador Mozilla Firefox buscamos RedIRIS. En el mend del navegador, seguimos
el itinerario Ver > Cédigo fuente de la pdgina. Aparece lo siguiente:

RedIRIS - Bienvenidos a RedIRIS


2. Permitir la negociacién de contenido. El cliente, en su peticién, incluye los tipos MIME
que acepta. Por ejemplo, si un navegador puede soportar documentos de tipo
application/pdf, lo indicaré en la cabecera HTTP:
Allow: application/pdf
Encapsular una o mds entidades dentro del cuerpo de mensaje, mediante los tipos MIME
multipart. Quizd el ejemplo mds conocido sea el tipo multipart/form-data uti-
lizado para encapsular los datos de un formulario en su envio hacia el servidor me- diante
el método POST.
Servicio HTTP A
Importante “@, .
Los tipos MIME son un esténdar que especifica cémo debe trans- ferir un programa los
archivos multimedia (video, sonido, o cual- quier archivo que no esté codifi-
cado en ASCIl).

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.

Tipos MIME en las cabeceras HTTP Duracién: © 10 min _Dificultad: © facil


Objetivos: conocer el contenido de las cabeceras HTTP relacionado con los tipos MIME.
Localizar diferentes tipos MIME en las cabeceras HTTP.
Desarrollo: 1. Tipo MIME texto
Desde el navegador Firefox, abre Google y busca una web cualquiera. En el menu del
navegador, sigue el itinerario Ver > Cddigo fuente de la pagina. Apa- recerd lo siguiente:

McGraw-Hill Interamericana de España, S.A.U.</ titles


El cédigo indica que la pagina visitada utiliza el tipo MIME text/html. 2. Tipo MIME correo
Abre un correo electrénico y visualiza las cabeceras completas del mensaje. Entre otros
muchos campos, verds los siguientes: Content-Type: multipart/mixed; MIME-Version: 1.0
Ambos indican que el correo electrénico lleva texto y archivos adjuntos. Por ejemplo, si
llevara algin archivo comprimido en zip incluiria application/zip, y si se tratase de un pdf,
application/pdf.
Capturas tsclient.zip [application/zip] 1,784 KB 3. Tipo MIME icon
Muestra un favicon en una pdgina web. Ve a una pagina web que muestre al- gin favicon y
comprueba que, en el enlace a dicha imagen, aparece el cédigo siguiente:

(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.

11. Averigua los RFC implicados en la definicién de los tipos MIME.


Claves y consejos
No es seguro enviar datos perso- nales a través de la red si el servidor web correspondiente
no proporciona seguridad en dicha transmision.
"
— —— A Servicio HTTP e e @ 3. El servidor y el cliente web nae pee El servidor web es un
programa que, haciendo uso del protocolo HTTP, atiende las pe-
ticiones de los navegadores o clientes web y les proporciona los recursos solicitados.
Applet. Programa en lenguaje La arquitectura utilizada es cliente-servidor. El equipo cliente
hace una peticién de pdgi- Java que puede integrarse en na web al servidor y este atiende la
solicitud. Por lo tanto, el objetivo de un servidor web paginas HTML y se ejecuta en el es
servir pdginas web a los clientes (navegadores) que las solicitan. navegador, aunque no
puede : : airs ‘ : at aneacarG mesimos toadinn come El equipo cliente hace la peticién a
través del navegador o cliente web. Esta aplicacién: archivos, periféricos, etcétera. es la
interfaz de usuario, pues atiende sus peticiones de paginas web, muestra los resulta-
dos y le proporciona herramientas que facilitan su comunicacién con el servidor. El equipo
Got (Common <Gatewoy: Inter- cliente se comunica con el servidor web, pues transmite las
peticiones de los usuarios.
face). Pequefos programas alo- jados en el servidor web que pueden utilizarse desde las
pdgi-
nas hospedadas. . J
Ui © 3.1. El servidor web
Atiende peticiones recibidas de los navegadores o clientes web y debe hacerlo de forma
eficiente y segura. La ubicacién légica de un servidor web es Internet, pero los hay que dan
servicio a intranets o a redes locales.
Cuando un usuario ejecuta Firefox y hace clic sobre un enlace a una pagina web, en- viard
una solicitud al servidor web que aloja dicha pdgina para que se la muestre (servir la
pagina). Si la encuentra, la enviard y si no, transmitiré al cliente un mensaje de error.
Cuando el cliente recibe la pagina web, interpreta el cédigo HTML y muestra las fuentes,
colores, imagenes que la componen, etcétera, de forma correcta.
El servidor web, ademas de suministrar paginas web HTML que no cambian (estaticas),
también permite la ejecucién de pequefios programas en diferentes lenguajes (PHP, CGI,
Java, etcétera) que les proporcionan dinamismo.
12. sQué diferencia hay entre las paginas estdticas y las | |
Los tres elementos bdsicos que componen las peticiones web dindmicas son (Fig. 4.2): el
cliente que la hace, el servidor que la atiende y los datos solicitados. 13. Haz una
comparativa entre — los dos servidores web mds conocidos y extendidos: Apache e IIS.
Localiza al guna web con informacién al respecto.
paginas dindmicas?
14. sCémo comprobarias que el servidor web Apache es- ta ejecutdndose?

15. sCémo comprobarias en qué puerto esta escuchan- do Apache2?

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.

La URL de solicitud de un recurso consta de los elementos siguientes:


1. El protocolo que debe utilizarse (HTTP, HTTPS, FTP, FTPS).

2. La doble barra con dos puntos (//:), que hace las veces de separador.

3. El servidor, indicado por la direccién IP o el nombre (FQDN) que contiene el recurso.


4. La ruta al recurso, el directorio y los subdirectorios del sitio web donde se ubica el
recurso.
5. El recurso al que se quiere acceder.

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.

18. sCémo podrias saber si el puerto 80 estd abierto en tu sistema?

Instalacién del servidor web Apache2 (Ubuntu GNU/Linux) Duracioén: © 20 min


Dificultad: © facil
Claves y consejos “®)
Si eres un usuario sudo y quieres trabajar con Nautilus como ad- ministrador, debes abrir
el termi- nal en modo texto y ejecutar esta orden:
$ sudo nautilus
Ahora podrds copiar y pegar archivos en directorios en los que no tenias permisos como
usuario normal.
NX J
Fig. 4.3. Instalacién de Apache2 desde Synaptic.
Si todo ha ido bien, al abrir el navegador web Firefox y | deberd aparecer una pagina
indicando que el servidor Apa- dirigirte a hitp://localhost (donde localhost es un alias de
— che2 esta instalado y ejecuténdose. También puede indicarse
se dispone de él.
Fig. 4.4. Instalacién
de Apache2. (Continéa)
a A Servicio HTTP '& Claves y consejos 2. Comprobacién de la versién Para conocer cudl es
la versién de Apache2 instalada, ejecuta esta orden: Para desinstalar Apache2 hay que
asegurarse bien de que el directo- $ apache2 -v tio /etc/apache2 no existe y de Server
version: Apache/2.2.11 (Ubuntu) que en /etc/rc2.d/ ha desapa- Server built: Jun 11 2009
16:05:37 recido el archivo S91apache2, : 2 : encargado de iniciar el proceso al 3. Pagina de
bienvenida arrancar el sistema en el nivel dos Z betel se’ si id id de biecucién. Vamos a crear
un pequefio programa html de bienvenida a nuestro servidor Apache? que sustituya al que
muestra el sistema por defecto. Abre Nautilus y ve al directorio /var/www/apache2-
default/, donde hay un archivo index.html que deberds renombrar como index.html .copia.
Con un editor html (como Bluefish) y como usuario sudo, escribe en index. html el
contenido siguiente: are. tar eet ardor eremiengs arte iiss sil
Sa 3 BSS ou oa on =a Bienvenidos al Servidor Apache2
Bienvenidos al Servidor Apache2
Servicios en Red
Servicios en Red
Fig. 4.5. Comprobacién de funcionamiento de Apache2. Vuelve al navegador y recarga el
servidor web. pe Segin muestra la Figura 4.5, ahora aparecerd nuestra pdgina de inicio. a
En el CD del libro dispones del documento SMR_SER_04_Apa che_Windows.pdf que explica
el
guracién bdsica de Apache? en Windows.
@ Metvideder
19. Haz una tabla compara-

20. Averigua _ son y para n

proceso de instalacién y confi-


S
tiva de diferentes clientes web en la que queden reflejadas sus principales caracteristicas.
Usa como referencia la tabla dispo- nible de la Wikipedia (http://es.wikipedia. org/).
aCudl es tu navegador fa- vorito? sPor qué? Razona la respuesta.
qué sirve
as cookies? J
.
@ 3.2. El cliente web
El cliente o navegador web (web browser) es una aplicacién que permite visualizar paginas
web alojadas en servidores web, interpretar cédigo HTML mostrando el conte- nido de la
pagina en la pantalla y, si la pagina lo permite, interactuar con ella o nave- gar a través de
enlaces a otras paginas web.
Los contenidos de las pdginas web pueden ser de diferentes tipos: textos, imagenes, videos,
etcétera. Su reproduccién o visualizacién requiere otros complementos que son afiadidos al
navegador y que quedan integrados de forma transparente al usuario.
Ademds de este funcionamiento bdsico, es posible ejecutar determinadas aplicaciones
complementarias que aumentan la funcionalidad de la pagina web, como por ejemplo:
e Aplicaciones que se ejecutan en el cliente web, es decir en el equipo del usuario. El
servidor envia el cddigo (en Java o JavaScript) al navegador y este lo ejecuta. Légi- camente,
el navegador debe ser capaz de ejecutarlo y, para ello, a menudo requiere la instalacién de
extensiones.
¢ Aplicaciones (en PHP, Perl, Python, etcétera) que se ejecutan en el servidor y generan un
cédigo HTML que se envia al navegador, que interpreta y muestra al usuario.
Entre los principales navegadores web estan:
© Mozilla Firefox, un navegador multiplataforma de cédigo libre con licencia GPL/ LGPL
que aparece en 2004.
° Internet Explorer, un navegador propietario de Microsoft para sistemas Windows.
Aparece en 1995 y es el mds utilizado por los usuarios de Internet, seguido de cerca por
Firefox.
© Otros: Amaya, Opera, Dillo o Chrome, o basados en texto como Lynx, Links, etcétera.
Por lo general, todas las distribuciones GNU/Linux llevan incorporado el navegador
Firefox, si bien permiten instalar nuevos navegadores e incluso eliminar este si el usuario
lo desea.
Los sistemas propietarios llevan incorporado algin navegador. Se pueden instalar y uti-
lizar otros, pero sin eliminar el original, ya que forma parte del propio sistema.
_...
@ 4. Configuracién del servidor web (GNU/Linux)
® 4.1. Instalacién del médulo Webmin Apache Server
Abre el navegador Firefox y ve a la interfaz de Webmin (http://localhost: 10000). Intro-
duce el nombre de usuario y la contrasefia.
Descarga el médulo Apache Server de la web oficial de Webmin (http://www.webmin.
com/standard. html).
Desde la interfaz de Webmin, sigue este itinerario: Webmin > Configuracién de Web- min >
Médulos de Webmin.
Desde el archivo local, busca el médulo descargado (apache. wbm.gz) y pulsa en Instalar
Médulo.
Indice de Médulo
Médulos de Webmin
Install Clone Delete Export i
Los médulos de Webmin pueden ser afiadidos tras las instalacién mediante el formulario
de la derecha. Los Médulos se distribuyen tipicamente en archivos | | .whm, cada uno de los
cuales puede contener uno o mas médulos. Los médulos pueden también ser instalados
desde archivos RPM si tu sistema operativo | | los soporta. i
@ Permitir acceso sélo alos usuarios y grupos: (root . a
i ' © Permitir acceso a todos los usuarios Webmin i
Fig. 4.6. Inataloalen ae canals ae foams ores
Una vez instalado, se muestra la siguiente ventana:
RISCE SE MOGKS Instalar Médulo
Los siguientes médulos han sido instalados correctamente y afiadidos a su lista de control
de acceso: Servidor Web Apache en /usr/share/webmin/apache (2456 kB) bajo la
categoria Servidores sll — @ modules form ! magyetet a — de webmin
Fig. 4. Z Fin de te pistoleciti del ibaa di Aoaahe Sivas
Comprobamos que en la pestafia Servidores aparece una nueva entrada, correspon- diente
a Apache.
® 4.2. Enlazado de Apache con el servidor servidor.aulaSER.com
Una vez instalado Apache queremos que, cuando se acceda desde el navegador a
servidor.aulaSER.com, se muestre nuestro servidor Apache.
lremos a la pestafia Existing Virtual Hosts y accederemos al servidor por defecto de Apache
(Default) y, en la opcién Redes y Direcciones, asignaremos en Nombre de mé- quina de
servidor nuestro servidor.aulaSER.com.
Cuando en el navegador Firefox vayamos a la URL http://servidor.aulaSER.com, mos- traré
la pdgina de inicio creada.
e&»-6€0 8 Gm Ra Més visitados~ @Getting Started {jj Latest Headlines “Webmin 1.480 en
servidor (.... © | @) Webmin 1.480 en servidor (... | [@ htt fs ck Jaser.com/ a| aes
Tse) GeleTseoge
Bienvenidos al ‘Servidor A Apache2
Fig. 4.8. ‘Pagina de inicio del servidor Apache servidor.aulaser.com.
Servicio HTTP A
Claves y consejos / y J
Webmin constituye una buena herramienta grdfica para la ad- ministracién de ciertos
aspectos de Apache.
Facilita la configuracién, pero tiene sus limitaciones como se verd mas adelante.
Si después de instalar el médulo Webmin de Apache no aparece en la lista de Servidores, ir
a Search y buscar Apache. De- vuelve las entradas relativas a Apache y una de ellas serd la
correspondiente a la configura- ciédn del médulo.
S
12
2 A Servicio HTTP
© 4.3. Configuracién global de Apache
Abrimos la pestaiia Servidores y seleccionamos la opcién Servidor Web Apache.
Ore Se: ine: Maine: Menraiones Meremnierins . Ante ep esha aa sii a @ vy @ 3] f (2) https
#servidor-10000/ | v | |v |Google @] flMés visitadosy Getting Started {Latest Headlinesv
Fee a Rea RE DY aa al a Bl is MM LY oy eh aes Ge ee Soe cs ot Ghee S oor bea ce ee
@ Webmin 1.480 en servidor (... & |e) http) ee ee: % Login: elvira Configuraci6n de Médulo
. licar Cambios Waaerii ” Servidor Web Apache Tames B Sistema Apache version 2.2.11
Buscar Documentos... G Servidores @ otros ‘Global configuration Existing virtual hosts =
Create virtual host @ Rea Seleccionar todo. | Invertir selecci6n. ®@ Hardware Define las
opciones por defecto para todos los otros sevidores virtuales y procesa cualquier
requerimiento no manejado. @ quster ox Direccion Cuaiquiera Nombre del Servidor
servidor.aulaSER.com @ Un-used Modules Puerto Cuaiquiera Raiz para Documentos
Automático —
Ad View Module's Logs { System Information & Refresh Modules ® Logout
@
Maneja el servidor basado en nombre en la direccion *. Direccién Cuaiquiera Nombre del
Servidor servidor.aulaSER.com Puerto 80 Raiz para Documentos /var/www
©) Servidor Virtual Seleccionar todo. | Invertir seleccion.
Delete Selected Servers |
Fig. 4.9. Configuracién del médulo de Apache Server.
fi
La directiva ServerRoot indica el directorio donde se encuentran
Importante
todos los archivos de configura- cién de Apache.
ServerRoot “/etc/apache2”
gSabias que...?
be
elas directivas de configura-
cidn son:
— Directivas globales, que controlan las caracteristicas del servidor.
— Directivas que controlan el funcionamiento del servidor principal, y valores por de- fecto
para los servidores vir- tuales.
— Directivas de configuracién para los servidores virtua- les, que permiten que las
peticiones web sean envia- das a diferentes servidores.
Los médulos se utilizan para agrupar funcionalidades de Apache muy concretas.
Algunos se instalan por defec- to con el servidor y otros los activa y configura el mismo
usuario si los necesita.

J
Pasamos a la pestafia Global configuration. Muestra la siguiente interfaz:
=e Servidor Web Apache meee Apache versién 2.2.11 Buscar Documentos..
& 2 le! & * Limites y Procesos Redes y Direcciones Tipos MIME Usuarios y Grupos Varios a
¥ a w — Archivos de Opciones de Configure Apache Modules —_ Editar Parametros Definidos
Editar Archivos de Por-Directorio Configuracion
Fig. 4.10. Configuracién de los pardmetros globales del médulo de Apache Server.
¢ la opcidén Limites y Procesos configura directivas relacionadas con el tamajfio de las
peticiones HTTP y con la cabecera de las peticiones HTTP, el ndmero de procesos que
pueden crearse desde los procesos creados por los hijos de Apache, etcétera.
Estos pardmetros los dejamos con sus valores por defecto.
e En Redes y Direcciones se configura la red a la que se da servicio y el puerto de escucha.
La opcién por defecto es cualquier red. Se hace lo mismo para los servido- res virtuales.
¢ En Tipos MIME se aprecia un listado completo de los tipos disponibles a partir del archivo
/etc/mime.types.
e Usuarios y grupos permite decidir quién serd el usuario por defecto de Apache y el grupo
al que pertenecerd. Por lo general, son www-data/www-data, respectiva- mente y asi lo
mantendremos.
¢ La opcién Varios permite configurar algunos detalles como la informacién que se
visualizard en la cabecera HTTP del servidor, el nombre y la ruta completa del archivo de
bloqueo, el archivo que almacenard el PID del servidor, etcétera.
e En Archivos de Opciones de Por-Directorio, el usuario puede crear archivos (llama- dos
.htaccess) con opciones especificas para un determinado directorio. Estas opcio- nes se
aplican a todos los archivos y subdirectorios del directorio en cuestién, a menos que se
indique lo contrario en otro archivo de opciones.
¢ Configure Apache Modules muestra un listado con todos los médulos disponibles para
Apache donde se especifica cudles estan instalados.

¢ 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}

AccessFileName: The name of the file to look for in each directory


'# for additional configuration directives. See also the AllowOverride # directive.
AccessFileName .htaccess

The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
i-

Order allow,deny Deny from all


Fig. 4.11. Archivo de configuracién de Apache Server.
® 4.4. Médulos de Apache
Una de las caracteristicas mds importantes de los médulos de Apache es que permiten la
carga dindmica, ya que son objetos compartidos dindmicos (Dynamic Shared Ob- ject, DSO)
y su extension es .so.
Para que Apache2 sepa qué médulos debe cargar, al arrancar el servicio dispone en el
directorio /etc/apache2/ de otros dos; en uno se halla la lista de médulos dispo- nibles
(mods-available) y en el otro, la de médulos activados (mods-enabled).
Cuando se activa un médulo de Apache, se crea un enlace simbdlico de los archivos
correspondientes del directorio mods-available a los de mods-enabled. Cada médulo de
Apache tiene asociados dos archivos: nombre_modulo.load y nombre_modulo. conf. El
primero tiene la carga del médulo y el segundo, la configuracién.
Utilizaci6n de médulos de Apache2 — Duracién: © 15 min Dificultad: © media
Objetivos: mostrar la activacién y la desactivacién de los médulos de Apache y su
configuracién basica. Utilizar el médulo userdir como ejemplo.
Desarrollo: 1. Instalacién del médulo userdir (mod_userdir)
La Figura 4.12 muestra una pequefa parte de la lista de médulos disponibles desde Apache?
(http://modules.apache.org). mae Configure Apache Modules
This page allows you to select which optional Apache modules are enabled, using the
checkbox next to each module name. Be careful when disabling a j module, as any existing
directives that are specific to it will be no longer recognized.
Casis Disabled | 0 finer ii
(@athbasic — Emabled = ea ers if
D auth_digest Disabled | O iene
C authn alias Disabled C imagemap | | ,
| 0 authn anon Disabled + D include || Fig. 4.12. st Deiat jom || Listado parcial © authn_dom
Disabled | O ldap ib d 5dulos di CO euthn default Disabled | Ctog. forensic ' de moddulos de
as ea (Ce aa Apache Server.
El médulo userdir permite que cualquier usuario cree su propio espacio web en un
directorio dentro de su home.
En primer lugar, accede a Configuracién Global > Configure Apache Modules y selecciona el
médulo userdir. Pulsa en Enabled Selected Modules para activarlo.
(Continéa) ly)
22. sCudl crees ti que es el
objetivo de la utilizacién
de los médulos?
y
A Servicio HTTP

Configuracién del médulo userdir


Pasa al médulo userdir. El archivo userdir.1load contiene la directiva de carga del médulo
correspondiente:
LoadModule userdir_module /usr/lib/apache2/modules/mod_ userdir.so
El archivo userdir.conf contiene la configuracién.
ae Editar Archivos de Configuracion _Editar Directivas en Archivo: | /etc/apache2/mods-
available/userdir.cont |
UserDir public_html UserDir disabled root
AllowOverride FileInfo AuthConfig Limit Indexes Options Multiviews Indexes Sym.
inksIfOwnerMatch IncludesNoexec Order allow,deny Allow from all Order deny,allow
Deny from alt
Fig. Ph ie de ie, ' instalacién del médulo Selvar de Apache Server.
Esta configuracién indica que el directorio donde estardn los archivos HTML de los
usuarios es public_html (se le puede cambiar el nombre). Por seguridad, se ha desactivado
al usuario root. Podemos indicar usuarios concretos activados, pero en ambos casos deben
ser usuarios del sistema.
La seccién Directory indica que se pueden listar todos los contenidos (Options Indexes) de
los home. De este modo, cualquier usuario cuyo home contenga el directorio public_html
podrdé publicar su contenido en el servidor Apache2 correspondiente.
Para la configuracién del médulo userdir, basta con seguir este itinerario:
Servidor Web Apache > Existing virtual hosts > Servidor por defecto > Opcio- nes de
documento
Indice de Module
Opciones de Documento en Para servidor por defecto
Doecame rape sommetes prams Of La) Directorio WWW de Usuario O Per detecto @
: nee eat ta)
usanios, frost
© onty users [ =—— lad: ni Archive de opciones de Pordirectorio § ©) por getecto @
Opciones de directorio eens eo ee * 4 | Fig. 4.14. Opciones amine ge servider vital Cie OC er
al de configuraciédn del eeweneete (roe oe ser =) | servidor por defecto —= de Apache
Server. Utilizacién del médulo userdir
El usuario alumno] crea su propia web y la cuelga en el servidor web del aula.
Para ello, alumnol debe estar permitido en userdir. Y lo esté, ya que hemos dejado activos a
todos los usuarios del sistema excepto a root.
(Continda) /

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?

24. sCrees que es Util definir archivos .htaccess?

25. 3Crees que es segura la utilizacién de archivos

(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.

Utilizacién de hosts virtuales Duracioén: © 15 min _Dificultad: © media


en Apache2
Objetivo: mostrar la creacién, configuracién y utilizacién de hosts virtuales en Apa- che2
desde Ubuntu GNU/Linux con Webmin.
Desarrollo:
1. Creacién de un host virtual Para crear un host virtual, sigue este itinerario: Servidor
Web Apache > Create Virtual Host
X
(Continéa)

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.

4. El usuario destino aplica el al- goritmo hash a los datos recibi-

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.

3. Autenticacién del servidor: asegura la identidad del servidor al que se establece Ic


conexién y al que puede enviar el usuario informacién personal mediante el certifi:
cado de servidor.

4. Autenticacién de cliente: el servidor conoce la identidad del usuario y le permite o nc


su acceso a dreas protegidas. Para ello, el cliente debe tener instalado un certificadc de
cliente en su ordenador que identifica el servidor al cliente.
El protocolo SSL utiliza una clave de sesidén que se genera en cada transaccién. Cuantc
mayor sea la longitud de la clave, mds dificil sera romper la encriptacién. La mayoric de los
navegadores soportan claves de sesién de 128 bits.
La comunicaci6n se realiza en dos fases:
1. Fase de saludo (handshaking, «estrechar las manos»): el cliente y el servidor se iden
tifican mediante el intercambio de claves publicas (encriptacién asimétrica) y llevar a
cabo la autenticacién utilizando certificados digitales.

2. Fase de comunicacion: se realiza el intercambio de datos utilizando, generalmente una


clave de tipo simétrico.

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.

6. Activar la seguridad en Apache


Llegados a este punto, configuraremos Apache como un servidor seguro utilizando el
protocolo HTTPS. Se utilizara Webmin en aquellos pasos en los que se pueda hacer una
configuracién grdfica y el resto de acciones se hardn utilizando la terminal en modo
comando.
Servicio HTTP A
30. Crea una tabla resumen con las principales directi- vas relacionadas con el
‘ méddulo SSL, describiendo
6.1. Activacién desde Webmin del médulo SSL { la funcién de cada una.
Desde el navegador, accede a https://localhost:10000 y ve a Servidores > Servidor
Activa la casilla correspondiente del médulo SSL y, a continuacién, pulsa Activar médu-
En el archivo que almacena los puertos de escucha /etc/apache2/ports.conf, se comprueba
que hay una directiva que incluye la escucha en el puer-
web Apache > Configuracién Global > Configuracién Médulos de Apache. gSabias que...? P
Para poder establecer una conexién
pes seleccionados. SSL, la maquina destino requiere un certificado de servidor.
to 443 si el mddulo SSL esta activado.
® 6.2. Creacién del host virtual
En este directorio dejaremos un archivo index.html prepa-
rado para la prueba de conexién. | Sewers
Fig. 4.30. Creaciédn de un nuevo host virtual.
6.3. Obtencion del certificado
Si ahora entramos en Opciones SSL de nuestro nuevo host virtual, veremos que se deben
suministrar unos certificados para el servidor y que se han de obtener. Si intentamos salvar
con las opciones por defecto devolveré un mensaje de error similar al de la Figu-
ra. 4.31.
En un servidor de produccién que
fuera real, estos certificados de-
berian solicitarse a una autoridad
de certificacién. Sin embargo, en — Regresara pagina anterior
el caso del servidor del aula trans- cee me een weer cea
formaremos nuestro servidor en Fig. 4.31. Error por falta de certificado del servidor. una
CA.
_ la orden para crear el certificado SSL es apache2-ssl-certificate, pero no va incluida en
Ubuntu. Hay que descargar e instalar el archivo apache2-ssl.tar.gz.
indice de Médulo Error
Error al salvar Opciones SSL : When SSL is enabled, a certificate file must be selected
_ Aldescomprimirlo, deja en el directorio dos archivos: ssleay.cnf y apache2-ssl- Bertificate.
_ © Hay que copiar ssleay.cnf en /usr/share/apache2. © Por su parte, apache2-ssl-
certificate deberd copiarse a /usr/sbin.
También habrd que crear el directorio donde se guardard el certificado SSL: /etc/ _
apache2/ssl.
Configuracion de Médulo Servidor Web Apache
Apache version 2.2.11
= 72 ° fe escuchar en direccion (si es necesarto)
Desde la pestafia Creacién de host virtual, crea uno especifi _ en ca
0 para conexiones seguras basado en el host virtual por de- aie pare bocumentos a anne
fecto y con directorio de inicio para documentos /var/www/ : a peggy
‘. . . Seen eee © mutomatico © |servidoraulaSER com ssl1/htdocs que debe realizarse como
usuario sudo. groan server anton aisnaiive. © iwdioeenitpl cn? eninder
Se eee eee |
137
eee
A Servicio HTTP
EI certificado se generard tras ejecutar la orden:
$ sudo apache2-ssl-certificate
creating selfsigned certificate
replace it with one signed by a certification authority (CA)
enter your ServerName at the Common Name prompt
If you want your certificate to expire after x days call this programm with -days x
Generating a 1024 bit RSA private key
Te ee ee On a) tt+t+tt+
SERMB EA Se nleger oer 9 4 0-0-2 eet
writing new private key to “/etc/apache2/ssl/apache.pem”
You are about to be asked to enter information that will be incorporated into your
certificate request. What you are about to enter is what is called a Distinguished Name or a
DN. There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter “.”, the field will be left blank.
Country Name (2 letter code) [GB]:ES
State or Province Name (full name) [Some-State] : Valencia
Locality Name (eg, city) []:Valencia
Organization Name (eg, company; recommended) [] :McGraw
Organizational Unit Name (eg, section) []:Hill
server name (eg. ssl.domain.tld; required!!!) []:servidor.aulaSER.com Email Address []
:webmaster@aulaSER.com
ser-admin@servidor: /etc/apache2/ssl$ ls
ad11d557.0 apache.pem
De esta forma, se ha creado el archivo /etc/apache2/ssl/apache.pem que con- tiene las
claves (RSA PRIVATE KEY) y el certificado (CERTIFICATE) pertenecientes al ser- vidor
servidor.aulaSER.com, firmado por nosotros mismos.
© 6.4. Instalar el certificado
A continuacién, habrd que crear los directorios y archivos siguientes: $cd /etc/apache2/ssl
Ssudo mkdir miCA
$sudo mkdir miCA/private
2? gSabias que...?
Hay dos tipos de certificados:
© Firmados por una autoridad Las érdenes deberdn ejecutarse desde /etc/apache2/ss1. Se
copian las claves de de mertihencién o CA. la CA al directorio correspondiente con el
nombre cakey . pem: oe a Ssudo cp apache.pem miCA/private/cakey.pem ’ ; Luego, se copia
el certificado de la CA en el lugar mds indicado. Los firmados por la autoridad de g P ; g
certificacién tienen garantizado $sudo cp apache.pem miCA/cacert .pem que el certificado
es auténtico y Se crea el fichero miCA/serial y se guarda en modo texto. Su contenido debe
ser son de pago. una linea con el valor 01, tal como se muestra a continuacién. Los
autofirmados sélo garanti- $more miCA/serial zan la autenticidad del propio : : Ot equipo
que lo ha firmado. Son gratuitos. Ahora tan solo queda incluir en el sitio las directivas que
indican que el acceso al mismo
/ se hace mediante el protocolo HTTPS.
138

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.

2. Nos aseguramos de que el archivo mod_ssl.so se encuentra en el directorio /modules


de Apache2.2

En el archivo de configuracién httpd.conf, introducimos las lineas: LoadModule ssl_module


modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
3. Afiadimos la directiva especifica de SSL —_-Ahive._Esitar Ver Historia Marcadores
Herramientas Ayuda
en httpd.conf: @ = ȴ 6 & B Lrsisevian Bg Mas visitadosv Getting Started {Latest Headlines
v os SSLRequireSSL 6) httpsiservidor/ {3 @ Webmin 1.480 en servidor(.. es Bienvenidos al
Servidor SEGURO Apache:
Con estas acciones, bastaria para que el servidor Apache en Windows funcio-
Servicios en Red nara de forma segura. Fig. 4.34. Comprobacién del funcionamiento.
140
A Servicio HTTP
Gestiona servidores web identificando requerimientos de utilizacién y aplicando criterios
de configuracién.
a
aCudl es el objetivo del servicio HTTP?
a) La transferencia segura de archivos.

b) La transferencia no segura de archivos.

c) La transferencia rdpida de archivos.


d) Ninguna de las anteriores.

Un servidor web es:


a) Un navegador que muestra pdginas web.

b) Software compatible con el protocolo HTTP.

c) Software para la creacién de pdginas web.

d) Una aplicacién que permite el acceso a Internet. Indica cual es la afirmacién verdadera:

e) El puerto de conexién para HTTP es el 80.

f) HTTP es un protocolo de nivel de Transporte.

g) HTTP emplea el puerto 433 para conexiones seguras.


h) HTTP es un protocolo con estado.
HTTP es un protocolo:
a) Sin conexién.

b) Sin estado.

c) Sin falta de memoria.

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.

. 3En qué consiste la autorizacién en Apache2?


sQué ocurre cuando se dan de alta varios usuarios utilizando la orden htpasswd?
. Averigua cudles son los algoritmos de clave publica
mds conocidos.
aCudles son los algoritmos de cifrado simétrico mds utilizados?
aEn qué consiste la autenticacién? Puedes revisar el apartado 4.6.
En qué consiste el control de acceso? Puedes revisar el apartado 4.6.
22s
El uso de la firma digital garantiza:
a) La integridad del mensaje.

b) El control de acceso.

c) La a) y la d).

d) La identidad del firmante.

aQué es una Autoridad de Certificacién?


Averigua con qué herramientas se puede ver el trafico HTTP. Visita http://httpwatch.com y
http://getfirebug.
com. m
Busca noticias sobre agujeros de seguridad sobre HTTP. Haz un detallado resumen
indicando los fallos detectados y las posibles consecuencias que pueden tener en el propio
servicio, o de forma indirecta en otros servicios.
aQué diferencia hay entre HTTP y HTTPS2
Si se requiere que todo el intercambio de informacién sea encriptado hay que utilizar:
a) Encriptacién digest.
b) Encriptacién severa.
c) Encriptacién ligera.
d) El protocolo SS.
En Ubuntu, si se te dice que «mates» o elimines el pro- ceso Apache y eae que hay varios en
ejecu- cién, acudl escogerias y por qué? Justifica la respuesta indicando las fuentes web
consultadas.
Documéntate antes de analizar cudl podria ser uno de los problemas principales del
servicio HTTP relaciona- do con el protocolo utilizado.
Crea un glosario con aquellos términos del servicio HTTP que no hayas entendido. Para
ello, puedes utili- zar una wiki o Google Docs para hacer el ejercicio con otros companeros.
Busca en Internet el video mds representativo y de me- jor calidad relacionado con los
contenidos de la uni- dad. Sube el enlace a la wiki de esta actividad comen- tando el motivo
por el que se ha elegido.
A tu juicio, aqué hecho histérico, de los comentados en esta unidad, ha sido el mds
importante? Razona y justifica la respuesta. Busca otro relacionado con el
servicio HTTP que no aparezca citado en el documen- to del CD SMR_SER_04_Historia.pdf.
Propén un Ultimo ejercicio para el examen, justifican- do su enunciado y razonando su
respuesta. Indica también las fuentes web consultadas o la pdgina del libro donde se halla
la solucién. Consulta al profesor el formato que debe tener.
SA

You might also like