Configuración Apache

39
2010 - José María Moro Olmedo INSTALACIÓN y ADMINISTRACIÓN DEL SERVIDOR WEB APACHE

Transcript of Configuración Apache

Page 1: Configuración Apache

2010 - José María Moro Olmedo

INSTALACIÓN y ADMINISTRACIÓN DEL

SERVIDOR WEB APACHE

Page 2: Configuración Apache

2010 - José María Moro Olmedo

Introducción a Apache

Introducción a Apache Resumen de Instalación de

Apache

Page 3: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Introducción a ApacheIntroducción a Apache

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

Page 4: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Resumen de Instalación de Apache (I)Resumen de Instalación de Apache (I)

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.

Page 5: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Resumen de Instalación de Apache (II)Resumen de Instalación de Apache (II)

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: [email protected]

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.

Page 6: Configuración Apache

2010 - José María Moro Olmedo

Configuración básica de Apache

Configuración básica de Apache

Page 7: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Configuración básica de Apache(I)Configuración básica de Apache(I)

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

Page 8: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Configuración básica de Apache(II)Configuración básica de Apache(II)

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>

Page 9: Configuración Apache

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

Page 10: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directivas de entorno globalDirectivas de entorno global

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.

Page 11: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directivas de servidor principalDirectivas de servidor principal

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.

Page 12: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directivas de servidor principalDirectivas de servidor principal

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

Page 13: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Acceso a los logs del servidorAcceso a los logs del servidor

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.

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

Page 14: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Errores personalizados (I)Errores personalizados (I)

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.htmlRequest Method:GETStatus 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.

Page 15: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directivas de contenedor(I)Directivas de contenedor(I)

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

Page 16: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directivas de contenedor(II)Directivas de contenedor(II)

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.

Page 17: Configuración Apache

2010 - José María Moro Olmedo

Archivos .htacces

Archivos .htacces

Page 18: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Archivos .htaccess (I)Archivos .htaccess (I)

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

Page 19: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Archivos .htaccess(II)Archivos .htaccess(II)

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.

Page 20: Configuración Apache

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

Page 21: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directiva AliasDirectiva Alias

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.

Page 22: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directiva Alias -ejemploDirectiva Alias -ejemplo

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

Page 23: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directiva RedirectDirectiva Redirect

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.

Page 24: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directiva Redirect - ConfiguraciónDirectiva Redirect - Configuración

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.

Page 25: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Directiva Redirect - ConfiguraciónDirectiva Redirect - Configuración

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.

Page 26: Configuración Apache

2010 - José María Moro Olmedo

Host Virtuales

Host Virtuales Configuración de host

virtuales por IP Configuración de host

virtuales por Nombre

Page 27: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Host VirtualesHost Virtuales

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.

Page 28: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Configuración de host virtuales por IPConfiguración de host virtuales por IP

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 ListenServerName www.ejemplovirtualip.local //Opcional, no influyedocumentRoot 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

Page 29: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Configuración de host virtuales por Configuración de host virtuales por Nombre (I)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.localdocumentRoot 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

Page 30: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Configuración de host virtuales por Configuración de host virtuales por Nombre(II)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 configuradoEl 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.

Page 31: Configuración Apache

2010 - José María Moro Olmedo

Autenticación y seguridad

Autenticación y seguridad Autenticacion de usuarios

– Autenticación básicao Autenticación Básica - Ejemplo

– Autenticación Digesto Autenticación Digest -

Configuración Acceso seguro al sitio

mediante SSL Configuración de SSL Configuración de SSL

Page 32: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Autenticacion de usuariosAutenticacion de usuarios

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.

Page 33: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Autenticación básica(I)Autenticación básica(I)

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

Page 34: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Autenticación básica(II)Autenticación básica(II)

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"

Page 35: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Autenticación Básica - EjemploAutenticación Básica - Ejemplo

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.

Page 36: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Autenticación DigestAutenticación Digest

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

Page 37: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Autenticación Digest - ConfiguraciónAutenticación Digest - Configuración

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"

Page 38: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Acceso seguro al sitio mediante SSLAcceso seguro al sitio mediante SSL

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.

Page 39: Configuración Apache

INSTALACIÓN Y ADMINISTRACIÓN DE

APACHE WEB SERVER

2010 - José María Moro Olmedo

Configuración de SSL(II)Configuración de SSL(II)

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.