Está en la página 1de 39

INSTALACIÓN y

ADMINISTRACIÓN DEL
SERVIDOR WEB APACHE

2010 - José María Moro Olmedo


Introducción a Apache

 Introducción a Apache
 Resumen de Instalación de
Apache
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Introducción a Apache WEB SERVER

 SERVIDOR WEB HTTP/1.1 DE CÓDIGO ABIERTO PARA MÚLTIPLES PLATAFORMAS


 Se desarrolla en 1995 como una serie de parches (de ahí su nombre) aplicados al
servidor web de la NCSA HTTPd.
 EL SERVIDOR APACHE SE ENGLOBA DENTRO DEL PROYECTO HTTP SERVER (HTTPD)
DE LA APACHE SOFTWARE FOUNDATION.
 Se caracteriza por su estructura modular y por la implementación de tecnología de
servidor virtual que permite alojar y servir páginas de varios sitios con dominios
distintos en el mismo servidor.

 Carece de interfaz gráfica y


su configuración se realiza
modificando uno o varios
ficheros de configuración

 LA VERSIÓN ESTABLE
RECOMENDADA
ACTUALMENTE DEL SERVIDOR
ES LA 2.2

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Resumen de Instalación de Apache (I) WEB SERVER

DESCARGA DE APACHE DESDE


 http://httpd.apache.org/
 Descargar desde Download! from a mirror:
 Elegir la versión estable más reciente
• 2.2.17 (19/10/2010)
• Para esta versión se nos ofrecen varias versiones para
descargar, para Unix o Win32, fuentes o binarios y con o sin
soporte SSL.
 Elegimos la opción de binarios para Win32 que incluye
modssl precompilado:
• Ofrece soporte para para que podamos configurar el acceso seguro
al servidor mediante https
• Aunque tendremos que descargar e instalar openssl para generar los
certificados.
2010 - José María Moro Olmedo
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Resumen de Instalación de Apache (II) WEB SERVER

 INSTALACIÓN Y CONFIGURACIÓN DE APACHE:


 Ejecutar el archivo bajado y seguir las instrucciones
• Introducir la información requerida:
• Network Domain: localhost o nombre dns asignado (ej. midominio.local)
• Server name: localhost o nombre dns (ej www.midominio.local)
• Administrator’s Email Address: webmaster@midominio.local
 Instalar como servicio (puerto 80),para arrancar con el inicio de
Windows.
 Seleccionar instalación típica e instalar en la carpeta por defecto,
c:\Archivos de Programa\Apache Software Foundation\apache2.2
• Se crea el grupo de programas Apache HTTP Server 2.2
• Arrancar el servidor:
• Inicio > Programas > Apache HTTP Server 2.2 > Control Apache Server > Start
 Ejecutar el navegador y cargar http://localhost/
• Si sale la página de inicio del servidor (It Works!), la instalación habrá sido
correcta.

2010 - José María Moro Olmedo


Configuración básica de Apache

 Configuración básica de
Apache
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Configuración básica de Apache(I) WEB SERVER

 ARCHIVO DE CONFIGURACIÓN
 La configuración de Apache se hace modificando un archivo que contiene las
directivas de configuración básica del servidor:
• httpd.conf: ubicado en c:\Archivos de Programa\Apache Software
Foundation\Apache2.2\conf
 En el grupo de programas de inicio hay un acceso directo para editarlo
directamente:
• Inicio > Programas > Apache HTTP Server 2.2 > Configure Apache Server > Edit the
Apache httpd.conf Configuration File
 EL ARCHIVO DE CONFIGURACIÓN CONSTA DE 3 BLOQUES PRINCIPALES:
 Entorno global.
• Incluye las directivas que gestionan el funcionamiento general del servidor.
• Incluye directivas para cargar módulos con funciones adicionales.
 Entorno del servidor principal.
• Incluye las directivas que gestionan el comportamiento predeterminado del servidor.
• Incluye además la configuración de los módulos que se hayan cargado.
 Configuración suplementaria:
 Incluye las rutas de acceso a otros ficheros de configuración con directivas para
configurar las funciones de otros módulos (p.ej. SSL).

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Configuración básica de Apache(II) WEB SERVER

 CUALQUIER CAMBIO EN EL ARCHIVO SUPONE REINICIAR EL SERVICIO PARA QUE SE


APLIQUE.
 EJEMPLO: PRIMER CAMBIO:
 Cambiar la ubicación inicial del sitio global del servidor:
• Controlada por la directivaDocumentRoot
• Por defecto es c:/Archivos de Programa/Apache Software Foundation/Apache2.2/htdocs)
• Modificar para albergar en una ubicación adecuada (ej. otraunidad:/www)
 Comprobar acceso a la página principal de la nueva ubicación. ¿Se accede?

 ACCESO A LOS ARCHIVOS SERVIDOS POR APACHE DESDE LOS CLIENTES


 Se controla mediante directivas contenidas en bloques <Directory ruta> </Directory>
 Si queremos que los archivos de un directorio sean visibles debemos crearle un
contenedor directory menos restrictivo que el que viene por defecto:
<Directory /> No confundir como barra de la etiqueta.
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

2010 - José María Moro Olmedo


Directivas de configuración de Apache

 Directivas de entorno global


 Directivas de servidor principal
 Directivas de servidor principal
 Acceso a los logs del servidor
 Errores personalizados
 Directivas de contenedor
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directivas de entorno global WEB SERVER

 ServerRoot /RUTA DIRECTORIO RAÍZ PARA EL SERVIDOR.


 Directorio donde reside el servidor.
 Es el directorio que se toma como base para hacer referencia a
otros archivos de configuración o cargar módulos adicionales.
 Listen PUERTO/DIR IP.
 Identifica los puertos y direcciones por los que el servidor
aceptará peticiones entrantes. Por defecto son 80/443 para
conexiones no seguras/seguras.

 LoadModule NOM_MOD RUTA_MOD.


 Carga el módulo que le indiquemos en esa ruta.
 En windows los módulos están precompilados, de manera que
para utilizar alguno de los instalados con Apache sólo se debe
descomentar su línea.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directivas de servidor principal WEB SERVER

 DIRECTIVAS CORRESPONDIENTES AL SERVIDOR POR DEFECTO:


 Servidor que responde a cualquier petición no respondida por los hosts virtuales (si
hubiera)
 En el caso de disponer de hosts virtuales estas directivas pueden aparecer en el
contenedor de cada host virtual y tendrían precedencia sobre las generales.
 SERVERNAME DNS:PUERTO.
 Define el nombre de servidor y puerto que se enviará a los clientes. No tiene que
coincidir con el nombre real de la maquina, pero debe ser un nombre de dominio que
pueda ser resuelto por un servidor dns.
 DOCUMENTROOT RUTA_AL DIRECTORIO_CON_LOS_ARCHIVOS DEL SITIO.
 Directorio que contiene los archivos html para enviar a los clientes en respuesta a sus
peticiones.
 DIRECTORYINDEX DOC.
 Cuando se produce una petición que termina en /, es decir, un directorio, el servidor
mostrará la página que indiquemos aquí. Por defecto es index.html.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directivas de servidor principal WEB SERVER

 SERVERADMIN E-MAIL.
 Esta dirección de correo aparecerá en los mensajes de error generados por el
servidor.
 <IFMODULE MÓDULO> </IFMODULE>
 Crea un contenedor que se activa si se carga el módulo especificado.
 DEFAULTTYPE TIPO.
 Indica al servidor el tipo MIME del archivo que va a servir cuando
no pueda deducirlo de su extensión o de su cabecera.
• Por defecto es plain/text. Una alternativa habitual es text/html.
 Está relacionado con el módulo mime, que permite asociar un tipo
mime a una extensión para que el agente de usuario la interprete
correctamente. (p.ej extensiones de PHP)
• Ej. AddType application/x-httpd-php php html

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Acceso a los logs del servidor WEB SERVER

 ACCESO A LOS LOGS DEL SERVIDOR


 Apache crea por defecto dos logs además del de instalación, y los almacena por defecto en la
carpeta log:
• Log común (de acceso de clientes) y log de errores.
 LAS DIRECTIVAS ERRORLOG Y CUSTOMLOG
 Determina el archivo donde se guardan ambos logs, y la información que contienen.
 LA DIRECTIVA LOGLEVEL ESTABLECE EL NIVEL DE EVENTOS QUE SE VA CAPTURAR
 (debug, info, notice, warn, error, crit, alert, emerg)
 No es recomendable dejar activado un nivel alto de log por la carga que supone en el servidor.
 LA DIRECTIVA LOGFORMAT CREA UN FORMATO DETERMINADO QUE SE PUEDE APLICAR A AMBOS
ARCHIVOS.

• %A Dirección Ip local • %u Usuario remoto en conexiones


• %h Dirección Ip remota autenticadas
• %p Puerto TCP por el que se recibió la • %v Nombre del servidor
petición • %l Nivel de log %r Descripción del evento
• %t Fecha y hora • %s Código HTTP
• %b Bytes enviados
 EJEMPLO:
 LogFormat "%h %l %u %t \"%r\" %>s %b" common
 LogFormat “Ip del cliente = %h; hora %t” miformato
 ErrorLog "logs/error.log"
 LogLevel warn
 CustomLog "logs/access.log" common

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Errores personalizados (I) WEB SERVER

 APACHE PERMITE PERSONALIZAR LAS PÁGINAS DE ERROR


 Se muestran en el caso de que se genere un error en la comunicación
HTTP(p.ej. 404 archivo no encontrado)
 Si no se configura es el agente de usuario el que carga una página
predeterminada de error al recibir una respuesta HTTP con un código de error,
ej:
Request URL:
http://www.misitio.com/noexisto.html
Request Method:
GET
Status Code:
404 Not Found

 DIRECTIVA ERRORDOCUMENT
 ErrorDocument 404 URI o texto de error
 Ej. ErrorDocument 404 noencontrado.html
 IE Y CHROME NO MUESTRAN PÁGINAS DE ERROR PERSONALIZADAS
 De menos de 512bytes de tamaño.
Rellenar con comentarios para alcanzar el límite mínimo de tamaño.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directivas de contenedor(I) WEB SERVER

 SE CREAN PARA DEFINIR Y AGRUPAR LAS DIRECTIVAS QUE AFECTAN A LOS DIRECTORIOS A
LOS QUE TIENE ACCESO NUESTRO SERVIDOR.
<Directory “ruta”>
Options opciones
AllowOverride opciones
Order opciones
Allow opciones
Deny opciones
</Directory>
 ALLOW Y DENY DEFINEN QUIÉN PUEDE ACCEDER AL DIRECTORIO:
 All. Permite o deniega a todos.
 Dirección IP[/netmask][IP[/netmask]]...
 Nombre de Dominio
 Ejemplo: Allow from 10.1.2.3/16
Allow from 192.168.1.104 192.168.1.205

 ORDER.
 allow,deny.
• Primero se evalúan las reglas allow:
o Al menos una debe casar o se rechaza la petición.
• Después se evalúan las reglas deny:
o Si casa alguna se rechaza la petición.
 deny, allow.
• Primero se evalúan las reglas deny:
• Si casa alguna se rechaza la petición SALVO que coincida con alguna regla allow:
• Si no casa con ninguna regla deny o allow se permite la petición

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directivas de contenedor(II) WEB SERVER

 DIRECTIVA OPTIONS:
 ESPECIFICA OPCIONES DE ACCESO AL CONTENEDOR EN EL QUE SE
APLICAN:
 None: ninguna opción. Si no existe una página por defecto se
prohibe el acceso.
 All: todas las opciones (excepto Multiviews).
 Indexes. Permite ver el contenido del directorio aunque no haya
página de inicio.
 Includes. Activa SSI (shtml) para los archivos del directorio.
 FollowSymLinks. Sigue los enlaces simbólicos entre este directorio
y otro.
 SymLinksIfOwnerMatch. Solo si coincide el propietario del enlace
y del destino.
 ExcecCGI. Permite la ejecución de scripts CGI.
 Multiviews. Utilizado desde el módulo de negociación para
mostrar páginas en distintos idiomas.
2010 - José María Moro Olmedo
Archivos .htacces

 Archivos .htacces
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Archivos .htaccess (I) WEB SERVER

 SON UNA ALTERNATIVA PARA PODER ALMACENAR DIRECTIVAS FUERA DEL


ARCHIVO DE CONFIGURACIÓN HTTPD.CONF
 Se ubican en los directorios del servidor donde se quieren aplicar sus
directivas.
 En el contenedor de cada directorio se debe permitir su uso mediante la
directiva AllowOverride con alguno de los siguientes valores:
• None para no permitir el uso de .htaccess en el directorio
• All para permitir el uso de .htaccess en el directorio y subdirectorios.
• AuthConfig para permitir directivas de autenticación.
• FileInfo para directivas de control de tipos de archivo.
• Indexes para directivas relacionadas con el listado de directorios.
• Limit para las directivas de control de acceso (Allow, Deny y Order). Options[=Option,...]
para directivas específicas de directorioSe utilizan cuando el administrador del sitio no
controla el servidor web, pero quiere poder aplicar directivas a su sitio.
 EL NOMBRE DE .HTACCESS SE UTILIZA POR CONVENIO
 Se puede modificar el archivo que busca el servidor mediante la directiva
AccessFileName nuevo_nombre_de_archivo_de_directivas

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Archivos .htaccess(II) WEB SERVER

 EL USO DE DIRECTIVAS MEDIANTE .HTACCESS NO ESTÁ RECOMENDADO EN GENERAL


 EN EL CASO DE TENER ACCESO A LA CONFIGURACIÓN DEL SERVIDOR DIRECTAMENTE NO
ES RECOMENDABLE SU USO
 Porque el servidor tiene que procesar las directivas del archivo httpd.conf y además
mirar en cada directorio si existen estos archivos para procesar sus directivas.
 El uso de htaccess supone una sobrecarga para el servidor
• una petición de un URI buscaría los archivos .htaccess de todos los directorios y subdirectorios
incluidos en el URI para construir el conjunto de directivas.
• Ej. http://midominio.com/interno/noticias/2009/economia/21102009.html
 SÓLO SE RECOMIENDA SU USO PARA EL CASO DE QUE EL ADMINISTRADOR DEL SITIO NO
TENGA ACCESO A LA CONFIGURACIÓN DEL SERVIDOR WEB
 Pero quiere poder aplicar directivas a su sitio.
 Normalmente los proveedores de espacio web permiten el uso de archivos .htaccess
para el propósito anterior.
 SE DEBE DESACTIVAR LA BÚSQUEDA DE .HTACCESS EN TODOS LOS DIRECTORIOS
 Utlizando AllowOverride None en el directorio por defecto, y activarlo sólo para los
directorios en los que sean necesarios.

2010 - José María Moro Olmedo


Directivas de Alias y redirección

 Directiva Alias
– Directiva Alias -ejemplo
 Directiva Redirect
– Directiva Redirect -
Configuración
– Directiva Redirect -
Configuración
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directiva Alias WEB SERVER

 PERMITE ACCEDER A CONTENIDO ALOJADO EN EL PROPIO SERVIDOR PERO


NORMALMENTE FUERA DEL DOCUMENTROOT
 Se establece en la configuración de servidor
• Se crea el alias utilizando la directiva:
alias ruta_del_sitio ruta_en_el_sistema_de_archivos
 Ej. Alias /imagen /ftp/pub/imagen
• Sólo se expande el alias en coincidencias completas.
o En el ejemplo anterior coincidiría http://myserver/imagen/foto.gif pero no
http://myserver/imagenfoto.gif
 COMO RUTA DEL SISTEMA DE ARCHIVOS SE PUEDE UTILIZAR TANTO UN
DIRECTORIO COMO UN ARCHIVO.
 Si se utiliza una barra final en el alias debe incluirse también en la ruta al
directorio:
• ej. Alias /icons/ /usr/local/apache/icons/
o En general no es recomendable porque haría que una petición a http://myserver/icons
no se redirigiese.
 Si el destino del alias está fuera del documentRoot
• Supone crear un contenedor <directory> para establecer los permisos de acceso al nuevo
contenido.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directiva Alias -ejemplo WEB SERVER

 QUEREMOS ACCEDER AL LISTADO DE DOCUMENTOS CONTENIDOS EN EL


DIRECTORIO "NUEVO" FUERA DE DOCUMENTOROOT UTILIZANDO EL
ALIAS MIDOMINIO/NUEVO
 Al acceder debe mostrarse la lista de archivos del directorio.
 Modificar para que se muestre el archivo listado.txt (directoryIndex)
 QUEREMOS ACCEDER A UN ARCHIVO UBICADO EN LA CARPETA NUEVO Y
QUE SE LLAMA NUEVO.TXT UTILIZANDO EL ALIAS MIDOMINIO/NUEVO
 Si se accede a midominio/nuevo/ debe dar error.
 QUEREMOS ACCEDER AL ARCHIVO ANTERIOR (NUEVO.TXT) UTILIZANDO
EL ALIAS MIDOMINIO/NUEVO
 tanto con como sin barra al final.
 QUEREMOS ACCEDER AL ARCHIVO ANTERIOR CON EL ALIAS
MIDOMINIO/NUEVO
 Si se accede a midominio/nuevo/ queremos mostrar el archivo
listado.txt

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directiva Redirect WEB SERVER

 SE UTILIZA PARA INDICAR AL AGENTE DE USUARIO QUE EL URI SOLICITADO


EXISTE EN OTRA UBICACIÓN:
 Puede ser una ubicación del propio servidor o más frecuentemente una
ubicación externa.
 Normalmente se utiliza cuando es necesario ampliar el espacio web o se está
haciendo una migración de un sitio web a otro y la nueva ubicación está en
otro dominio.
 Las redirecciones en el servidor antiguo aseguran que los agentes de usuario se
dirigen al sitio correcto.
• No son penalizadas por los motores de búsqueda.
 EVITA QUE EL AGENTE DE USUARIO TENGA QUE DESCARGAR EL CONTENIDO DE
UNA PÁGINA (ETIQUETA META REFRESH)
 Para ver que se ha movido y tener que hacer una nueva solicitud.
 Las redirecciones de meta refresh cuentan para los buscadores como páginas
distintas y por tanto se penaliza el posicionamiento.
 MEDIANTE LAS REDIRECCIONES DE HTTP SE LE FACILITA AL AGENTE DE USUARIO
LA NUEVA DIRECCIÓN SIN QUE DESCARGUE CONTENIDO.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directiva Redirect - Configuración WEB SERVER

redirect [código de estado] url-path url


 url-path es el uri a partir del nombre de dominio solicitado por
el agente de usuario.
• Debe comenzar por barra e incluir toda la ruta desde el raíz de
documentRoot
 url es la nueva ubicación y debe ser una ruta absoluta del tipo
http://…
 Ejemplo:
 Redirigir temporalmente de una página a otra:
Redirect /service http://foo2.example.com/service
• Si se solicita http://example.com/service/foo.txt, se indicará la
nueva ubicación como http://foo2.example.com/service/foo.txt
 LAS DIRECTIVAS DE REDIRECCIÓN TIENEN PRECEDENCIA SOBRE LAS DE
ALIAS
 A diferencia de Alias el nuevo URI se muestra en la barra de direcciones
del agente de usuario.
 Con Alias no se modifica el URI original pero se muestra el contenido de
la nueva página.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Directiva Redirect - Configuración WEB SERVER

 CÓDIGO DE ESTADO: PUEDE SER UNO DE LOS SIGUIENTES:


 permanent
• Devuelve el código de redirección permanente(301)
• El agente de usuario debería recordar la respuesta y solicitar el nuevo URI
en peticiones posteriores.
 temp
• Devuelve el código de redirección temporal(302).
• Es el comportamiento por defecto, se da cuando se espera que en el futuro
el URI antiguo vuelva a estar disponible.
 seeother
• Devuelve el código (303) que indica que el recurso ha sido reemplazado por
otro y se debe volver a hacer una nueva petición (como con meta refresh).
 gone
• Devuelve el código de estado(410)
• Indica que el recurso ya no está disponible, por lo que no se puede indicar
una ubicación alternativa.

2010 - José María Moro Olmedo


Host Virtuales

 Host Virtuales
 Configuración de host
virtuales por IP
 Configuración de host
virtuales por Nombre
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Host Virtuales WEB SERVER

 APACHE PERMITE ALOJAR VARIOS SITIOS WEB SEPARADOS EN UN MISMO


SERVIDOR MEDIANTE EL USO DE HOST VIRTUALES
 Los host o servidores virtuales se pueden configurar de dos maneras: por
nombre o por IP.

 HOSTS VIRTUALES BASADO EN NOMBRE.


 A una misma dirección IP se le asignan varios dominios.
 A cada uno de estos dominios se les asignará un servidor virtual.
 El servidor identifica a qué dominio se ha hecho la petición a través del campo
host de la cabecera HTTP (solo compatible con http v1.1)

 HOSTS VIRTUALES BASADOS EN DIRECCIONES IP.


 Se asocia cada servidor virtual a una dirección IP diferente.
• Solamente se podrá utilizar en el caso de que el servidor tenga varias direcciones IP
asignadas.
o En el caso de un servidor con presencia pública (Internet) el proveedor debe habernos
asignado varias Ips públicas.
o Un servidor podría ofrecer el sitio de la intranet a través de su IP privada, y el sitio global al
exterior a través de su IP Pública, y ambos por el mismo puerto 80.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Configuración de host virtuales por IP WEB SERVER

 ES LA CONFIGURACIÓN VIRTUAL MÁS SENCILLA.


 Sólo hay que asegurarse de que se reserva una Ip de uso exclusivo para el
servidor virtual:
 Con la directiva Listen especificamos tantas direcciones IP y puertos como
vayamos a utilizar para los distintos hosts.
Ej. Listen 192.168.1.10:80
Listen 192.168.1.10:8080
Listen 192.168.1.11:80
ó Listen *:80
• En caso de que hubiese más servidores virtuales configurados para la misma IP y el
mismo puerto sólo respondería el primero que aparezca en la configuración.
 SE CONFIGURA EL CONTENEDOR <VIRTUALHOST>
 Se especifican la dirección y puerto para los que se va a escuchar en el
contenedor:
<virtualHost 192.168.1.10:80> //debe coincidir con algún Listen
ServerName www.ejemplovirtualip.local //Opcional, no influye
documentRoot e:\virtual3 // indica el raíz del nuevo sitio
</virtualHost>
• Dentro de la configuración de host virtual se pueden incluir la mayoría de directivas
utilizables en el servidor principal.
• Deberá haber un contenedor directory que especifique la configuración del directorio del
documentRoot para el host Virtual

2010 - José María Moro Olmedo


Configuración de host virtuales por INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
WEB SERVER
Nombre (I)
 Debe indicarse la IP que van a compartir los hosts basados en nombre:
 Con la directiva Listen especificamos la dirección o direcciones IP que vayamos a
utilizar para los distintos hosts.
Ej. Listen 192.168.1.10
ó Listen *:80
 Para indicar que una dirección IP va a ser compartida por distintos hosts se
configura la directiva NameVirtualHost:
NameVirtualHost 192.168.1.10
• Si especificasemos NameVirtualHost * indicaríamos que se pueden configurar host virtuales
por nombre para cualquier dirección por la que escucha el servidor.
 SE CONFIGURA EL CONTENEDOR <VIRTUALHOST>
 la IP del contenedor tiene que coincidir con la de alguna directiva NameVirtualHost
<virtualHost 192.168.1.10>
ServerName www.ejemplovirtual1.local
documentRoot e:\virtual1
<Directory "e:\virtual1">

</Directory>
</virtualHost>
• Si se especifica un puerto en un virtualHost debe especificarse también en el resto de
VirtualHost que compartan la misma ip.
• Dentro de la configuración de host virtual se pueden incluir la mayoría de directivas utilizables
en el servidor principal.
• Deberá haber un contenedor directory que especifique la configuración del directorio del
documentRoot para el host Virtual

2010 - José María Moro Olmedo


Configuración de host virtuales por INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
WEB SERVER
Nombre(II)
 LA DIRECTIVA SERVERNAME ES OBLIGATORIA EN ESTE CASO
 Puesto que es la que distingue a qué host virtual de los posibles asociados a la misma IP se dirige la
petición del cliente. (Se basa en la directiva Host de la cabecera http1.1.)
 En caso de que el cliente no especificase el host en la petición o se encontrase un host virtual
asociado a la petición:
• Se respondería desde el primer host virtual por nombre asociado a la dirección IP de la petición.
 A TENER EN CUENTA
 Si existen servidores virtuales asociados a la misma dirección IP y puerto que el servidor principal
(servidor por defecto)
• Una petición al nombre de host del servidor principal se comprobaría primero en los host virtuales.
o Al no encontrarse coincidencia con ninguno respondería el primer host virtual configuradoEl
servidor por defecto no respondería nunca.
 Para evitar ésto se debe configurar el servidor por defecto como un host virtual basado en nombre,
y ponerlo al principio de la lista de host virtuales asociados a la misma IP
• Podría ser un sitio con contenido al que se pueden dirigir los clientes, o bien un sitio que muestre páginas
de error para indicar que el dominio al que se intenta acceder no existe o no está disponible.
 LA DIRECTIVA SERVERALIAS
 Permite asociar distintos nombres al servidor:
• Dado que un cliente puede atacar al mismo servidor con distintos Alias (ej. con www.dominio,
intranet.dominio,nombre NETBIOS,…) ServerAlias permite especificar varios nombres separados por
espacios que se probarán para ver si el Host coincide con un servidor virtual.
 EJEMPLO: CONFIGURAR UN SERVIDOR VIRTUAL POR IP Y DOS SERVIDORES VIRTUALES BASADOS EN NOMBRE.
 Retocar la resolución DNS para los nuevos nombres de dominio.
 Asociar a cada uno una carpeta documentRoot y una página de inicio distinta para comprobar.

2010 - José María Moro Olmedo


Autenticación y seguridad

 Autenticación y seguridad
 Autenticacion de usuarios
– Autenticación básica
o Autenticación Básica - Ejemplo
– Autenticación Digest
o Autenticación Digest -
Configuración
 Acceso seguro al sitio
mediante SSL
 Configuración de SSL
 Configuración de SSL
INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Autenticacion de usuarios WEB SERVER

 APACHE INCLUYE UN MÓDULO DE AUTENTICACIÓN QUE PERMITE RESTRINGIR EL ACCESO


A DIRECTORIOS DEL SITIO UTILIZANDO UN SISTEMA DE AUTENTICACIÓN POR USUARIO Y
CONTRASEÑA.
 El módulo de autenticación por defecto de Apache es mod_auth, y permite desde la
versión 2.2 dos tipos de autenticación: Básica y Digest
• La autenticación HTTP básica utiliza un mecanismo solicitud y respuesta para autenticar usuarios.
 LA AUTENTICACIÓN COMIENZA CUANDO UN NAVEGADOR WEB SOLICITA UNA URL
PROTEGIDA POR UN ESQUEMA DE AUTENTICACIÓN HTTP.
 El servidor Web devuelve una cabecera 401 (se requiere autenticación) junto con una
cabecera WWW-Authenticate que contiene el esquema de autenticación que se está
utilizando.
 Aparece un cuadro de diálogo en el navegador, pidiéndole al usuario que introduzca un
nombre de usuario y una contraseña.
 Cuando El usuario introduce el nombre de usuario y contraseña El navegador lo envía
junto con la URL solicitada al servidor, que comprueba si son válidos.
• Si lo son el servidor devuelve la página solicitada.
o En las solicitudes posteriores al mismo servidor durante la sesión del navegador, el navegador enviará
el par nombre de usuario/ contraseña, de modo que el servidor no tiene que generar una cabecera
de estado 401
• Si no, el servidor responde con un estado 401 Y envía la misma cabecera WWW-Authenticate al
navegador.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Autenticación básica(I) WEB SERVER

 SE PUEDE ESTABLECER LA AUTENTICACIÓN PARA EL CONTENEDOR


DONDE SE QUIERA EXIGIR
 En documentRoot o fuera mediante alias.
 DIRECTIVA AUTHUSERFILE
 Indica el nombre del archivo de texto que contiene los nombres de
usuario y las contraseñas utilizadas en la autentificación HTTP básica.
• Requiere un nombre completamente cualificado (ruta completa).
• El archivo debería ubicarse fuera del acceso de los usuarios al sitio.
 Para crear el archivo de contraseñas se utiliza el ejecutable htpasswd
ubicado en la carpeta bin del servidor.
• Genera un archivo en que cada línea contiene un nombre de usuario y una
contraseña encriptada.
• La primera vez que se ejecuta se debe crear el archivo (-c). Cuando ya existe
basta con ir añadiendo usuarios (distingue MAY/min).
• Para cada uno pedirá la contraseña que debe almacenar.
htpasswd -c nombre_del_archivo usuario1
htpasswd nombre_del_archivo usuario2

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Autenticación básica(II) WEB SERVER

 UNA VEZ CREADO EL ARCHIVO SE APLICAN LAS DIRECTIVAS NECESARIAS AL


CONTENEDOR CORRESPONDIENTE:
 DIRECTIVA REQUIRE:
 Especifica el usuario o conjunto de usuarios que están autorizados a entrar en
la zona restringida (valid-user: cualquier usuario del archivo de claves)
Require user "usuario"|valid-user
 DIRECTIVA AUTHTYPE:
 Especifica el tipo de autentificación que se requiere.
• Solamente están implementadas Basic y Digest(no soportada completamente).
AuthType Basic|Digest
 DIRECTIVA AUTHNAME:
 especifica para que ámbito se está pidiendo autenticación.
 Se muestra al cliente para que el usuario sepa qué nombre de usuario y contraseña ha
de introducir.
AuthName ámbito, ej. AuthName "Zona Privada"

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Autenticación Básica - Ejemplo WEB SERVER

 CONFIGURAR UN DIRECTORIO "PRIVADO" MEDIANTE ALIAS Y


RESTRINGIR EL ACCESO SÓLO A LOS USUARIOS USUARIO1 Y
USUARIO2 DEL ARCHIVO DE CONTRASEÑAS DE C:/CLAVES/PASS.
 Crear el archivo de claves para incluir a ambos usuarios.
 MODIFICAR PARA QUE SOLAMENTE EL USUARIO2 TENGA ACCESO
AL DIRECTORIO.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Autenticación Digest WEB SERVER

 AUTENTICACIÓN BASADA EN RESÚMENES (HASHES) DE MD5.


 A diferencia de la autenticación básica no se envía la contraseña a
través del enlace para autenticarse, sino que se emplea un saludo
de tres vías:
• El servidor envía un desafío al agente de usuario, que es una combinación
pseudoaleatoria de letras y números.
• El cliente cifra la cadena con su clave y envía la respuesta.
• El servidor cifra el desafío enviado con la clave que almacena para el
usuario, si coinciden la autenticación ha sido correcta.
 La contraseña del usuario nunca se transmite.
 TIENE EL INCONVENIENTE DE QUE LAS VERSIONES ANTIGUAS DE
NAVEGADORES PUEDEN NO FUNCIONAR CORRECTAMENTE.
 PARA IE6 SE PUEDE HABILITAR LA DIRECTIVA:
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Autenticación Digest - Configuración WEB SERVER

 ES SIMILAR A LA BÁSICA CON ALGUNAS DIFERENCIAS:


 Debe cargarse el módulo de autenticación con LoadModule
auth_digest_module
 DIRECTIVA AUTHUSERFILE
 Como en la anterior, nombre del archivo para la autenticación.
 Para crear el archivo de contraseñas se utiliza el ejecutable htdigest ubicado en
la carpeta bin del servidor.
• Se diferencia del anterior en que solicita un ámbito para autenticar, por lo que tienen
que coincidir usuario y ámbito para que el usuario sea autenticado.
htdigest -c nombre_del_archivo ámbito usuario1
htdigest nombre_del_archivo ámbito usuario2
 DIRECTIVA REQUIRE:
 Como antes.
Require user "usuario"|valid-user
 DIRECTIVA AUTHTYPE:
 Especifica el tipo de autentificación que se requiere.
AuthType Basic|Digest
 DIRECTIVA AUTHNAME:
 especifica para que ámbito se está pidiendo autenticación.
 Se muestra al cliente para que el usuario sepa qué nombre de usuario y contraseña ha de
introducir.
AuthName ámbito, ej. AuthName "Zona Privada"

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Acceso seguro al sitio mediante SSL WEB SERVER

 APACHE PERMITE EL ACCESO SEGURO AL SERVIDOR A TRAVÉS DE HTTPS (PUERTO


443)
 Como ya hemos visto SSL se basa en el intercambio de información cifrada
mediante una infraestructura de clave pública.
• Se generan certificados de clave pública que se distribuyen a los clientes y se utiliza la
clave privada para descifrar el tráfico cifrado con la clave pública.
 LOS PASOS PARA HABILITAR EL ACCESO SEGURO AL SERVIDOR SON:
 Habilitar y configurar el módulo de SSL.
• Añadir la línea de extras que habilita el archivo de configuración adicional de SSL
 Obtener los certificados firmados por una Autoridad de certificación (CA)
• En estos casos se generan certificados que son enviados a alguna compañía CA para que
los firme (previo pago)
• En nuestro caso generaremos certificados autofirmados (que generarán alertas en los
navegadores)
 Indicar al módulo de SSL la ubicación de los certificados de clave privada y
pública.

2010 - José María Moro Olmedo


INSTALACIÓN Y
ADMINISTRACIÓN DE APACHE
Configuración de SSL(II) WEB SERVER

 CREAR UN CERTIFICADO DE CLAVE PRIVADA Y UNOP DE CLAVE PÚBLICA VÁLIDOS:


 Instalar openssl para windows.
• Ejecutar desde la carpeta bin de apache:
C:\Archivos de programa\Apache Software Foundation\Apache2.2\bin>
openssl req -new -x509 -nodes -out server.crt -keyout server.key
• Con esto se genera un certificado público firmado con la clave server.key.
• Solicitará una serie de datos. El Common Name tiene que coincidir con el nombre del
servidor.
 COPIAR LOS CERTIFICADOS GENERADOS A LA CARPETA CONF.
 CREAR UN CONTENEDOR DE DIRECTORIO DENTRO DE HTTPD-SSL.CONF PARA EL
DIRECTORIO AL QUE QUEREMOS HABILITAR ACCESO SEGURO.
 La configuración de SSL se basa en un host virtual al que se accede por https.
 Deben establecerse los permisos y directivas adecuadas para que se pueda
acceder a los archivos de forma segura.
 COMO EL CERTIFICADO ESTÁ AUTOFIRMADO LOS NAVEGADORES INDICARÁN UN
ERROR DE SEGURIDAD PORQUE NO SE CONFÍA EN LA ENTIDAD EMISORA DEL
CERTIFICADO
 Pero se podrá acceder utilizando SSL, aceptando el aviso.

2010 - José María Moro Olmedo

También podría gustarte