Está en la página 1de 26

Servidores Web: Apache e IIS

Mster
Daniel Rodrguez Daniel Rodrguez
Departamento de Ciencias de la Computacin
Universidad de Alcal
Contenidos Contenidos
Conceptos bsicos Conceptos bsicos
Apache
Instalacin
Servidores virtuales
Autenticacin de usuarios
Monitorizacin y optimizacin del servidor Apache y
Apache y la generacin de contenido dinmico
Seguridad
IIS (Internet Information Server) IIS (Internet Information Server)
Instalacin
Servidores virtuales
Seguridad Seguridad
Agradecimientos:
Transparencias de Apache basadas en Alberto Abin, UAH.
Servidores Web
Daniel Rodrguez
2
Conceptos bsicos Conceptos bsicos
Protocolo HTTP Protocolo HTTP
El t l d t f i d hi t t (HTTP H T t El protocolo de transferencia de hipertexto (HTTP, HyperText
Transfer Protocol) es el protocolo usado en cada transaccin de la
Web (WWW).
Desarrollado por el consorcio W3C y la IETF, colaboracin que culmin en 1999
con la publicacin de una serie de RFCs, siendo el ms importante de ellos el
RFC 2616, que especifica la versin 1.1.
HTTP define la sintaxis y la semntica que utilizan los elementos
software de la arquitectura Web (clientes, servidores, proxies) para
comunicarse.
Es un protocolo orientado a transacciones y sigue el esquema peticin-
respuesta entre un cliente y un servidor. Al cliente que efectua la peticin (un
navegador o un spider) se lo conoce como "user agent" (agente del usuario). A
l i f i t itid l ll l id tifi di t URL la informacin transmitida se la llama recurso y se la identifica mediante un URL.
Los recursos pueden ser archivos, el resultado de la ejecucin de un programa,
una consulta a una base de datos, la traduccin automtica de un documento,
etc
Servidores Web
Daniel Rodrguez
4
etc.
HTTP Protocolo sin Estado HTTP Protocolo sin Estado
HTTP t l i t d d i l d HTTP es un protocolo sin estado, es decir, en general no guarda
ninguna informacin sobre conexiones anteriores.
El desarrollo de aplicaciones web necesita frecuentemente mantener
estado. Para esto se usan las cookies, que es informacin que un estado. Para esto se usan las cookies, que es informacin que un
servidor puede almacenar en el sistema cliente.
Esto le permite a las aplicaciones web instituir la nocin de "sesin", y
t bi it t i l ki d tambin permite rastrear usuarios ya que las cookies pueden
guardarse en el cliente por tiempo indeterminado.
Servidores Web
Daniel Rodrguez
5
HTTP HTTP
L i ll b t li t id La conversacin que se lleva a cabo entre un cliente y un servidor
se realiza mediante texto normal. Sobre Internet el protocolo est
sobre TCP y generalmente sobre el puerto 80. El cliente enva al
servidor la siguiente informacin (de manera absolutamente
transparente):
1. El mtodo de la peticin (GET o POST). p ( )
2. El nombre del documento que desea.
3. La versin de protocolo HTTP que se emplear en la comunicacin.
4. Una lista de los tipos de datos que est dispuesto a aceptar (por ejemplo, si p q p p (p j p ,
tenemos deshabilitada la opcin de cargar grficos, no incluir el tipo grfico en
la lista).
5. Su propio nombre y versin.
6. Ms cosas como el cliente que es, etc. y una lnea en blanco para indicar el
final.
Servidores Web
Daniel Rodrguez
6
HTTP Mtodos principales HTTP Mtodos principales
Principalmente, se dan los siguientes mtodos:
GET
Devolver un fichero
POST
E i d t l id Enviar datos al servidor
Ejemplos:
ht t p: / / www. uah. es/ GET / HTTP/ 1. 0 p
ht t p: / / www. uah. es/ i ndex. ht ml GET / i ndex. ht ml HTTP/ 1. 0
ht t p: / / www. uah. es/ pr og/ appl . ht ml GET / pr og/ appl . ht ml HTTP/ 1. 0
Servidores Web
Daniel Rodrguez
7
Protocolo HTTP Protocolo HTTP
Para obtener un recurso con el URL ht t p: / / www exampl e com/ i ndex ht ml Para obtener un recurso con el URL ht t p: / / www. exampl e. com/ i ndex. ht ml
1. Se abre un con el host www.tuhost.example, puerto 80 que es el puerto por defecto para HTTP.
2. Se enva un mensaje en el estilo siguiente:
GET / i ndex. ht ml HTTP/ 1. 1
Host : www. exampl e. com
User - Agent : HTTPTool / 1. 0
Connect i on: cl ose
[ L nea en bl anco]
La respuesta del servidor est formada por encabezados seguidos del recurso
solicitado, en el caso de una pgina Web:
HTTP/ 1. 1 200 OK
Dat e: Fr i , 31 Dec 2003 23: 59: 59 GMT
Cont ent - Type: t ext / ht ml
Cont ent - Lengt h: 1221
<ht ml ><body>
<h1>Pgi na pr i nci pal de t uHost </ h1>
. . .
</ b d ></ ht l >
Servidores Web
Daniel Rodrguez
8
</ body></ ht ml >
HTTP Cdigos de retorno HTTP Cdigos de retorno
200 OK 200 OK
201 Created
202 Accepted
204 N C t t 204 No Content
301 Moved Permanently
302 Moved Temporarily
304 Not Modified
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error 500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
Servidores Web
Daniel Rodrguez
9
503 Service Unavailable
HTTP y las capas inferiores HTTP y las capas inferiores
Servidores Web
Daniel Rodrguez
10
MIME Types MIME Types
MIME "M lti I t t M il E t i " (MIME MIME "Multipurpose Internet Mail Extensions" (MIME
definido en RFC 1521) se defini como estndar para
enviar por correo electrnico con datos binarios. p
Los usos tpicos de MIME incluyen el envo de imgenes, audio,
documentos de procesadores de texto o incluso ficheros de texto
cuando es importante que sistema de correo no modifique ninguna
parte del fichero.
MIME permite adems etiquetar partes de un mensaje para que el
receptor (o programa de correo) puede determinar que hacer con l.
El algoritmo Base64 se utiliza para convertir ficheros
binarios a texto y viceversa.
Este mismo concepto se a aplicado en la Web para el Este mismo concepto se a aplicado en la Web para el
envo sobre el protocolo HTTP de las diferentes partes de
las que se compone un documento en HTML
Servidores Web
Daniel Rodrguez
11
Ejemplo Fichero mi me. t ypes je p o c e o e. t ypes
# Thi s f i l e cont r ol s what I nt er net medi a t ypes ar e sent t o t he cl i ent f or
# gi ven f i l e ext ensi on( s) Sendi ng t he cor r ect medi a t ype t o t he cl i ent # gi ven f i l e ext ensi on( s) . Sendi ng t he cor r ect medi a t ype t o t he cl i ent
# i s i mpor t ant so t hey know how t o handl e t he cont ent of t he f i l e.
# Ext r a t ypes can ei t her be added her e or by usi ng an AddType di r ect i ve
# i n your conf i g f i l es. For mor e i nf or mat i on about I nt er net medi a t ypes,
# pl ease r ead RFC 2045, 2046, 2047, 2048, and 2077. The I nt er net t ype
# r egi st r y i s at <ht t p: / / www. i ana. or g/ assi gnment s/ medi a- t ypes/ >.
# MI ME t ype Ext ensi ons yp
appl i cat i on/ act i vemessage
appl i cat i on/ andr ew- i nset ez
appl i cat i on/ appl ef i l e
appl i cat i on/ at om+xml at om appl i cat i on/ at om+xml at om

i mage/ j peg j peg j pg j pe


t ext / ht ml ht ml ht m
t ext / par i t yf ec t ext / par i t yf ec
t ext / pl ai n t xt t ext conf def l i st l og i n
Servidores Web
Daniel Rodrguez
12
Ejecucin de aplicaciones con CGI Ejecucin de aplicaciones con CGI
P d j t li i t d Para poder ejecutar aplicaciones externas, se puede
utilizar un protocolo llamado CGI (Common Gateway
Interface) Interface),
CGI define una serie de parmetros conocidos como variables de
entorno, que describen las peticiones del cliente.
Esto define una interfaz independiente entre los programas o scripts y
el servidor HTTP
Servidores Web
Daniel Rodrguez
13
Apache Apache
Apache Apache
Su nombre se debe a que originalmente Apache consista solamente Su nombre se debe a que originalmente Apache consista solamente
en un conjunto de parches a aplicar al servidor de NCSA. Era, en
ingls, a patchy server (un servidor "parcheado").
El id A h d ll d t d l t HTTP S El servidor Apache se desarrolla dentro del proyecto HTTP Server
(httpd) de la Apache Software Foundation.
Apache presenta entre otras caractersticas mensajes de error p p j
altamente configurables, bases de datos de autenticacin y
negociado de contenido, pero fue criticado por la falta de una interfaz
grfica que ayude en su configuracin. grfica que ayude en su configuracin.
Modular, Open source, Multi-plataforma, Extensible, Popular (fcil
conseguir ayuda y soporte) y gratuito .
Servidores Web
Daniel Rodrguez
15
Apache Mdulos Apache Mdulos
L it t d l id A h d l El id t d La arquitectura del servidor Apache es modular. El servidor consta de
un nucleo (core) y mucha de la funcionalidad que podra considerarse
bsica para un servidor Web es provista por mdulos.
Por ejemplo, modulos de la funcionalidad bsica incluyen:
mod_ssl - Comunicaciones Seguras va TLS.
mod r ewr i t e - reescritura de direcciones servidas (generalmente utilizado para od_ e t e eesc u a de d ecc o es se das (ge e a e e u ado pa a
transformar pginas dinmicas como php en pginas estticas html para as
engaar a los navegantes o a los motores de bsqueda en cuanto a como
fueron desarrolladas estas pginas).
mod_dav - Soporte del protocolo WebDAV (RFC 2518).
mod_def l at e - Compresin transparente con el algoritmo deflate del contenido
enviado al cliente.
P it t tifi i t id LDAP mod_aut h_l dap - Permite autentificar usuarios contra un servidor LDAP.
mod_pr oxy_aj p - Conector para enlazar con el servidor Jakarta Tomcat de
pginas dinmicas en J ava (servlets y J SP).
Servidores Web
Daniel Rodrguez
16
Modulos no bsicos (externos) Modulos no bsicos (externos)
El id d b d t did l i l i El servidor de base puede ser extendido con la inclusin
de mdulos externos entre los cuales se encuentran:
mod per l - Pginas dinmicas en Perl mod_per l Pginas dinmicas en Perl.
mod_php - Pginas dinmicas en PHP.
mod_pyt hon - Pginas dinmicas en Python.
mod_r exx - Pginas dinmicas en REXX y Object REXX.
mod_r uby - Pginas dinmicas en Ruby.
mod mono - Pginas dinmicas en Mono _ g
mod_secur i t y - Filtrado a nivel de aplicacin, para seguridad.
Servidores Web
Daniel Rodrguez
17
Instalacin Apache (en Windows) Instalacin Apache (en Windows)
h / / h d h / ht t p: / / ht t pd. apache. or g/
Servidores Web
Daniel Rodrguez
18
Servidores Web
Daniel Rodrguez
19
Apache Arranque y parada Apache Arranque y parada
A d d l i i Arranque y parada del servicio
y se comprueba con el navegador
Servidores Web
Daniel Rodrguez
20
Aadir el dir /bin al PATH Aadir el dir /bin al PATH
Servidores Web
Daniel Rodrguez
21
Herramientas de configuracion Herramientas de configuracion
L W b i i l d l d t i d l t La Web principal de la documentacin del proyecto es:
ht t p: / / ht t pd. apache. or g/ docs/ 2. 2/
Otra de las pginas donde podemos obtener ayuda es: Otra de las pginas donde podemos obtener ayuda es:
ht t p: / / www. apache- t ool s. com/
La herramienta ms conocida para la configuracin de La herramienta ms conocida para la configuracin de
Apache es Comanche, se trata de un programa grfico
multiplataforma que permite la modificacin del archivo de
configuracin httpd.conf de forma sencilla. La pgina Web
principal del proyecto es:
ht t / / h / ht t p: / / www. comanche. or g/
Servidores Web
Daniel Rodrguez
22
Directivas bsicas de configuracin Directivas bsicas de configuracin
Di t i d i t l i Directorio de instalacin:
Servidores Web
Daniel Rodrguez
23
Archivo httpd.conf c o ttpd.co
El hi d fi i i i l d h El archivo de configuracin principal de apache es
httpd.conf
Comprobacin de la sintxis del archivo ht t pd. conf :
ht t pd - w - t - f c: \ Apache2. 2\ conf \ ht t pd. conf
ht t d t ht t pd - w - t
Servidores Web
Daniel Rodrguez
24
Instalacin de mdulos dinmicos Instalacin de mdulos dinmicos
A h id W b d l Apache es un servidor Web modular
Permite al administrador decidir cules son las funcionalidades que va
a tener mediante la adicin de mdulos.
Para entender cmo funcionan los mdulos dinmicos se
va a mostrar cmo instalar el mdulo mod_dav:
WebDAV permite a usuarios remotos manipular de manera segura
documentos concretos sin necesidad de FTP, permitiendo tareas como
aadir, eliminar o actualizar archivos.
Lo primero que habra que hacer para instalar un mdulo es bajarlo de
internet y copiarlo en la carpeta modul es que se encuentra dentro del
directorio de instalacin de Apache. p
En el caso de WebDAV, se encuentra dentro de la distribucin
estndar de Apache.
Servidores Web
Daniel Rodrguez
25
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV
Servidores Web
Daniel Rodrguez
26
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV
El i i t t d l El siguiente paso que tenemos que dar es cargar el
mdulo de forma dinmica.
Para ello descomentamos la siguiente lnea (o se crea si es que no Para ello descomentamos la siguiente lnea (o se crea si es que no
exista):
#L dM d l d d l d l / d d #LoadModul e dav_modul e modul es/ mod_dav. so
Adems, es conveniente activar los siguientes mdulos: Adems, es conveniente activar los siguientes mdulos:
LoadModul e dav_f s_modul e modul es/ mod_dav_f s. so
LoadModul e def l at e_modul e modul es/ mod_def l at e. so
Servidores Web
Daniel Rodrguez
27
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV
Posteriormete incluir al final del archivo ht t pd conf : Posteriormete, incluir al final del archivo ht t pd. conf :
#I ncl usi n de mod_dav
I ncl ude conf / ext r a/ ht t pd- dav conf I ncl ude conf / ext r a/ ht t pd dav. conf
En el archivo conf / ext r a/ ht t pd- dav. conf incluiremos las
directivas propias del mdulo WevDAV: directivas propias del mdulo WevDAV:
#CUI DADO: El di r ect or i o var debe exi st i r
DavLockDB " C: / Apache2. 2/ var / DavLock" p
DAVMi nTi meout 600
Al i as / t est - dav " C: / Apache2. 2/ ht docs/ t est - dav"
<Di r ect or y " C: / Apache2. 2/ ht docs/ t est - dav" >
Dav On Dav On
Or der Al l ow, Deny
Al l ow f r omal l
</ Di r ect or y>
Servidores Web
Daniel Rodrguez
28
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV
E l b d t d d l it d A h h En la barra de estado del monitor de Apache ahora se
muestra que est habilitado DAV versin 2.
Servidores Web
Daniel Rodrguez
29
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV
C b i d d d di t l l d d Comprobacin de mod_dav mediante el explorador de
Windows:
1. Hacer click en Mis sitios de Red.
2. En la ventana derecha del explorador de Windows haga click en la
opcin Aadir sitios de Red.
3. En la ubicacin, escribir: ht t p: / / 127. 0. 0. 1/ t est - dav/
Servidores Web
Daniel Rodrguez
30
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV
Servidores Web
Daniel Rodrguez
31
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV
Servidores Web
Daniel Rodrguez
32
Servidores virtuales (Virtual hosts) Servidores virtuales (Virtual hosts)
El t i H t Vi t l fi l ti d j t El trmino Host Virtual se refiere a la prctica de ejecutar
ms de un sitio Web en la misma mquina:
Servidores virtuales por nombre
Servidores virtuales por IP
Servidores virtuales por PUERTO Servidores virtuales por PUERTO
Servidores Web
Daniel Rodrguez
33
Ejemplo. Servidores Virtuales Ejemplo. Servidores Virtuales
C i d d H t Vi t l Creacin de dos Hosts Virtuales,
uno para la IP 127.0.0.1
y el otro para la IP de la red local. En Windows la IP local se puede ver
desde la lnea de comandos con:
>i pconf i g
Modificaciones en ht t pd conf : Modificaciones en ht t pd. conf :
Li st en 127. 0. 0. 1: 80
Li t 192 168 1 55 80 Li st en 192. 168. 1. 55: 80
# Vi r t ual host s
I ncl ude conf / ext r a/ ht t pd- vhost s. conf
Servidores Web
Daniel Rodrguez
34
Ejemplo. Servidores Virtuales Ejemplo. Servidores Virtuales
Modificaciones en f / t / ht t d h t f : Modificaciones en conf / ext r a/ ht t pd- vhost s. conf :
<Vi r t ual Host 127 0 0 1> <Vi r t ual Host 127. 0. 0. 1>
Ser ver Admi n admi n@127. 0. 0. 1
Document Root " C: / Apache2. 2/ ht docs/ vhost 1/ "
Er r or Log " l ogs/ 127. 0. 0. 1- er r or _l og"
</ Vi r t ual Host >
<Vi r t ual Host 192. 168. 1. 55>
Ser ver Admi n admi n@192. 168. 1. 55
/ h 2 2/ h d / h 2/ Document Root " C: / Apache2. 2/ ht docs/ vhost 2/ "
Er r or Log " l ogs/ 192. 168. 1. 55- er r or _l og"
</ Vi r t ual Host >
Servidores Web
Daniel Rodrguez
35
Ejemplo. Servidores Virtuales Ejemplo. Servidores Virtuales
C b l hi d fi i Comprobar el archivo de configuracin:
Servidores Web
Daniel Rodrguez
36
Ejemplo 2. Servidores Virtuales Ejemplo 2. Servidores Virtuales
C i d t H t Vi t l l i Creacin de cuatro Hosts Virtuales, uno para la ip
127.0.0.1 y el otro para la ip de la red local, adems
utilizar el puerto 80 y 8080 para distinguirlos. p y p g
Modi f i caci ones en ht t pd. conf :
Li t 127 0 0 1 80 Li st en 127. 0. 0. 1: 80
Li st en 127. 0. 0. 1: 8080
Li st en 192. 168. 1. 55: 80
Li st en 192. 168. 1. 55: 8080 Li st en 192. 168. 1. 55: 8080
# Vi r t ual host s
I ncl ude conf / ext r a/ ht t pd- vhost s. conf
Servidores Web
Daniel Rodrguez
37
Ejemplo 2. Servidores Virtuales Ejemplo 2. Servidores Virtuales
Modificaciones en conf / ext r a/ ht t pd- vhost s. conf
<Vi r t ual Host 127. 0. 0. 1: 80>
Ser ver Admi n admi n@127. 0. 0. 1
Document Root " ht docs/ vhost 1/ "
# Er r or Log " l ogs/ 127. 0. 0. 1- er r or _l og"
# Cust omLog " l ogs/ 127. 0. 0. 1- access_l og common"
</ Vi r t ual Host > </ Vi r t ual Host >
<Vi r t ual Host 127. 0. 0. 1: 8080>
Ser ver Admi n admi n@127. 0. 0. 1
Document Root " C: / Apache2. 2/ ht docs/ vhost 2/ "
# Er r or Log " l ogs/ 127. 0. 0. 1- er r or _l og"
# / # Cust omLog " l ogs/ 127. 0. 0. 1- access_l og common"
</ Vi r t ual Host >
<Vi r t ual Host 192. 168. 1. 55: 80>
Ser ver Admi n admi n@192. 168. 1. 55
Document Root " C: / Apache2. 2/ ht docs/ vhost 3/ "
Er r or Log " l ogs/ 192. 168. 1. 55- er r or _l og"
# Cust omLog " l ogs/ 192. 168. 1. 55_l og common"
</ Vi r t ual Host >
<Vi r t ual Host 192. 168. 1. 55: 8080>
Ser ver Admi n admi n@192 168 1 55 Ser ver Admi n admi n@192. 168. 1. 55
Document Root " C: / Apache2. 2/ ht docs/ vhost 4/ "
# Er r or Log " l ogs/ 192. 168. 1. 55- er r or _l og"
# Cust omLog " l ogs/ 192. 168. 1. 55_l og common"
</ Vi r t ual Host >
Servidores Web
Daniel Rodrguez
38
Ejemplo 2. Servidores Virtuales Ejemplo 2. Servidores Virtuales
Servidores Web
Daniel Rodrguez
39
Ejemplo 2. Servidores Virtuales Ejemplo 2. Servidores Virtuales
C b l t f i i t Comprobar el correcto funcionamiento
Servidores Web
Daniel Rodrguez
40
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
Se realiza mediante los ficheros ht access y asociados ( ht passwd Se realiza mediante los ficheros . ht access y asociados ( . ht passwd,
. ht gr oup y . ht di gest )
La creacin de un fichero de usuarios y contraseas se efectua con la orden:
ht passwd - c f i cher o user
la misma orden pero sin la opcin - c se van aadiendo usuarios al archivo de autenticacin.
Ej Ej:
htpasswd c users alberto
El archivo de grupos generalmente llamado ht gr oups simplemente se El archivo de grupos, generalmente llamado. ht gr oups simplemente se
edita con un editor de texto y el formato es el nombre grupo seguido por : y
los nombres de usuario que pertenecen a cada grupo. Por ejemplo:
vendedor es: al ber t o
ot r os: al ber t o j ai me
Servidores Web
Daniel Rodrguez
41
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
Servidores Web
Daniel Rodrguez
42
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
C t id d l hi h ( d Contenido del archivo . ht access (a poner en cada
directorio que queramos proteger) :
Aut hType Basi c
Aut hName Cont r asea r equer i da par a ent r ar ( . ht access) "
Aut hUser Fi l e "C: / Apache2. 2/ passwor d/ user s"
Aut hGr oupFi l e "C: / Apache2. 2/ passwor d/ gr oups"
Requi r e Gr oup vendedor es Requi r e Gr oup vendedor es
Servidores Web
Daniel Rodrguez
43
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
P t i d l hi h h l Protegiendo los archivos . ht access y . ht gr oup en el
fichero ht t pd. conf (suele estar activado por defecto) :
# The f ol l owi ng l i nes pr event . ht access and . ht passwd
# f i l es f r ombei ng vi ewed by Web cl i ent s.
#
<Fi l es ~ "^\ . ht ">
Or der al l ow, deny , y
Deny f r omal l
</ Fi l es>
Servidores Web
Daniel Rodrguez
44
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
Servidores Web
Daniel Rodrguez
45
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
Utilizando los archivos ht y ht Hay que copiar los Utilizando los archivos . ht access y . ht gr oups. Hay que copiar los
archivos . ht * al directorio que queremos proteger con usuario y
contrasea.
P t i t h i l i l di ti Al l O i d Posteriormente hay que incluir la directiva Al l owOver r i de.
<Vi r t ual Host 127. 0. 0. 1: 80>
Ser ver Admi n admi n@127. 0. 0. 1
Document Root " ht docs/ vhost 1/ "
# Er r or Log " l ogs/ 127. 0. 0. 1- er r or _l og"
# C t L " l / 127 0 0 1 l " # Cust omLog " l ogs/ 127. 0. 0. 1- access_l og common"
# Par a que f unci one . ht access
<Directory "htdocs/vhost1/">
AllowOverride All AllowOverride All
</Directory>
</ Vi r t ual Host >
Servidores Web
Daniel Rodrguez
46
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
Las siguientes lneas son anlogas a la utilizacin de ht * pero Las siguientes lneas son anlogas a la utilizacin de . ht * pero
mejoran la eficiencia.
#prueba de autenticacin severa alberto
<Di r ect or y "C: / Apache2. 2/ ht docs/ vhost 1/ sensi bl e">
Sat i sf y Al l
Aut hType Basi c Aut hType Basi c
Aut hName "Ent r ar al di r ect or i o de document aci n sensi bl e"
#user = al ber t o, pass = al ber t o
Aut hUser Fi l e "C: / Apache2. 2/ passwor d/ user s"
# gr upos exi st ent es: vendedor es ot r os # gr upos exi st ent es: vendedor es, ot r os
Aut hGr oupFi l e "C: / Apache2. 2/ passwr od/ gr oups"
Requi r e gr oup vendedor es
Or der deny, al l ow
Deny f r omal l Deny f r omal l
Al l ow f r om127. 0. 0. 1
</ Di r ect or y>
Servidores Web
Daniel Rodrguez
47
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)
P b l h b l Para comprobarlo hay que renombrar el
archivo . ht access y comprobar que en la pantalla en la
que pide la contrasea ya no est escrito ( ht access) que pide la contrasea ya no est escrito (. ht access).
Servidores Web
Daniel Rodrguez
48
Autenticacin de usuarios (digest) Autenticacin de usuarios (digest)
P l t ti i tili d l l it di t ( Para la autenticacin utilizando el algoritmo digest (ms
seguro que Basic) es necesario cargar el mdulo:
LoadModule auth_digest_module modules/mod_auth_digest.so _ _ _ _
Creando los archivos de usuario:
htdigest [ c ] passwdfile realm username htdigest [ -c ] passwdfile realm username
-c - Crea el archivo de contraseas
Nota: si existe se BORRA y se crea vaco.
N b d l hi l d l Passwdfile - Nombre del archivo en el que guardarn las
contraseas
Realm - Reino al que pertenece el nombre de usuario.
N b d i d i i t Username - Nombre de usuario que se desea crear, si no existe se
crea una nueva entrada en el archivo, pero si existe tan solo se
actualiza su password.
Servidores Web
Daniel Rodrguez
49
Autenticacin de usuarios (digest) Autenticacin de usuarios (digest)
Servidores Web
Daniel Rodrguez
50
Autenticacin de usuarios (digest) Autenticacin de usuarios (digest)
# pr eba de a t ent i caci n se er a Al ber t o # pr ueba de aut ent i caci n sever a Al ber t o
<Di r ect or y " C: / Apache2. 2/ ht docs/ vhost 1/ sensi bl e_di gest " >
Sat i sf y Al l
Aut hType Di gest Aut hType Di gest
# Est e es el r ei no al que debe per t enecer el usuar i o
#debe est ar escr i t o EXACTAMENTE i gual que en l a l nea ht di gest g q g
f i l e REI NO nombr e
Aut hName " aut ent i caci on- di gest "
Aut hUser Fi l e " C: / Apache2. 2/ passwr od/ user s. di gest "
A t hG Fi l " C / A h 2 2/ d/ " Aut hGr oupFi l e " C: / Apache2. 2/ passwr od/ gr oups"
Requi r e gr oup vendedor es
Or der deny, al l ow
Deny f r omal l y
Al l ow f r om127. 0. 0. 1
Requi r e val i d- user
Servidores Web
Daniel Rodrguez
51
</ Di r ect or y>
Gestin de Registros (logs) Gestin de Registros (logs)
L fi i d l i t d l t La configuracin de los registros de acceso y los eventos
que ser producen en un servidor Web son de especial
importancia pues pueden ayudar a: importancia pues pueden ayudar a:
Monitorizar la utilizacin del sistema Monitorizar la utilizacin del sistema
Detectar preventivamente un ataque al sistema, una debilidad que est
siendo explotada siendo explotada
Fallo en la configuracin o en el sistema.
Servidores Web
Daniel Rodrguez
52
Tipos de registros Tipos de registros
A h ti d f t t ti d i t Apache gestiona, por defecto, tres tipos de registros:
El registro de errores El registro de errores
Registro de acceso
Registro del identificador del proceso (PID) del demonio del servicio.
Apache permite una seleccin flexible de lo que se quiere
guardar por registro, dnde y en el formato en que se va g p g , y q
a guardar esta informacin.
Servidores Web
Daniel Rodrguez
53
Registro de errores Registro de errores
El i t d d fi h El registro de errores se guarda en un fichero que es
marcado por la directiva errorlog.
Esta directiva tambin puede utilizarse para en lugar de guardar la Esta directiva tambin puede utilizarse para, en lugar de guardar la
informacin en ficheros, utilizar el servicio syslog para registrar los
eventos va red y de forma centralizada.
El d l i i l d i l tilid d d El uso del servicio syslog ser de especial utilidad cuando
tenemos sistemas de anlisis de log centralizados o de
correlacin de eventos correlacin de eventos.
Er r or Log / r ut a/ f i cher os/ l og/ er r or _l og

Er r or Log sysl og: user
Servidores Web
Daniel Rodrguez
54
Registro de errores Registro de errores
El nivel de informacin que se va a almacenar en los ficheros de El nivel de informacin que se va a almacenar en los ficheros de
registro se configura con la directiva LogLevel en la que se pueden
ajustar diferentes valores:
Emer g: Slo se almacenan los mensajes que dejan al sistema incapaz de ser - Emer g: Slo se almacenan los mensajes que dejan al sistema incapaz de ser
utilizado.
- Al er t : Cuando se produce un error en el sistema que requiere la ejecucin
inmediata de una accin para corregirlo.
- Cr i t : Fallos crticos del sistema. No requieren accin inmediata pero pueden
dejar el sistema no disponible.
- Er r or : Condiciones de error en el uso del sistema. No tiene porque afectar al
uso del sistema uso del sistema.
- War n: Avisos. Se producen cuando algo no est realizndose correctamente.
Puede producirse por un script o un cliente que no realiza la negociacin
correctamente con el servidor.
- Not i ce: Informacin significativa del funcionamiento del sistema.
- I nf o: Informacin general del sistema.
- debug: Informacin de debuging del sistema. Cuando abre o cierra conexiones o
ficheros etc
Servidores Web
Daniel Rodrguez
55
ficheros, etc
Registros de acceso Registros de acceso
L i t d l id l t Los registros de acceso al servidor se almacenan aparte
de los errores del servidor.
Estos registros guardan informacin relativa a todos los accesos a Estos registros guardan informacin relativa a todos los accesos a
documentos o intentos de acceso a los documentos.
Para almacenar estar informacin Apache se apoya en el
uso de dos mdulos, que son:
mod_l og_conf i ng: se utiliza para configurar el lugar y el formato de
los ficheros de registro los ficheros de registro
mod_set envi f : para utilizar variables de entorno que permitan
generar ficheros de registro condicionales, que sern muy tiles a la
hora de detectar sucesos en entornos con mucho trfico hora de detectar sucesos en entornos con mucho trfico.
Servidores Web
Daniel Rodrguez
56
Registros de acceso Registros de acceso
P fi l i t d tili l Para configurar los registros de acceso utilizamos las
directivas LogFor mat y Cust omLog.
LogFor mat determina que informacin se va a escribir y de qu forma,
en el fichero de registro.
La forma comn es tiene esta estructura:
LogFor mat "%h %l %u %t \ "%r \ " %>s %b" common LogFor mat %h %l %u %t \ %r \ %>s %b common
Parametros:
%h: IP del cliente.
%I : Identificacin del cliente utilizando el servido i ndent d.
%u: Usuario cliente.
%t : Fecha y hora.
%r : Peticin realizada
%s: Cdigo de status del servidor.
%b: Tamao de la respuesta.
Servidores Web
Daniel Rodrguez
57
p
C l di ti L F t d l f t d fi h l Con la directiva LogFormat se puede crear el formato de fichero log
utilizando estas variables o aadiendo informacin de cabeceras del
cliente como:
LogFor mat " %h %t \ " %r \ " %>s %b \ " %{Ref er er }i \ " \ " %{User -
agent }i \ " " mi f or mat o
Aqu hemos aadido %{Ref er er } y %{User - Agent } al formato de
registro y hemos quitado %I y %u.
Una vez definido el formato que a utilizar hemos de marcar el lugar
de registro con: de registro con:
Cust omLog / r ut a/ l ogs/ access_l og mi f or mat o
Podemos crear tantos ficheros de log como deseemos, as por
j l d l l di i IP l h ejemplo, en uno podemos almacenar la direccin IP y la hora y en
otro la direccin IP, la peticin y el referer, etc
Servidores Web
Daniel Rodrguez
58
Control de Logs Control de Logs
L fi h d l l t id i i t Los ficheros de log suelen tener un rpido crecimiento por
lo que deben ser controlados y tener un mantenimiento
muy ajustado muy ajustado.
Para ello se pueden utilizar los sistemas de log rotacionales, que
permiten, utilizando el programa externo rotatelog crear archivos
automticos cada cierto tamao o tiempo automticos cada cierto tamao o tiempo.
Para ello definimos en ErrorLog el formato de los ficheros:
Er r or Log " | bi n/ r ot at el ogs / var / l ogs/ er r or l og. %Y- %m- %d- %H_%M_%S 50M"
Servidores Web
Daniel Rodrguez
59
E i t t l d l i | l di i d l Es importante el uso del pipe | para la direccin de los
registros de logs.
En este ejemplo se utilizan las variables de fechar %Y (year), %m
(month), %d (day), para crear un nuevo archivo de log cada 50 MB de
tamao tamao.
O directamente con Cust omLog que crear O directamente con Cust omLog, que crear
l ogapache. nnnn (nnnn el tiempo de creacin):
Cust omLog " | bi n/ r ot at el ogs / r ut al ogs/ l ogapache 50M" mi f or mat o
Servidores Web
Daniel Rodrguez
60
Generacin de contenido dinmico Generacin de contenido dinmico
C i t l j i l id d Consiste en la ejecucin en el servidor de programas.
Como ejemplo, se muestra como instalar el PHP para
poder crear pginas dinmicas
PHP funciona con el mdulo mod_php
ht t p: / / www. php. net / manual / es/ i nst al l . wi ndows. manual . php
Servidores Web
Daniel Rodrguez
61
PHP: Descargar y descomprimir PHP PHP: Descargar y descomprimir PHP
El i i t d l lti i d PHP El primer paso consiste en descargar la ltima versin de PHP.
Podremos hacerlo desde la pgina oficial de PHP, en la seccin de
descargas.
ht t p: / / www. php. net / downl oads. php
Debemos elegir la versin "zip package" que contiene todas las
funcionalidades de PHP y el mdulo necesario para instalarlo en funcionalidades de PHP y el mdulo necesario para instalarlo en
Apache. Una vez descargado el paquete comprimido en .zip de PHP
necesitamos descomprimirlo en nuestro disco duro.
Podemos utilizar el directorio raz del disco duro para descomprimir los archivos Podemos utilizar el directorio raz del disco duro para descomprimir los archivos.
En ese caso, se crear un directorio llamado algo como "php-5.2.5-Win32" que
colgar de nuestro directorio raz. Se recomienda cambiar el nombre del
directorio creado a algo como "c:\php". En todo caso, nos advierten en la pgina
de PHP sobre no colocar ningn nombre de directorio que contenga espacio,
pues algn servidor web puede dar problemas. Por ejemplo, cuidado con instalar
PHP en un directorio como este "c:\archivos de programa\php", pues en la ruta
tenemos directorios con espacios
Servidores Web
Daniel Rodrguez
62
tenemos directorios con espacios.
PHP: Copia de las DLL PHP: Copia de las DLL
A ti i i f b l id d d i A continuacin nos informan sobre la necesidad de copiar
en nuestro directorio de sistema una serie de libreras
( dll): php5apache2* dl l (.dll): php5apache2 . dl l
En Windows XP el directorio de sistema donde debemos En Windows XP, el directorio de sistema donde debemos
copiar las dll, es "C: \ WI NDOWS\ syst em32".
Nota: no se deben mezclar las DLL de diversas versiones de PHP,
porque de lo contrario, podra causarnos problemas.
El mencionado directorio de sistema puede variar de unas versiones a
otras de Windows.
Servidores Web
Daniel Rodrguez
63
PHP: Definir un archivo php. i ni e u a c o p p.
Ot hi d b i t t di t i Otro archivo que debemos copiar, esta vez en nuestro directorio
Windows, es el php. i ni , que guarda las opciones de configuracin
definidas para PHP.
En la distribucin de PHP se incluyen dos archivos php. i ni que
podemos utilizar directamente en nuestro sistema. Estos dos archivos
se llaman "php. i ni - di st " y "php. i ni - r ecommended" y contienen se llaman php. i ni di st y php. i ni r ecommended y contienen
unas opciones tpicas de configuracin de PHP.
Se recomienda utilizar "php.ini-recommended", porque viene optimizado para
obtener los mejores niveles de seguridad En cualquier caso podemos editar en obtener los mejores niveles de seguridad. En cualquier caso, podemos editar en
cualquier momento el contenido del archivo para modificar la configuracin de
PHP a nuestro gusto o necesidades.
Para definir el php.ini debemos hacer una copia del archivo de configuracin
escogido ("php.inidist o "php.ini-recommended") y renombrarlo como el
"php.ini". Posteriormente debemos copiarlo en nuestra carpeta Windows, que en
Windows XP es "c: \ wi ndows"
Servidores Web
Daniel Rodrguez
64
PHP: Editar httpd.conf PHP: Editar httpd.conf
P t i t d b dit l hi d fi i d Posteriormente deberemos editar el archivo de configuracin de
Apache aadiendo un par de lneas de configuracin del mdulo de
Apache.
LoadModul e php5_modul e C: / php/ php5apache2_2. dl l
AddType appl i cat i on/ x- ht t pd- php . php
Act i on appl i cat i on/ x- ht t pd- php " c: / php/ php. exe"
El lugar adecuado para aadir esas lneas es en el bloque de carga
de mdulos, que podemos encontrar si buscamos por el texto
LoadModul e Podemos aadir las lneas de carga del mdulo PHP LoadModul e. Podemos aadir las lneas de carga del mdulo PHP
despus de la carga de los otros mdulos que vienen ya configurados
en archivo ht t pd. conf de Apache.
Si i t l PHP l di t i \ h d b dit l Si no instalamos PHP en el directorio c: \ php, debemos editar las
lneas a colocar en el ht t pd. conf para colocar la ruta correcta al
directorio donde est php5apache2. dl l .
Servidores Web
Daniel Rodrguez
65
PHP: Comprobacin PHP: Comprobacin
A t d b b i PHP h i t l d t t Antes de acabar y probar si PHP se ha instalado correctamente,
necesitamos copiar una ltima dll en el directorio sapi .
Concretamente, la dll php5t s. dl l , que podemos encontrar en
nuestro directorio de instalacin de PHP "c: \ php\ ".
Para terminar, podemos crear una pgina de prueba de PHP, que
colocaremos en nuestro directorio de publicacin de Apache. colocaremos en nuestro directorio de publicacin de Apache.
Podemos crear un archivo llamado, por ejemplo, "prueba.php", en el
que colocaremos dentro el siguiente cdigo:
<? phpinfo()?> <? phpinfo()?>
Esta funcin simplemente crear una pgina de muestra de las
configuraciones definidas para PHP en ese servidor.
Para acceder al archivo creado desde nuestro explorador,
escribiremos en la barra de direcciones esta URL:
http://localhost/prueba.php
Servidores Web
Daniel Rodrguez
66
http://localhost/prueba.php
PHP: Comprobacin PHP: Comprobacin
Servidores Web
Daniel Rodrguez
67
Otra forma ms fcil en Windows Otra forma ms fcil en Windows
E i t di t ib i t t d j t Existen distribuciones que empaquetan todo junto en un
instalable para Windows. Por ejemplo:
EasyPHP EasyPHP
ht t p: / / www. easyphp. or g/
WampServer
ht t p: / / www. wampser ver . com/
Ambos instalan y configuran: y g
Apache +PHP +mySQL +mySQLAdmin
Servidores Web
Daniel Rodrguez
68
Seguridad en Servidores Web Seguridad en Servidores Web
A t d l t l d id d W b l t i l Antes de ver el protocolo de seguridad en Web, la terminologa
necesaria incluye:
Codificacin... expresar en un cdigo diferente
Criptologa
Criptografa... hacer ilegible la informacin
Criptoanlisis... violar un sistema criptogrfico
Esteganografa... ocultar informacin
Cifrar:
1. tr. Transcribir en guarismos, letras o smbolos, de acuerdo con una
clave, un mensaje cuyo contenido se quiere ocultar.
El la Web, el protocolo de comunicaciones SSL se utiliza para cifrar la
comunicacin entre dos equipos y autenticar a los participantes de la q p y p p
misma.
SSL es complejo, y a continuacin se describe superficialmente sus bases.
Servidores Web
Daniel Rodrguez
69
Criptografa simtrica (I)
k
AB
k
c=f(mk )
m=f
-1
(c k
-1
)
i t
p g ( )
k
AB
k
AB
c=f(m,k
AB
)
m=f (c,k
AB
)
criptograma
mensaje
mensaje
k
AB
?
DES, 3DES, AES, Twofish, IDEA...
Servidores Web
Daniel Rodrguez
70
Criptografa simtrica p g
Algoritmos conocidos Algoritmos conocidos
Una nica para ambos extremos
L l d b i t bi d La clave debe ser intercambiada
Ventajas
Proceso muy rpido
Requiere pocos recursos Requiere pocos recursos
Inconvenientes
G ti id d d l l Gestin y seguridad de las claves
Servidores Web
Daniel Rodrguez
71
Criptografa asimtrica (I) C ptog a a as t ca ( )
ee
A
e
B
d
A
d
B
c=f(m,e
B
)
m=g(c,d
B
)
criptograma
mensaje
mensaje
e saje
j
d
B
?
RSA
ElGamal ElGamal
...
Servidores Web
Daniel Rodrguez
72
Criptografa asimtrica
Algoritmos conocidos
Criptografa asimtrica
Dos claves complementarias por extremo
Clave pblica conocida y disponible Clave pblica conocida y disponible
Clave privada secreta
V t j Ventajas
Gestin de claves ms sencilla
Gran seguridad
Inconvenientes
Gran consumo de recursos
Servidores Web
Daniel Rodrguez
73
Sistemas hbridos - SSL
Sistema SSL:
Sistemas hbridos SSL
Sistema SSL:
Generacin de claves de sesin
I t bi i t i d l Intercambio asimtrico de claves
Cifrado simtrico de sesin
Servidores Web
Daniel Rodrguez
74
SSL SSL
Siempre que se utilice SSL estamos cifrando las comunicaciones extremo a Siempre que se utilice SSL estamos cifrando las comunicaciones extremo a
extremo, sin embargo el proceso de autenticacin requiere de una
configuracin con ms cuidado.
Si se desea autenticar al servidor es decir que los clientes tengan la certeza Si se desea autenticar al servidor, es decir, que los clientes tengan la certeza
de que se estn comunicando con el servidor que ellos desean, es necesario
utilizar un certificado emitido por una Entidad Emisora de Certificados
contrastable por los usuarios de nuestro sistema, o lo que es lo mismo, una
Entidad en la que los clientes confen y tengan la clave pblica de esta
instalada en su mquina.
Si esto no se produce, el uso de SSL ayuda a cifrar las comunicaciones pero
no ayudar a detectar un certificado falsoemitido por un atacante en medio no ayudar a detectar un certificado falso emitido por un atacante en medio.
Es por ello, aqu como muestra didctica nicamente, se utiliza un certificado emitido por
nosotros mismos, se recomienda utilizar un certificado de servidor emitido por una CA de
confianza para nuestros usuarios.
Con SSL, adems de autenticar el servidor, se pueden autenticar a los
clientes mediante certificados digitales a la hora de iniciar la conexin con
SSL, aunque esta no es una prctica muy extendida debido a la complejidad
en el despliegue y mantenimiento de los certificados de los clientes
Servidores Web
Daniel Rodrguez
75
en el despliegue y mantenimiento de los certificados de los clientes.
C i d l l l tifi d Creacin de las claves y los certificados:
l t h t k 1024 openssl genr sa - out host name. key 1024
openssl r eq - new - key host name. key - out
host name. csr - conf i g "c: \ Ar chi vos de
pr ogr ama\ Apache Sof t war e
Foundat i on\ Apache2. 2\ conf \ openssl . cnf "
openssl x509 - r eq - days 365 - i n host name. csr si gnkey
host name. key - out host name. cr t
Servidores Web
Daniel Rodrguez
76
Servidores Web
Daniel Rodrguez
77
C l tifi d di it l itid t l i Con el certificado digital emitido ya tenemos lo necesario
para configurar el soporte SSL en nuestro servidor web.
Lo primero que hemos de preparar el que el servidor Lo primero que hemos de preparar el que el servidor
Apache cargue el mdulo SSL.
Una vez cargado el modulo SSL en el servidor Apache, Una vez cargado el modulo SSL en el servidor Apache,
ahora deberemos configurar una serie de parmetros
para dar soporte a SSL a nivel de servidor o de Virtual
Host. Para ello se deben configurar las opciones en el
archivo
SSL iene acompaado de m chas opciones es recomendable para SSL viene acompaado de muchas opciones y es recomendable, para
ajustes especiales, consultar la documentacin de mod_ssl que est
disponible en la siguiente URL:
ht t p: / / ht t pd apache or g/ docs/ 2 2/ en/ mod/ mod ssl ht ml
Servidores Web
Daniel Rodrguez
78
ht t p: / / ht t pd. apache. or g/ docs/ 2. 2/ en/ mod/ mod_ssl . ht ml
Opciones de SSL Opciones de SSL
L i i t i t l fi i d b La siguiente opciones muestran las configuraciones que se deben
realizar para que nuestro servidor est funcionando correctamente:
SSLEngine on/off: Este parmetro activa el uso de SSL en nuestro servidor. Si,
la configuracin del servicio fuera errnea el soporte no se activara y puede
llegar a no levantar los demonios de Apache, luego es importante tener
f correctamente configurado el servicio antes de ponerlo activo.
SSLProtocol: Este parmetro se utiliza para determinar cules van a ser los
protocolos de cifrado que se van a utilizar en nuestro servidor. Hay que tener en
cuenta que cuando se produce el handshakeo saludo inicial entre el cliente y cuenta que cuando se produce el handshake o saludo inicial entre el cliente y
el servidor, estos negocian el protocolo a utilizar. Si no deseamos que se utilice
un protocolo antiguo o inseguro debemos deshabilitar el uso de todos a
excepcin de los protocolos seguros. Esta accin puede producir problemas de
acceso en clientes antiguos. La lista de protocolos que vienen con SSL son:
SSLv2, SSLv3, TLSv1.
Servidores Web
Daniel Rodrguez
79
Opciones de SSL Opciones de SSL

SSLCipherSuite: Una vez elegido el protocolo SSL a utilizar, en


mod_ssl podremos configurar las opciones de cifrado, para ello
d l i l l it d i d l d t d podemos elegir los algoritmos de generacin de clave, decantndonos
por el uso de RSA o de Diffie-Hellman con claves RSA o Diffie-Hellman
con claves DSA, etc As mismo podremos elegir los algoritmos de
firma de codificacin y las longitudes de cifrado a usar Es decir firma, de codificacin, y las longitudes de cifrado a usar. Es decir,
podemos realizar un ajuste fino de la criptografa que nos va a permitir
securizar las comunicaciones hasta nuestro deseo. Hay que tener en
cuenta que el deshabilitar ciertas opciones de cifrado puede generar cuenta que el deshabilitar ciertas opciones de cifrado puede generar
conflictos con clientes que no tengan una suite criptogrfica amplia y
moderna.
SSLOptions: Este parmetro se va a utilizar para configurar diferentes SSLOptions: Este parmetro se va a utilizar para configurar diferentes
comportamientos en diferentes situaciones. LA opcin +StrictRequire se
va a utilizar para deshabilitar el acceso por medio http a aquellas rutas
en las que se exija SSL
Servidores Web
Daniel Rodrguez
80
en las que se exija SSL
Opciones de SSL Opciones de SSL

SSLCertificateFile: Ruta al archivo del certificado del sitio


SSLCertificateKeyFile: Ruta al archivo key del certificado.
SSLCACertificateFile: El certificado digital de la Entididad
Certificadora.
SSLCARevocationFile: Archivo dnde se encuentra la CRL (Lista de SSLCARevocationFile: Archivo dnde se encuentra la CRL (Lista de
Certificados Revocados).
SSLRequire: Este parmetro se utiliza para exigir un cumplimiento de
opciones SSL a la hora de acceder a una determinada ruta del servidor opciones SSL a la hora de acceder a una determinada ruta del servidor.
Se utilizan expresiones regulares para poder afinar las restricciones.
SSLRequireSSL: Parmetro para forzar el uso de http-s en un
determinado directorio Si est configurada la opcin +St r i cRequi r e determinado directorio. Si est configurada la opcin +St r i cRequi r e
se prohibir el uso de http.
Servidores Web
Daniel Rodrguez
81
Ejemplo: Inclusin SSL en un servidor Ejemplo: Inclusin SSL en un servidor
SSL it d id i t l SSL necesita de servidores virtuales
(Se recomienda terminar la practica de servidores virtuales antes de
realizar esta otra))
Crear un directorio en segur o dentro de htdocs para
ponerlo en un servidor virtual
ht docs/ vhost 1/ segur o/
Servidores Web
Daniel Rodrguez
82
SSL: modificaciones ht t pd. conf SS od cac o es t t pd. co
Crear modificaciones en ht t pd conf : Crear modificaciones en ht t pd. conf :
Li st en 127. 0. 0. 1: 80
Li st en 127 0 0 1: 443 Li st en 127. 0. 0. 1: 443
Li st en 127. 0. 0. 1: 8080
Li st en 192. 168. 1. 55: 80
Li st en 192. 168. 1. 55: 8080
LoadModul e ssl _modul e modul es/ mod_ssl . so
#Par a compr obar el cor r ect o f unci onami ent o #Par a compr obar el cor r ect o f unci onami ent o
#de est a di r ect i va hay que #poner
#ht t p: / / 127. 0. 0. 1/ segur o/ i ndex. ht ml ( NO FUNCI ONA)
#ht t ps: / / 127. 0. 0. 1/ segur o/ i ndex. ht ml ( S FUNCI ONA)
<Di r ect or y " ht docs/ vhost 1/ segur o/ " >
SSLRequi r eSSL
</ Di r ect or y>
Servidores Web
Daniel Rodrguez
83
SSL:Modificaciones ht t pd- vhost s. conf SSL:Modificaciones ht t pd vhost s. conf
<Vi r t ual Host 127 0 0 1: 80> <Vi r t ual Host 127. 0. 0. 1: 80>
Ser ver Admi n admi n@127. 0. 0. 1
Document Root " ht docs/ vhost 1/ "
# Er r or Log " l ogs/ 127. 0. 0. 1- er r or _l og"
# Cust omLog " l ogs/ 127. 0. 0. 1- access_l og common"
# Par a que f unci one . ht access
<Di r ect or y " ht docs/ vhost 1/ " >
Al l owOver r i de Al l Al l owOver r i de Al l
</ Di r ect or y>
#Regl a de r eescr i t ur a par a poder acceder a l as pagi nas con SSL
Redi r ect / segur o/ ht t ps: / / 127. 0. 0. 1/ segur o/
</ Vi r t ual Host >
<Vi r t ual Host 127. 0. 0. 1: 443>
SSLEngi ne On
SSLCer t i f i cat eFi l e " openssl / usuar i o cr t " SSLCer t i f i cat eFi l e openssl / usuar i o. cr t
SSLCer t i f i cat eKeyFi l e " openssl / usuar i o. key"
Ser ver Name secur e. exampl e. or g
Document Root " ht docs/ vhost 1/ "
Servidores Web
Daniel Rodrguez
84
</ Vi r t ual Host >
Ejemplo: Usando SSL en un servidor Ejemplo: Usando SSL en un servidor
Servidores Web
Daniel Rodrguez
85
Ejemplo: Usando SSL en un servidor Ejemplo: Usando SSL en un servidor
Servidores Web
Daniel Rodrguez
86
Internet Information Server Internet Information Server
MS IIS (Internet Information Server) MS IIS (Internet Information Server)
T d l i t d fi Mi ft IIS Todo lo visto se puede configurar para Microsoft IIS
Para servidores profesionales, lo normal es utilizar
Windows Server que contine Windows Server, que contine
Windows 2003 Server
Servidor de archivos e impresin. p
Servidor web y aplicaciones Web.
Servidor de correo.
Terminal Server Terminal Server
Servidor de acceso remoto/red privada virtual (VPN).
Servidor de directorio, Sistema de dominio (DNS), y servidor
DHCP.
Servidor de transmisin de multimedia en tiempo real (Streaming).
Servidor de infraestructura para aplicaciones de negocios on-line
Servidores Web
Daniel Rodrguez
88
p p g
Familia Windows 2003 Server Familia Windows 2003 Server
Windows Server 2003 Standard Edition Windows Server 2003 Standard Edition
Soporta hasta 4 procesadores y la comparticin de archivos e impresoras.
Ofrece conectividad segura en Internet.
Permite la implementacin de aplicaciones centralizadas de escritorio.
Windows Server 2003 Enterprise Edition Windows Server 2003 Enterprise Edition
Es un sistema operativo completo de servidor que soporta hasta ocho procesadores.
Ofrece funciones de tipo clase-empresarial tales como clustering de cuadro nodos y soporta
hasta 32 GB de memoria.
Disponible para ordenadores con Intel Itanium.
Windows Server 2003 Datacenter Edition
Es el sistema operativo de servidor ms potente y funcional que Microsoft haya ofrecido.
Soporta hasta 32 vas SMP y 64 GB de RAM. Ofrece clustering de ocho nodos y servicios de
balanceo de carga como funciones estndar. Plataformas de 64 bit capaz de soportar 32
procesadores y 128GB de RAM procesadores y 128 GB de RAM.
Windows Server 2003 Web Edition
Est diseado para crear y alojar aplicaciones Web, pginas Web y servicios Web XML.
Est diseado para ser usado principalmente como un servidor Web IIS 6.0
Ofrece una plataforma rpida de desarrollo e implementacinde servicios y aplicaciones Ofrece una plataforma rpida de desarrollo e implementacin de servicios y aplicaciones
Web XML que usan la tecnologa ASP.NET, como parte principal del sistema .NET
Framework.
Servidores Web
Daniel Rodrguez
89
Instalacin IIS Instalacin IIS
E l P l d t l l i l i d "A En el Panel de control, seleccionar la opcin de "Agregar
o quitar programas" y despus "Seleccionar o quitar
componentes de Windows" componentes de Windows .
Servidores Web
Daniel Rodrguez
90
Instalacin IIS Instalacin IIS
E t En componentes:
Servidores Web
Daniel Rodrguez
91
Instalacin IIS Instalacin IIS
Al i l A h d Al igual que en Apache, se accede como:
ht t p: / / l ocal host ht t p: / / 127. 0. 0. 1 /
Servidores Web
Daniel Rodrguez
92
Administracin de IIS Administracin de IIS
P d i i t IIS Wi d XP di d Para administrar IIS en Windows XP, disponemos de un
panel decontrol llamado "Servicios de Internet Information
Serverbien: Server bien:
Pulsando con el botn derecho en MI PC y seleccionando la opcin que
pone "Administrar". Esto nos abre "Microsoft Management Console" y
desde ah accedemos a "Servicios y aplicaciones" entre los que desde ah accedemos a "Servicios y aplicaciones", entre los que
encontraremos: "Servicios de Internet Information Server"
Desde el panel de control.
Ejecutando en consola "inetmgr.exe".
Servidores Web
Daniel Rodrguez
93
Administracin de IIS Administracin de IIS
Servidores Web
Daniel Rodrguez
94
Documentos por defecto Documentos por defecto
E IIS i d fi id i i i l hi En IIS viene definido en un principio en los archivos
def aul t . asp, def aul t . ht mo i ndex. ht m
Se puede cambiar desde las propiedades: Se puede cambiar desde las propiedades:
Servidores Web
Daniel Rodrguez
95
Y d d i d d Y desde propiedades:
Servidores Web
Daniel Rodrguez
96
Directorios virtuales en IIS Directorios virtuales en IIS
P d fi i di t i i t l l l b t Para definir un directorio virtual se pulsar con el botn
derecho del ratn sobre el sitio web en el que queremos
definirlo y seleccionar "Nuevo >Directorio Virtual " definirlo y seleccionar Nuevo >Directorio Virtual... .
Entonces aparece un asistente quenos guiar paso a paso en el
proceso
Servidores Web
Daniel Rodrguez
97
Directorios virtuales en IIS Directorios virtuales en IIS
A i t t Asistente:
Servidores Web
Daniel Rodrguez
98
Seguridad y certificados en IIS Seguridad y certificados en IIS
1 En el Administrador de IIS expanda el equipo local y despus expanda la 1. En el Administrador de IIS, expanda el equipo local y, despus, expanda la
carpeta Sitios Web.
2. Haga clic con el botn secundario en el sitio Web para el que desea
obtener un certificado de servidor comodn y a continuacin haga clic en obtener un certificado de servidor comodn y, a continuacin, haga clic en
Propiedades.
3. En la ficha Seguridad de directorios, en Comunicaciones seguras, haga
clic en Certificado de servidor.
4. En el Asistente para certificados de servidor Web, haga clic en Crear un
certificado nuevo.
5. Siga el Asistente para certificados de servidor Web, el cual le guiar a lo g p , g
largo del proceso de peticin de un nuevo certificado de servidor. En la
pgina Nombre comn de su sitio, escriba un nombre en el cuadro de
dilogo Nombre comn, con el siguiente formato:
* <nombr eDeSi t i o> por ejemplo * cont oso com *. <nombr eDeSi t i o>, por ejemplo, *. cont oso. com.
De forma predeterminada, el archivo de peticin de certificado se guarda como
C: \ Cer t r eq. t xt , pero el asistente permite especificar una ubicacin diferente.
6. Haga clic en Finalizar para completar el asistente.
Servidores Web
Daniel Rodrguez
99
g p p
Seguridad y certificados en IIS Seguridad y certificados en IIS
En http://support microsoft com/kb/299875/es En http://support.microsoft.com/kb/299875/es
contiene la informacin sobre seguridad en IIS.
Para instalacin de un certificado: Para instalacin de un certificado:
1. Abra el Administrador de servicios Internet y expanda el nombre de servidor
para poder ver los sitios Web.
2. Haga clic con el botn secundario en el sitio Web para el que cre la solicitud de
tifi d h li P i d d certificado y haga clic en Propiedades.
3. Haga clic en la ficha Seguridad de directorios. En Comunicaciones seguras,
haga clic en Certificado de servidor. Esto inicia el Asistente para la instalacin
de certificados. Haga clic en Siguiente para continuar en Siguiente.
4 S l i P l i i di i l l ifi d h li 4. Seleccione Procesar la peticin pendiente e instalar el certificado y haga clic en
Siguiente.
5. Tipo en Siguiente, seccin entonces hace clic la ubicacin del certificado de
descargar en "el problema y descarga un certificado". El Asistente muestra el
R d l tifi d C b l i f i t t Resumen del certificado. Compruebe que la informacin es correcta entonces
haga clic en Siguiente para continuar en Siguiente.
6. Haga clic en Finalizar
Servidores Web
Daniel Rodrguez
100
Seguridad y certificados en IIS Seguridad y certificados en IIS
Configure y pruebe el certificado Configure y pruebe el certificado
1. En la ficha Seguridad de directorios en Comunicaciones seguras, anote que hay
ahora tres opciones disponibles. Para establecer el sitio Web para requerir
conexin segura, haga clic en Modificar. El cuadro de dilogo Comunicaciones g , g g
seguras aparece.
2. Seleccione Requerir canal seguro y haga clic en Aceptar.
3. Haga clic en Aplicar y a continuacin en Aceptar para cerrar la hoja de
propiedades propiedades.
4. Examine al sitio y compruebe que funciona. Para ello:
Tenga acceso al sitio a travs de HTTP escribiendo
http://localhost/Postinfo.html En el explorador. Aparecer un mensaje de http://localhost/Postinfo.html En el explorador. Aparecer un mensaje de
error similar al siguiente: HTTP 403.4 - Forbidden: SSL required.
Intente explorar a la misma pgina Web que utiliza unas conexiones
seguras (HTTPS) escribiendo https://localhost/postinfo.html En el
explorador Puede recibir un alerta de seguridad que indica que el explorador. Puede recibir un alerta de seguridad que indica que el
certificado no es que se sigue produciendo a la pgina Web desde una raz
de confianza S Click de CA. Si la pgina aparece, ha instalado su
certificado correctamente.
Servidores Web
Daniel Rodrguez
101