2010 - José María Moro Olmedo
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 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
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.
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.
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 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).
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>
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 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.
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.
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
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
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.
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
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.
2010 - José María Moro Olmedo
Archivos .htacces
Archivos .htacces
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
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.
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 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.
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
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.
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.
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.
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 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.
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
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
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.
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
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.
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
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"
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.
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
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"
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.
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.