Вы находитесь на странице: 1из 23

Ejecucin de aplicaciones con CGI

Para
P poder
d ejecutar
j t aplicaciones
li i externas,
t se puede
d
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 Apache
el servidor HTTP

Servidores Web
Daniel Rodrguez 13

Apache Apache Mdulos

L
La arquitectura
it t del
d l servidor
id A Apache
h es modular.
d l El servidor
id consta
t dde
un nucleo (core) y mucha de la funcionalidad que podra considerarse
Su nombre se debe a que originalmente Apache consista solamente bsica para un servidor Web es provista por mdulos.
en un conjunto de parches a aplicar al servidor de NCSA. Era, en Por ejemplo, modulos de la funcionalidad bsica incluyen:
ingls, a patchy server (un servidor "parcheado"). mod_ssl - Comunicaciones Seguras va TLS.
od_rewrite
mod e te - reescritura
eesc u a de ddirecciones
ecc o es se
servidas
das (ge
(generalmente
ea e eu utilizado
ado pa
para
a
El servidor
id Apache
A h se d desarrolla
ll d
dentro
t d dell proyecto
t HTTP Server
S transformar pginas dinmicas como php en pginas estticas html para as
(httpd) de la Apache Software Foundation. engaar a los navegantes o a los motores de bsqueda en cuanto a como
Apache
p p
presenta entre otras caractersticas mensajesj de error fueron desarrolladas estas pginas).
altamente configurables, bases de datos de autenticacin y mod_dav - Soporte del protocolo WebDAV (RFC 2518).
mod_deflate - Compresin transparente con el algoritmo deflate del contenido
negociado de contenido, pero fue criticado por la falta de una interfaz
enviado al cliente.
grfica que ayude en su configuracin. mod_auth_ldap - Permite
P it autentificar
t tifi usuarios
i contrat un servidor
id LDAP.
LDAP
Modular, Open source, Multi-plataforma, Extensible, Popular (fcil mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de
conseguir ayuda y soporte) y gratuito . pginas dinmicas en Java (servlets y JSP).

Servidores Web Servidores Web


Daniel Rodrguez 15 Daniel Rodrguez 16
Modulos no bsicos (externos) Instalacin Apache (en Windows)

El servidor
id ded base
b puede
d ser extendido
t did con lal inclusin
i l i http://httpd.apache.org/
h //h d h /
de mdulos externos entre los cuales se encuentran:
mod perl - Pginas dinmicas en Perl
mod_perl Perl.
mod_php - Pginas dinmicas en PHP.
mod_python - Pginas dinmicas en Python.
mod_rexx - Pginas dinmicas en REXX y Object REXX.
mod_ruby - Pginas dinmicas en Ruby.
g
mod_mono - Pginas dinmicas en Mono
mod_security - Filtrado a nivel de aplicacin, para seguridad.

Servidores Web Servidores Web


Daniel Rodrguez 17 Daniel Rodrguez 18

Apache Arranque y parada

Arranque
A y parada
d ddell servicio
i i

y se comprueba con el navegador

Servidores Web Servidores Web


Daniel Rodrguez 19 Daniel Rodrguez 20
Aadir el dir /bin al PATH Herramientas de configuracion

La
L Web
W b principal
i i l ded la
l ddocumentacin
t i d dell proyecto
t es:
http://httpd.apache.org/docs/2.2/
Otra de las pginas donde podemos obtener ayuda es:
http://www.apache-tools.com/
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:
http://www.comanche.org/
htt // h /

Servidores Web Servidores Web


Daniel Rodrguez 21 Daniel Rodrguez 22

Directivas bsicas de configuracin Archivo


c o httpd.conf
ttpd.co

Directorio
Di t i de d instalacin:
i t l i El archivo
hi d de configuracin
fi i principal
i i ld de apache
h es

httpd.conf

Comprobacin de la sintxis del archivo httpd.conf:

httpd -w -t -f c:\Apache2.2\conf\httpd.conf

htt d -w -t
httpd t

Servidores Web Servidores Web


Daniel Rodrguez 23 Daniel Rodrguez 24
Instalacin de mdulos dinmicos Ejemplo Mdulos dinmicos: WebDAV

Apache
A h es un servidor
id W Web
b modular
d l
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 modules que se encuentra dentro del
p
directorio de instalacin de Apache.
En el caso de WebDAV, se encuentra dentro de la distribucin
estndar de Apache.

Servidores Web Servidores Web


Daniel Rodrguez 25 Daniel Rodrguez 26

Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV

El siguiente
i i t paso que ttenemos que d
dar es cargar ell Posteriormete,
Posteriormete incluir al final del archivo httpd.conf:
httpd conf:
mdulo de forma dinmica. #Inclusin de mod_dav
Para ello descomentamos la siguiente lnea (o se crea si es que no Include conf/extra/httpd
conf/extra/httpd-dav
dav.conf
conf
exista):
En el archivo conf/extra/httpd-dav.conf incluiremos las
#L dM d l d
#LoadModule dav_module
d l modules/mod_dav.so
d l / d d directivas propias del mdulo WevDAV:

#CUIDADO: El directorio var debe existir


Adems, es conveniente activar los siguientes mdulos: p
DavLockDB "C:/Apache2.2/var/DavLock"
DAVMinTimeout 600
Alias /test-dav "C:/Apache2.2/htdocs/test-dav"
LoadModule dav_fs_module modules/mod_dav_fs.so <Directory "C:/Apache2.2/htdocs/test-dav">
Dav On
LoadModule deflate_module modules/mod_deflate.so Order Allow,Deny
Allow from all
</Directory>

Servidores Web Servidores Web


Daniel Rodrguez 27 Daniel Rodrguez 28
Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV

En
E la
l barra
b de
d estado
t d del
d l monitor
it de
d A
Apacheh ahora
h se Comprobacin
C b i d de mod_dav
d d mediante
di t ell explorador
l d d de
muestra que est habilitado DAV versin 2. 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: http://127.0.0.1/test-dav/

Servidores Web Servidores Web


Daniel Rodrguez 29 Daniel Rodrguez 30

Ejemplo Mdulos dinmicos: WebDAV Ejemplo Mdulos dinmicos: WebDAV

Servidores Web Servidores Web


Daniel Rodrguez 31 Daniel Rodrguez 32
Servidores virtuales (Virtual hosts) Ejemplo. Servidores Virtuales

El t
trmino
i H Hostt Vi
Virtual
t l se refiere
fi a lla prctica
ti d de ejecutar
j t Creacin
C i dde d
dos Hosts
H t Virtuales,
Vi t l
ms de un sitio Web en la misma mquina: 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


Servidores virtuales por nombre desde la lnea de comandos con:

Servidores virtuales por IP >ipconfig

Servidores virtuales por PUERTO Modificaciones en httpd.conf:


httpd conf:

Listen 127.0.0.1:80
Li t
Listen 192 168 1 55 80
192.168.1.55:80
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Servidores Web Servidores Web


Daniel Rodrguez 33 Daniel Rodrguez 34

Ejemplo. Servidores Virtuales Ejemplo. Servidores Virtuales

Modificaciones en conf/extra/httpd-vhosts.conf
f/ t /htt d h t f: Comprobar
C b ell archivo
hi d de configuracin:
fi i

<VirtualHost 127.0.0.1>
127 0 0 1>
ServerAdmin admin@127.0.0.1
DocumentRoot "C:/Apache2.2/htdocs/vhost1/"
ErrorLog "logs/127.0.0.1-error_log"
</VirtualHost>

<VirtualHost 192.168.1.55>
ServerAdmin admin@192.168.1.55
DocumentRoot "C:/Apache2.2/htdocs/vhost2/"
/ h 2 2/h d / h 2/
ErrorLog "logs/192.168.1.55-error_log"
</VirtualHost>

Servidores Web Servidores Web


Daniel Rodrguez 35 Daniel Rodrguez 36
Ejemplo 2. Servidores Virtuales Ejemplo 2. Servidores Virtuales
Modificaciones en conf/extra/httpd-vhosts.conf

<VirtualHost 127.0.0.1:80>
Creacin
C i d de cuatro
t HHosts
t Vi
Virtuales,
t l uno para lla iip ServerAdmin admin@127.0.0.1
DocumentRoot "htdocs/vhost1/"
127.0.0.1 y el otro para la ip de la red local, adems # ErrorLog "logs/127.0.0.1-error_log"
utilizar el p
puerto 80 y 8080 p
para distinguirlos.
g # CustomLog "logs/127.0.0.1-access_log common"
</VirtualHost>
<VirtualHost 127.0.0.1:8080>
ServerAdmin admin@127.0.0.1
DocumentRoot "C:/Apache2.2/htdocs/vhost2/"
Modificaciones en httpd.conf: # ErrorLog "logs/127.0.0.1-error_log"
Li t
Listen 127
127.0.0.1:80
0 0 1 80 # CustomLog "logs/127.0.0.1-access_log
/ common"
</VirtualHost>
Listen 127.0.0.1:8080 <VirtualHost 192.168.1.55:80>
Listen 192.168.1.55:80 ServerAdmin admin@192.168.1.55
Listen 192.168.1.55:8080 DocumentRoot "C:/Apache2.2/htdocs/vhost3/"
ErrorLog "logs/192.168.1.55-error_log"
# CustomLog "logs/192.168.1.55_log common"
</VirtualHost>
<VirtualHost 192.168.1.55:8080>
# Virtual hosts ServerAdmin admin@192.168.1.55
admin@192 168 1 55
Include conf/extra/httpd-vhosts.conf DocumentRoot "C:/Apache2.2/htdocs/vhost4/"
# ErrorLog "logs/192.168.1.55-error_log"
# CustomLog "logs/192.168.1.55_log common"
</VirtualHost>

Servidores Web Servidores Web


Daniel Rodrguez 37 Daniel Rodrguez 38

Ejemplo 2. Servidores Virtuales Ejemplo 2. Servidores Virtuales

Comprobar
C b ell correcto
t ffuncionamiento
i i t

Servidores Web Servidores Web


Daniel Rodrguez 39 Daniel Rodrguez 40
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)

Se realiza mediante los ficheros .htaccess


htaccess y asociados (.htpasswd,
( htpasswd
.htgroup y .htdigest)
La creacin de un fichero de usuarios y contraseas se efectua con la orden:

htpasswd -c fichero 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
grupos, generalmente llamado
llamado.htgroups
htgroups 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:

vendedores:alberto
otros:alberto jaime

Servidores Web Servidores Web


Daniel Rodrguez 41 Daniel Rodrguez 42

Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)

Contenido
C t id d dell archivo
hi .htaccess
h ( poner en cada
(a d Protegiendo
P t i d llos archivos
hi .htaccess
h y .htgroup
h en ell
directorio que queramos proteger) : fichero httpd.conf (suele estar activado por defecto) :

AuthType Basic # The following lines prevent .htaccess and .htpasswd


AuthName Contrasea requerida para entrar (.htaccess)" # files from being viewed by Web clients.
AuthUserFile "C:/Apache2.2/password/users" #
AuthGroupFile "C:/Apache2.2/password/groups" <Files ~ "^\.ht">
Require Group vendedores , y
Order allow,deny
Deny from all
</Files>

Servidores Web Servidores Web


Daniel Rodrguez 43 Daniel Rodrguez 44
Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)

Utilizando los archivos .htaccess


ht y .htgroups.
ht Hay que copiar los
archivos .ht* al directorio que queremos proteger con usuario y
contrasea.
Posteriormente
P t i t hay
h que incluir
i l i lla di
directiva
ti AllowOverride.
All O id

<VirtualHost 127.0.0.1:80>
ServerAdmin admin@127.0.0.1
DocumentRoot "htdocs/vhost1/"
# ErrorLog "logs/127.0.0.1-error_log"
# C
CustomLog
t L "l
"logs/127.0.0.1-access_log
/127 0 0 1 l common"
"
# Para que funcione .htaccess
<Directory "htdocs/vhost1/">
AllowOverride All
</Directory>
</VirtualHost>

Servidores Web Servidores Web


Daniel Rodrguez 45 Daniel Rodrguez 46

Autenticacin de usuarios (Basic) Autenticacin de usuarios (Basic)

Las siguientes lneas son anlogas a la utilizacin de .ht*


ht* pero Para
P comprobarlo
b l h hay que renombrar
b ell
mejoran la eficiencia.
# prueba de autenticacin severa alberto archivo .htaccess y comprobar que en la pantalla en la
que pide la contrasea ya no est escrito ((.htaccess).
htaccess)
<Directory "C:/Apache2.2/htdocs/vhost1/sensible">
Satisfy All
AuthType Basic
AuthName "Entrar al directorio de documentacin sensible"
#user = alberto, pass = alberto
AuthUserFile "C:/Apache2.2/password/users"
# grupos existentes: vendedores
vendedores, otros
AuthGroupFile "C:/Apache2.2/passwrod/groups"
Require group vendedores
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

Servidores Web Servidores Web


Daniel Rodrguez 47 Daniel Rodrguez 48
Autenticacin de usuarios (digest) Autenticacin de usuarios (digest)

Para
P lla autenticacin
t ti i utilizando
tili d ell algoritmo
l it di
digest
t (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 c ] passwdfile realm username
-c - Crea el archivo de contraseas
Nota: si existe se BORRA y se crea vaco.
Passwdfile - Nombre
N b d dell archivo
hi en ell que guardarn
d llas
contraseas
Realm - Reino al que pertenece el nombre de usuario.
Username - Nombre
N b d de usuarioi que se d
desea crear, sii no existe
i t se
crea una nueva entrada en el archivo, pero si existe tan solo se
actualiza su password.

Servidores Web Servidores Web


Daniel Rodrguez 49 Daniel Rodrguez 50

Autenticacin de usuarios (digest) Gestin de Registros (logs)

# pr
prueba
eba de autenticacin
a tenticacin severa
se era Alberto
La
L configuracin
fi i d
de llos registros
i t d
de acceso y llos eventos
t
<Directory "C:/Apache2.2/htdocs/vhost1/sensible_digest">
Satisfy All que ser producen en un servidor Web son de especial
AuthType Digest importancia pues pueden ayudar a:
# Este es el reino al que debe pertenecer el usuario
g
#debe estar escrito EXACTAMENTE igual q
que en la lnea htdigest
g Monitorizar la utilizacin del sistema
file REINO nombre
AuthName "autenticacion-digest"
AuthUserFile "C:/Apache2.2/passwrod/users.digest" Detectar preventivamente un ataque al sistema, una debilidad que est
A thG
AuthGroupFile
Fil "C
"C:/Apache2.2/passwrod/groups"
/A h 2 2/ d/ " siendo explotada
Require group vendedores
Order deny,allow
Deny
y from all Fallo en la configuracin o en el sistema.
Allow from 127.0.0.1
Require valid-user

</Directory>
Servidores Web Servidores Web
Daniel Rodrguez 51 Daniel Rodrguez 52
Tipos de registros Registro de errores

Apache
A h gestiona,
ti por d
defecto,
f t tres
t tipos
ti de
d registros:
i t El registro
i t d de errores se guarda
d en un fifichero
h que es
marcado por la directiva errorlog.
El registro de errores Esta directiva tambin puede utilizarse para
para, en lugar de guardar la
informacin en ficheros, utilizar el servicio syslog para registrar los
Registro de acceso eventos va red y de forma centralizada.
El uso d
dell servicio
i i syslog
l ser
dde especial
i l utilidad
tilid d cuando
d
Registro del identificador del proceso (PID) del demonio del servicio. tenemos sistemas de anlisis de log centralizados o de
correlacin de eventos
eventos.
Apache permite una seleccin flexible de lo que se quiere ErrorLog /ruta/ficheros/log/error_log
guardar p
g por registro,
g , dnde y en el formato en q
que se va

a guardar esta informacin. ErrorLog syslog:user

Servidores Web Servidores Web


Daniel Rodrguez 53 Daniel Rodrguez 54

Registro de errores Registros de acceso

El nivel de informacin que se va a almacenar en los ficheros de Los


L registros
i t d
de acceso all servidor
id se almacenan
l aparte
t
registro se configura con la directiva LogLevel en la que se pueden
ajustar diferentes valores: de los errores del servidor.
- Emerg: Slo se almacenan los mensajes que dejan al sistema incapaz de ser Estos registros guardan informacin relativa a todos los accesos a
utilizado. documentos o intentos de acceso a los documentos.
- Alert: Cuando se produce un error en el sistema que requiere la ejecucin
inmediata de una accin para corregirlo. Para almacenar estar informacin Apache se apoya en el
- Crit: Fallos crticos del sistema. No requieren accin inmediata pero pueden uso de dos mdulos, que son:
dejar el sistema no disponible.
- Error: Condiciones de error en el uso del sistema. No tiene porque afectar al mod_log_confing: se utiliza para configurar el lugar y el formato de
uso del sistema.
sistema los ficheros de registro
- Warn: Avisos. Se producen cuando algo no est realizndose correctamente. mod_setenvif: para utilizar variables de entorno que permitan
Puede producirse por un script o un cliente que no realiza la negociacin generar ficheros de registro condicionales, que sern muy tiles a la
correctamente con el servidor.
hora de detectar sucesos en entornos con mucho trfico
trfico.
- Notice: Informacin significativa del funcionamiento del sistema.
- Info: Informacin general del sistema.
- debug: Informacin de debuging del sistema. Cuando abre o cierra conexiones o
ficheros etc
ficheros, etc

Servidores Web Servidores Web


Daniel Rodrguez 55 Daniel Rodrguez 56
Registros de acceso

Para
P configurar
fi los
l registros
i t d
de acceso utilizamos
tili llas C
Con lla di
directiva
ti L LogFormat
F t se puede
d crear ell fformato
t dde fi
fichero
h llog
directivas LogFormat y CustomLog. utilizando estas variables o aadiendo informacin de cabeceras del
LogFormat determina que informacin se va a escribir y de qu forma, cliente como:
en el fichero de registro. LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-
agent}i\"" miformato
La forma comn es tiene esta estructura:
LogFormat "%h
%h %l %u %t \
\"%r\"
%r\ %>s %b"
%b common Aqu hemos aadido %{Referer} y %{User-Agent} al formato de
registro y hemos quitado %I y %u.
Parametros:
%h: IP del cliente.
Una vez definido el formato que a utilizar hemos de marcar el lugar
%I: Identificacin del cliente utilizando el servido indentd.
de registro con:
CustomLog /ruta/logs/access_log miformato
%u: Usuario cliente.
%t: Fecha y hora. Podemos crear tantos ficheros de log como deseemos, as por
%r: Peticin realizada ejemplo,
j l en uno podemos
d almacenar
l lla di
direccin
i IP y lla h
hora y en
%s: Cdigo de status del servidor. otro la direccin IP, la peticin y el referer, etc
p
%b: Tamao de la respuesta.

Servidores Web Servidores Web


Daniel Rodrguez 57 Daniel Rodrguez 58

Control de Logs

Los
L fificheros
h d
de llog suelen
l ttener un rpido
id crecimiento
i i t por Es
E iimportante
t t ell uso del
d l pipe
i | para la
l di
direccin
i dde llos
lo que deben ser controlados y tener un mantenimiento registros de logs.
muy ajustado.
ajustado
Para ello se pueden utilizar los sistemas de log rotacionales, que En este ejemplo se utilizan las variables de fechar %Y (year), %m
permiten, utilizando el programa externo rotatelog crear archivos (month), %d (day), para crear un nuevo archivo de log cada 50 MB de
automticos cada cierto tamao o tiempo
tiempo. tamao.
tamao
Para ello definimos en ErrorLog el formato de los ficheros:

ErrorLog "| bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 50M"


O directamente con CustomLog,
CustomLog que crear
logapache.nnnn (nnnn el tiempo de creacin):

CustomLog "|bin/rotatelogs /rutalogs/logapache 50M" miformato

Servidores Web Servidores Web


Daniel Rodrguez 59 Daniel Rodrguez 60
Generacin de contenido dinmico PHP: Descargar y descomprimir PHP

Consiste
C i t en lla ejecucin
j i en ell servidor
id d de programas. El primer
i paso consiste
i t en d
descargar lla lti
ltima versin
i dde PHP
PHP.
Podremos hacerlo desde la pgina oficial de PHP, en la seccin de
descargas.
Como ejemplo, se muestra como instalar el PHP para http://www.php.net/downloads.php
poder crear pginas dinmicas Debemos elegir la versin "zip package" que contiene todas las
funcionalidades de PHP y el mdulo necesario para instalarlo en
Apache. Una vez descargado el paquete comprimido en .zip de PHP
PHP funciona con el mdulo mod_php necesitamos descomprimirlo en nuestro disco duro.
Podemos utilizar el directorio raz del disco duro para descomprimir los archivos
archivos.
http://www.php.net/manual/es/install.windows.manual.php 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.
espacios

Servidores Web Servidores Web


Daniel Rodrguez 61 Daniel Rodrguez 62

PHP: Copia de las DLL PHP: Definir


e un
u archivo
a c op php.ini
p.

A continuacin
ti i nos iinforman
f sobre
b lla necesidad
id d dde copiar
i Ot
Otro archivo
hi que d debemos
b copiar,
i estat vez en nuestro
t di
directorio
t i
Windows, es el php.ini, que guarda las opciones de configuracin
en nuestro directorio de sistema una serie de libreras
definidas para PHP.
( dll): php5apache2
(.dll): php5apache2*.dll dll
En la distribucin de PHP se incluyen dos archivos php.ini que
podemos utilizar directamente en nuestro sistema. Estos dos archivos
En Windows XP XP, el directorio de sistema donde debemos se llaman "php.ini-dist"
php.ini dist y "php.ini-recommended"
php.ini recommended y contienen
copiar las dll, es "C:\WINDOWS\system32". unas opciones tpicas de configuracin de PHP.
Se recomienda utilizar "php.ini-recommended", porque viene optimizado para
Nota: no se deben mezclar las DLL de diversas versiones de PHP, obtener los mejores niveles de seguridad
seguridad. En cualquier caso
caso, podemos editar en
porque de lo contrario, podra causarnos problemas. cualquier momento el contenido del archivo para modificar la configuracin de
El mencionado directorio de sistema puede variar de unas versiones a PHP a nuestro gusto o necesidades.
otras de Windows. 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:\windows"

Servidores Web Servidores Web


Daniel Rodrguez 63 Daniel Rodrguez 64
PHP: Editar httpd.conf PHP: Comprobacin

P
Posteriormente
t i t deberemos
d b editar
dit ell archivo
hi d de configuracin
fi i dde A
Antes
t ded acabar
b y probarb sii PHP se h ha iinstalado
t l d correctamente,
t t
Apache aadiendo un par de lneas de configuracin del mdulo de necesitamos copiar una ltima dll en el directorio sapi.
Apache. Concretamente, la dll php5ts.dll, que podemos encontrar en
LoadModule php5_module C:/php/php5apache2_2.dll nuestro directorio de instalacin de PHP "c:\php\".
AddType application/x-httpd-php .php Para terminar, podemos crear una pgina de prueba de PHP, que
Action application/x-httpd-php "c:/php/php.exe"
colocaremos en nuestro directorio de publicacin de Apache.
El lugar adecuado para aadir esas lneas es en el bloque de carga Podemos crear un archivo llamado, por ejemplo, "prueba.php", en el
de mdulos, que podemos encontrar si buscamos por el texto que colocaremos dentro el siguiente cdigo:
LoadModule Podemos aadir las lneas de carga del mdulo PHP
LoadModule. <? phpinfo()?>
despus de la carga de los otros mdulos que vienen ya configurados Esta funcin simplemente crear una pgina de muestra de las
en archivo httpd.conf de Apache. configuraciones definidas para PHP en ese servidor.
Si no iinstalamos
t l PHP en ell di
directorio
t i c:\php,
\ h debemos
d b editar
dit llas Para acceder al archivo creado desde nuestro explorador,
lneas a colocar en el httpd.conf para colocar la ruta correcta al escribiremos en la barra de direcciones esta URL:
directorio donde est php5apache2.dll. http://localhost/prueba.php

Servidores Web Servidores Web


Daniel Rodrguez 65 Daniel Rodrguez 66

PHP: Comprobacin Otra forma ms fcil en Windows

Existen
E i t di distribuciones
t ib i que empaquetan
t ttodo
d jjunto
t en un
instalable para Windows. Por ejemplo:
EasyPHP
http://www.easyphp.org/
WampServer
http://www.wampserver.com/

Ambos instalan y configuran:


g
Apache + PHP + mySQL + mySQLAdmin

Servidores Web Servidores Web


Daniel Rodrguez 67 Daniel Rodrguez 68
Seguridad en Servidores Web Criptografa
p g simtrica ((I))

A
Antes
t ded ver ell protocolo
t l dde seguridad
id d en W
Web,
b lla tterminologa
i l
kAB c=f(m kAB)
c=f(m,k m=f-1(c,k
(c kAB-1) kAB
i t
criptograma
necesaria incluye:
Codificacin... expresar en un cdigo diferente
Criptologa
Criptografa... hacer ilegible la informacin
mensaje mensaje
Criptoanlisis... violar un sistema criptogrfico
Esteganografa... ocultar informacin
Cifrar: kAB?
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
q p y autenticar a los p
comunicacin entre dos equipos participantes
p de la
misma.
z DES, 3DES, AES, Twofish, IDEA...
SSL es complejo, y a continuacin se describe superficialmente sus bases.

Servidores Web Servidores Web


Daniel Rodrguez 69 Daniel Rodrguez 70

Criptografa
p g simtrica Criptografa
C ptog a a asimtrica
as t ca (I)
( )

z Algoritmos conocidos eA
z Una nica para ambos extremos eB

z L clave
La l d
debe
b ser iintercambiada
t bi d dA c=f(m,eB) m=g(c,dB) dB
criptograma
z Ventajas
Proceso muy rpido
Requiere pocos recursos mensaje
e saje mensaje
j
z Inconvenientes z RSA
dB?
G ti y seguridad
Gestin id d d
de llas claves
l z ElGamal
z ...

Servidores Web Servidores Web


Daniel Rodrguez 71 Daniel Rodrguez 72
Criptografa asimtrica Sistemas hbridos - SSL
z Algoritmos conocidos z Sistema SSL:
z Dos claves complementarias por extremo Generacin de claves de sesin
Clave pblica conocida y disponible I t
Intercambio
bi asimtrico
i t i d de claves
l
Clave privada secreta Cifrado simtrico de sesin
z V t j
Ventajas
Gestin de claves ms sencilla
Gran seguridad
z Inconvenientes
Gran consumo de recursos

Servidores Web Servidores Web


Daniel Rodrguez 73 Daniel Rodrguez 74

SSL

Siempre que se utilice SSL estamos cifrando las comunicaciones extremo a Creacin
C i dde llas claves
l y llos certificados:
tifi d
extremo, sin embargo el proceso de autenticacin requiere de una
configuracin con ms cuidado.
Si se desea autenticar al servidor,
servidor es decir,
decir que los clientes tengan la certeza openssl
l genrsa -out
t h
hostname.key
t k 1024
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 openssl req -new -key hostname.key -out
Entidad en la que los clientes confen y tengan la clave pblica de esta hostname.csr -config "c:\Archivos de
instalada en su mquina. programa\Apache Software
Si esto no se produce, el uso de SSL ayuda a cifrar las comunicaciones pero Foundation\Apache2.2\conf\openssl.cnf"
no ayudar a detectar un certificado falso
falso emitido por un atacante en medio
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 openssl x509 -req -days 365 -in hostname.csr signkey
confianza para nuestros usuarios. hostname.key -out hostname.crt
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
clientes.

Servidores Web Servidores Web


Daniel Rodrguez 75 Daniel Rodrguez 76
Con
C ell certificado
tifi d digital
di it l emitido
itid ya ttenemos llo necesario
i
para configurar el soporte SSL en nuestro servidor web.
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,
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 viene
iene acompaado de m muchas
chas opciones y es recomendable
recomendable, para
ajustes especiales, consultar la documentacin de mod_ssl que est
disponible en la siguiente URL:
http://httpd apache org/docs/2 2/en/mod/mod ssl html
http://httpd.apache.org/docs/2.2/en/mod/mod_ssl.html

Servidores Web Servidores Web


Daniel Rodrguez 77 Daniel Rodrguez 78

Opciones de SSL Opciones de SSL

L
La siguiente
i i t opciones
i muestran
t llas configuraciones
fi i que se d
deben
b
realizar para que nuestro servidor est funcionando correctamente: SSLCipherSuite: Una vez elegido el protocolo SSL a utilizar, en
mod_ssl podremos configurar las opciones de cifrado, para ello
podemos
d elegir
l i llos algoritmos
l it d
de generacin
i d de clave,
l d
decantndonos
t d
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 por el uso de RSA o de Diffie-Hellman con claves RSA o Diffie-Hellman
llegar a no levantar los demonios de Apache, luego es importante tener con claves DSA, etc As mismo podremos elegir los algoritmos de
correctamente configurado
f el servicio antes de ponerlo activo. firma de codificacin,
firma, codificacin y las longitudes de cifrado a usar
usar. Es decir
decir,
SSLProtocol: Este parmetro se utiliza para determinar cules van a ser los podemos realizar un ajuste fino de la criptografa que nos va a permitir
protocolos de cifrado que se van a utilizar en nuestro servidor. Hay que tener en securizar las comunicaciones hasta nuestro deseo. Hay que tener en
cuenta que cuando se produce el handshake
handshake o saludo inicial entre el cliente y cuenta que el deshabilitar ciertas opciones de cifrado puede generar
el servidor, estos negocian el protocolo a utilizar. Si no deseamos que se utilice conflictos con clientes que no tengan una suite criptogrfica amplia y
un protocolo antiguo o inseguro debemos deshabilitar el uso de todos a moderna.
excepcin de los protocolos seguros. Esta accin puede producir problemas de
acceso en clientes antiguos. La lista de protocolos que vienen con SSL son: SSLOptions: Este parmetro se va a utilizar para configurar diferentes
SSLv2, SSLv3, TLSv1. 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 Servidores Web


Daniel Rodrguez 79 Daniel Rodrguez 80
Opciones de SSL Ejemplo: Inclusin SSL en un servidor

SSL necesita
it dde servidores
id virtuales
it l
SSLCertificateFile: Ruta al archivo del certificado del sitio (Se recomienda terminar la practica de servidores virtuales antes de
SSLCertificateKeyFile: Ruta al archivo key del certificado. realizar esta otra))
SSLCACertificateFile: El certificado digital de la Entididad
Certificadora.
Crear un directorio en seguro dentro de htdocs para
SSLCARevocationFile: Archivo dnde se encuentra la CRL (Lista de
Certificados Revocados). ponerlo en un servidor virtual
SSLRequire: Este parmetro se utiliza para exigir un cumplimiento de htdocs/vhost1/seguro/
opciones SSL a la hora de acceder a una determinada ruta del servidor
servidor.
Se utilizan expresiones regulares para poder afinar las restricciones.
SSLRequireSSL: Parmetro para forzar el uso de http-s en un
determinado directorio
directorio. Si est configurada la opcin +StricRequire
se prohibir el uso de http.

Servidores Web Servidores Web


Daniel Rodrguez 81 Daniel Rodrguez 82

SSL: modificaciones
SS od cac o es httpd.conf
ttpd.co SSL:Modificaciones httpd
httpd-vhosts.conf
vhosts.conf

Crear modificaciones en httpd.conf:


httpd conf: <VirtualHost 127.0.0.1:80>
127 0 0 1:80>
ServerAdmin admin@127.0.0.1
DocumentRoot "htdocs/vhost1/"
Listen 127.0.0.1:80
# ErrorLog "logs/127.0.0.1-error_log"
Listen 127.0.0.1:443
127 0 0 1:443
# CustomLog "logs/127.0.0.1-access_log common"
Listen 127.0.0.1:8080
# Para que funcione .htaccess
Listen 192.168.1.55:80
<Directory "htdocs/vhost1/">
Listen 192.168.1.55:8080
AllowOverride All
</Directory>
LoadModule ssl_module modules/mod_ssl.so
#Regla de reescritura para poder acceder a las paginas con SSL
Redirect /seguro/ https://127.0.0.1/seguro/
#Para comprobar el correcto funcionamiento
</VirtualHost>
#de esta directiva hay que #poner
<VirtualHost 127.0.0.1:443>
#http://127.0.0.1/seguro/index.html (NO FUNCIONA)
SSLEngine On
#https://127.0.0.1/seguro/index.html (S FUNCIONA)
SSLCertificateFile "openssl/usuario
openssl/usuario.crt
crt"
<Directory "htdocs/vhost1/seguro/">
SSLCertificateKeyFile "openssl/usuario.key"
SSLRequireSSL
ServerName secure.example.org
</Directory>
DocumentRoot "htdocs/vhost1/"
</VirtualHost>
Servidores Web Servidores Web
Daniel Rodrguez 83 Daniel Rodrguez 84
Ejemplo: Usando SSL en un servidor Ejemplo: Usando SSL en un servidor

Servidores Web Servidores Web


Daniel Rodrguez 85 Daniel Rodrguez 86

MS IIS (Internet Information Server)

Todo
T d lo
l visto
i t se puede
d configurar
fi para Mi
Microsoftft IIS
Para servidores profesionales, lo normal es utilizar
Windows Server
Server, que contine
Windows 2003 Server
p
Servidor de archivos e impresin.
Internet Information Server Servidor web y aplicaciones Web.
Servidor de correo.
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 ppara aplicaciones
p de negocios
g on-line

Servidores Web
Daniel Rodrguez 88
Familia Windows 2003 Server Instalacin IIS

Windows Server 2003 Standard Edition


Soporta hasta 4 procesadores y la comparticin de archivos e impresoras.
En
E ell P
Panell d
de control,
t l seleccionar
l i lla opcin
i dde "A
"Agregar
Ofrece conectividad segura en Internet.
Permite la implementacin de aplicaciones centralizadas de escritorio. o quitar programas" y despus "Seleccionar o quitar
Windows Server 2003 Enterprise Edition componentes de Windows"
Windows .
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 128 GB de RAM
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 implementacin de servicios y aplicaciones
Web XML que usan la tecnologa ASP.NET, como parte principal del sistema .NET
Framework.

Servidores Web Servidores Web


Daniel Rodrguez 89 Daniel Rodrguez 90

Instalacin IIS Instalacin IIS

En
E componentes:
t Al iiguall que en A
Apache,
h se accede
d como:
http://localhost http://127.0.0.1 /

Servidores Web Servidores Web


Daniel Rodrguez 91 Daniel Rodrguez 92
Administracin de IIS Administracin de IIS

Para
P administrar
d i i t IIS en Windows
Wi d XP,
XP disponemos
di d
de un
panel decontrol llamado "Servicios de Internet Information
Server bien:
Server
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"
aplicaciones", entre los que
encontraremos: "Servicios de Internet Information Server"
Desde el panel de control.
Ejecutando en consola "inetmgr.exe".

Servidores Web Servidores Web


Daniel Rodrguez 93 Daniel Rodrguez 94

Documentos por defecto

En
E IIS viene
i d fi id en un principio
definido i i i en llos archivos
hi Yd
desde
d propiedades:
i d d
default.asp, default.htm o index.htm
Se puede cambiar desde las propiedades:

Servidores Web Servidores Web


Daniel Rodrguez 95 Daniel Rodrguez 96
Directorios virtuales en IIS Directorios virtuales en IIS

Para
P d
definir
fi i un di
directorio
t i virtual
i t l se pulsar
l con ell b
botn
t Asistente:
A i t t
derecho del ratn sobre el sitio web en el que queremos
definirlo y seleccionar "Nuevo
Nuevo > Directorio Virtual
Virtual...".
Entonces aparece un asistente quenos guiar paso a paso en el
proceso

Servidores Web Servidores Web


Daniel Rodrguez 97 Daniel Rodrguez 98

Seguridad y certificados en IIS Seguridad y certificados en IIS

1 En el Administrador de IIS
1. IIS, expanda el equipo local yy, despus
despus, expanda la En http://support.microsoft.com/kb/299875/es
http://support microsoft com/kb/299875/es
carpeta Sitios Web. contiene la informacin sobre seguridad en IIS.
2. Haga clic con el botn secundario en el sitio Web para el que desea
obtener un certificado de servidor comodn yy, a continuacin
continuacin, haga clic en Para instalacin de un certificado:
Propiedades. 1. Abra el Administrador de servicios Internet y expanda el nombre de servidor
3. En la ficha Seguridad de directorios, en Comunicaciones seguras, haga para poder ver los sitios Web.
clic en Certificado de servidor. 2. Haga clic con el botn secundario en el sitio Web para el que cre la solicitud de
certificado
tifi d y h haga clicli en P
Propiedades.
i d d
4. En el Asistente para certificados de servidor Web, haga clic en Crear un 3. Haga clic en la ficha Seguridad de directorios. En Comunicaciones seguras,
certificado nuevo. haga clic en Certificado de servidor. Esto inicia el Asistente para la instalacin
g el Asistente p
5. Siga para certificados de servidor Web,, el cual le g
guiar a lo de certificados. Haga clic en Siguiente para continuar en Siguiente.
largo del proceso de peticin de un nuevo certificado de servidor. En la 4 Seleccione
4. S l i P
Procesar lla peticin
i i pendiente
di e iinstalar
l ell certificado
ifi d y hhaga clic
li en
Siguiente.
pgina Nombre comn de su sitio, escriba un nombre en el cuadro de
5. Tipo en Siguiente, seccin entonces hace clic la ubicacin del certificado de
dilogo Nombre comn, con el siguiente formato: descargar en "el problema y descarga un certificado". El Asistente muestra el
* <nombreDeSitio> por ejemplo
*.<nombreDeSitio>, ejemplo, *.contoso.com.
* contoso com R
Resumen d
dell certificado.
tifi d C Compruebeb que lla iinformacin
f i es correctat entonces
t
De forma predeterminada, el archivo de peticin de certificado se guarda como haga clic en Siguiente para continuar en Siguiente.
C:\Certreq.txt, pero el asistente permite especificar una ubicacin diferente. 6. Haga clic en Finalizar
6. Haga
g clic en Finalizar p
para completar
p el asistente.

Servidores Web Servidores Web


Daniel Rodrguez 99 Daniel Rodrguez 100
Seguridad y certificados en IIS

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
g , haga
conexin segura, g clic en Modificar. El cuadro de dilogo
g Comunicaciones
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
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.
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

Вам также может понравиться