Unidad 3. Configuración Avanzada Del Servidor Web Apache

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 108

Unidad 3.

Configuración
avanzada del servidor
Web Apache

Contenidos
Apache 2 y Apache 2.4
Configuración básica del
servidor Web
Módulos: tipos y funcionalidad
Instalación , configuración y
uso de los módulos en Apache

Algoritmos y programas 1
Contenidos
Host virtuales
Control de acceso
Autenticación y autorización
El protocolo HTTPS

Apache 2 y Apache 2.4

Algoritmos y programas 2
Apache V. 2 y V. 2.4
Cambio muy profundo entre la
versión 2 y 2.4
Dejó de usarse un solo fichero
de configuración httpd.conf
Introdujo el uso de hebras y/o
procesos en Unix
Inclusión de algunos módulos

Ficheros de configuración
Existen varios ficheros de
configuración
Directorio de instalación:
/etc/apache2
Fichero de configuración base o
principal: apache2.conf

Algoritmos y programas 3
Algoritmos y programas 4
Algoritmos y programas 5
Ficheros de configuración
Antes de hacer ninguna
modificación debemos hacer
una copia de seguridad del
mismo

apache 2.conf
Incluye directivas para el servidor Web
y comentarios

Los comentarios son líneas que


comienzan por #.
Son ignoradas por el servidor
Tratan que dar información acerca de
la función de cada directiva

Algoritmos y programas 6
apache2.conf
Incluye directivas para el servidor Web
y comentarios

Los comentarios son líneas que


comienzan por #.
Son ignoradas por el servidor
Tratan que dar información acerca de
la función de cada directiva

Directivas
Directivas para el servidor en sí mismo

Directivas para los documentos Webs

Directivas para los módulos que se


cargarán
Directivas para los host virtuales

Algoritmos y programas 7
Directivas
Directivas para el servidor en sí mismo

Directivas para los documentos Webs

Directivas para los módulos que se


cargarán
Directivas para los host virtuales

Módulos multiproceso
Multiprocessing modules o MPMs
Hasta la versión 1.3 funcionaban con un
único proceso que creaba procesos hijos
para atender las peticiones
El proceso principal se encargaba de
monitorizarlos: crear o destruir
Directivas para los host virtuales

Algoritmos y programas 8
Módulos multiproceso
Este sistema no funcionaba bien en
determinados S.O por ejemplo
Windows
Existen varios módulos MPM que
crean hilos (threads) o procesos hijos
para atender las peticiones

httpd.conf && apache2.conf


httpd.conf no existe, hasta la versión
2.2 aparecía pero vacío

Depende de la versión de apache que


usemos: Ahora es apache2.conf

Algoritmos y programas 9
include
A lo largo del fichero principal
aparecen inclusiones del contenido de
otros ficheros mediante la palabra
reservada “include”

Se usan varios ficheros de


configuración : en ellos se distribuyen
las diferentes directivas

Directivas de
Apache

Algoritmos y programas 10
ServerRoot
Indica el directorio raíz de la instalación de
Apache.
No se refiere al directorio donde
colocaremos las páginas web.

Está comentada porque es la que usa por


defecto

PidFile
PidFile establece la ruta al archivo en el
que el servidor graba su ID de proceso
(pid)
No se recomienda cambiar la ruta si no
se sabe lo que se está haciendo

Algoritmos y programas 11
TimeOut

Son los segundos que espera una


respuesta durante la comunicación
Por defecto son 300 segundos
Se recomienda no cambiarlo

KeepAlive
Determina si se van a atender varias
peticiones por cada conexión
Un cliente puede consumir demasiados
recursos: cuidadoso
Si se especifica a “on” las siguiente directiva
debe tener un valor bajo para evitar
problemas

Algoritmos y programas 12
MaxKeepAliveRequests
Determina el número máximo de
peticiones por conexión

Solo tiene sentido si la anterior


directiva está activada

KeepAliveTimeOut
Determina el tiempo en sg. que el servidor
esperará antes de atender una nueva
petición del mismo cliente en la misma
conexión
Debemos ser cuidadosos si no queremos
que se sature el servidor

Algoritmos y programas 13
IfModule
Permite especificar determinadas
“opciones” solo si un módulo concreto
está cargado
Si se indica el carácter “!” delante de
“IfModule” las opciones se aplicarán si
ese modulo no se ha cargado

IfModule
Esta directiva se ha desplazado al
fichero de configuración de cada
módulo
Pero se mantiene en el fichero de
configuración principal

Algoritmos y programas 14
StartServers
Esta directiva aparece en el archivo
/etc/apache2/mods-enabled/mpm_event.conf

StartServers
Apache crea o destruye servidores según el
tráfico que tenga que atender en cada
momento
Esta directiva sirve para especificar los
servidores que se van a crear inicialmente al
arrancar

Algoritmos y programas 15
Listen
Se encuentra en ports.conf
Este elemento indica al servidor en qué
dirección y puerto debe escuchar las
peticiones http que lleguen además de los de
por defecto

Listen
El
puerto estándar donde un servidor web
recibea peticiones http es el 80

Si configuramos Apache para escuchar en


otro puerto debe añadir dicho puerto detrás
de la dirección

Algoritmos y programas 16
LoadModule
Apache permite añadir módulos
dinámicamente sin necesidad de recompilar
el servidor

Esta directiva indica los módulos a cargar


dinámicamente

Aparece comentada o no aparece porque no


añadimos ningún módulo

User y Group
Indican el usuario y el grupo con el que se
van a lanzar los procesos hijos que genere
Apache
El usuario nunca debe ser root porque crearía
una brecha de seguridad para los hackers
En Linux por defecto el usuario “nobody” y el
grupo “nogroup” tienen muy pocos
privilegios

Algoritmos y programas 17
ServerName
Indica el nombre de domino del servidor

Debe cumplir con las especificaciones


DNS y estar en nuestro poder

ServerAdmin
Esta directiva y las siguientes aparecen en
/etc/apache2/sites-available/000-default.conf

Especifica el correo electrónico del


administrador del servidor
Las páginas de error se enviarán a esta
dirección

Algoritmos y programas 18
DocumentRoot
Se encuentra en /etc/apache2/sites-
available/000-default.conf
Indicamos el directorio raíz donde se
colocarán las páginas Web: puede tener
subdiretorios

No basta con cambiar esta ruta

Directory
Se usa para configurar cómo se comportará y qué
se permitirá en cada directorio al que tiene acceso el
servidor Apache

La primera vez que nos encontramos esa etiqueta se


refiere al directorio raíz y subdirectorios y tiene
opciones muy restrictivas

Algoritmos y programas 19
Directory
La segunda vez que nos encontramos esa etiqueta
se refiere al directorio de “DocumentRoot” y
subdirectorios

Puede especificarse para otros directorios

DirectoryIndex
Se encuentra en
/etc/apache2/mods-enabled/dir.conf
Especifica la página por defecto que se
buscará al acceder a un directorio de la
jerarquía de nuestro sitio

Puede especificarse una sucesión de ficheros

Algoritmos y programas 20
AccessFileName
Indica el nombre del archivo en el que se
deben buscar las directivas de acceso
determinadas en cada directorio

No se recomienda cambiarlo en absoluto

Por defecto es .htaccess

FilesMatch
Permite especificar directivas a aplicar a
determinados tipos de ficheros
Al menos se debe especificar una
directiva que impida el acceso a los
ficheros que empiecen por .ht

Algoritmos y programas 21
HostnameLookups
Indica al servidor si debe hacer una
consulta DNS por cada petición
Consume mucho tiempo

Por defecto está deshabilitada

ServerSignature
Se encuentra en el archivo /etc/apache2/conf-
available/security.conf
Permite establecer si al mostrarse una página
generada por el servidor (páginas de error)
debe mostrarse el nombre y la versión del
servidor: hackers

Por defecto está deshabilitada

Algoritmos y programas 22
Alias
Se encuentra en el archivo
/etc/apache2/mos-enabled/alias.conf
Permite crear alias para archivos o
directorios

Se usa sobre todo para la carpeta de


iconos

ScriptAlias
Se encuentra en el archivo /etc/apche2/conf-
enabled/server-cgi-bin.conf

Indica donde se ubicará la carpeta de scripts


CGI

Se usa solo cuando se van a necesitar scripts


CGI

Algoritmos y programas 23
LanguagePriority
Permite establecer una prioridad en los
idiomas en caso de que no se especifique uno
o haya un empate en la negociación por
diferentes motivos

Por defecto es el ingles

Algoritmos y programas 24
AddDefaultCharset
Permite establecer el juego de caracteres

Debe ajustarse a la zona en la que se sitúa el


servidor y el idioma del contenido

Si no estamos seguros es mejor dejar el que


está por defecto

BrowserMatch
Se encuentra en el archivo
/etc/apache2/mods-enabled/setenvif.conf
Sirve para modificar la respuesta
dependiendo del cliente en cuanto al
navegador y a la plugins instalados

Algoritmos y programas 25
BrowserMatch
Se encuentra en el archivo
/etc/apache2/mods-enabled/setenvif.conf
Sirve para modificar la respuesta
dependiendo del cliente en cuanto al
navegador y a la plugins instalados

Algoritmos y programas 26
c

Algoritmos y programas 27
c

Algoritmos y programas 28
c

Algoritmos y programas 29
c

Algoritmos y programas 30
Algoritmos y programas 31
c

Algoritmos y programas 32
c

Algoritmos y programas 33
c

Algoritmos y programas 34
c

Registros de
error

Algoritmos y programas 35
Introducción
Los archivos de error son fundamentales en
la gestión de servidores ya que nos permiten
comprobar qué ha sucedido en cada
momento
Guardan errores de configuración o de
funcionamiento
Puede especificarse en la configuración
principal o de algún sitio Web específico

ErrorLog
Permite especificar donde ubicar el archivo
de registro de los errores
Muchos administradores crean una partición
exclusiva para situar archivos de error

El lugar por defecto es:


%ServerRoot%/logs/error_log

Algoritmos y programas 36
LogLevel
Establece cuánta información se guardará en
el archivo de registros de errores
Los valores por defectos son: debug, info,
notice, warn, error, crit, alert, emerg

Cuanto mayor sea el servidor más


información necesitaremos

LogFormat
Establece qué campos y en qué formato se
guardarán de cada error que se produzca

CustomLog
Establecela ruta del archivo para guardar las
visitas a nuestro sitio Web

Algoritmos y programas 37
Módulos

Introducción
El diseño de apache es modular.
Apache posee un núcleo que permite
incluye la funcionalidad necesaria para
establecer un servidor Web

Pero existen muchos módulos


adicionales que permiten añadir
funciones extras

Algoritmos y programas 38
Introducción
Cada módulo tiene un conjunto de
directivas especificas que permiten su
gestión
Puedes consultar los módulos instalados
mediante:

Introducción
Puedes consultar los módulos instalados
mediante:

Estático: cuando se
compiló
Dinámico: posterior a
la compilación

Algoritmos y programas 39
Tipos de módulos
Módulos relacionados con el entornos
Módulos de autenticación y control de
acceso
Módulos de generación dinámica de
contenidos
Módulos de configuración del tipo de
contenido

Tipos de módulos
Módulos para el listado de directorios
Módulos para la gestión de las cabeceras
HTTP de las respuestas
Módulos de información del servidor y
de registro de la actividad
Módulos de mapeo de URL’s

Algoritmos y programas 40
Módulos relacionados con
el entornos

Permiten controlar qué parte del


entorno del servidor (conjunto de
variables) van a estar disponibles
para otros módulos o programas

Módulos de autenticación y
control de acceso
Permiten realizar autenticación y
control de acceso : filtrado de
usuarios . Visita a un directorio
basándose en la IP o nombre de
usuario

Algoritmos y programas 41
Módulos de generación
dinámica de contenidos

Permiten delegar la atención de


determinadas peticiones a
diferentes scripts o programas
externos

Módulos de configuración
del tipo de contenido

Permite al servidor detectar o


negociar el tipo de contenido más
adecuado para el cliente:
máquina y navegador

Algoritmos y programas 42
Módulos para el listado de
directorios
El servidor intenta siempre ofrecer el
archivo o archivos establecidos en la
directiva DirectoryIndex
Si no lo encuentra, lista los archivos
contenidos en ese directorio o URL.
Estos módulos nos permiten configurar
cómo se listarán

Módulos para la gestión de


las cabeceras HTTP de las
respuestas
Las cabeceras HTTP contienen mucha
información importante para la
comunicación entre el cliente y el
servidor
Estos módulos nos permiten modificar
dichas cabeceras

Algoritmos y programas 43
Módulos de información del
servidor y de registro de
actividad
Estos módulos proporcionan
información sobre el estado del
servidor y permiten configurar el
registro de actividad

Módulos de mapeo de URLs


Podemos manejar y modificar las URL’s
de nuestro sitio a partir del nombre de
dominio
Podemos crear alias, reescribir las
direcciones para que lleven a distintos
archivos y directorios

Algoritmos y programas 44
Instalación,
configuración y uso
de módulos

Ficheros de configuración
La distribución que usamos reparte las
directivas entre varios ficheros de
configuración
Simplifica la administración del servidor
Apache, en relación a la que usa un
único fichero

Algoritmos y programas 45
Comprobación de módulos
Módulos instalados por defecto

Comprobación de módulos
Módulos disponibles

Módulos existentes que se pueden


instalar en Apache

Algoritmos y programas 46
Instalación de módulos

Donde ….
«module» es el nombre del módulo
«filename» la ruta donde se
encuentra el fichero correspondiente
al módulo

Instalación de módulos

Desinstalación de módulos

Algoritmos y programas 47
Módulo
mod_speling

mod-speling: corrige posibles pequeños errores en las


URLs de peticiones por parte de los clientes

Ejemplo

ó bien

Siendo necesario reiniciar

Algoritmos y programas 48
Carpeta «/etc/apache2/mod-
enabled»
Contiene por cada módulo instalado dos
ficheros:
xxxx.load: contiene la instrucción para cargar
el módulo

ó bien

Carpeta «/etc/apache2/mod-
enabled»
xxxx.conf: contiene la configuración para
dicho módulo

Algoritmos y programas 49
xxx.conf
Las directivas solo se aplicarán si está
cargado el modulo

Esto se consigue mediante «IfModule»

Funciona como un «if» de programación

Configuración de un módulo
Cada modulo tiene sus propias directivas

Lo mejor es consultar la documentación


asociada

Las directivas a configurar se encuentran en


el fichero nombre_modulo.conf

Algoritmos y programas 50
Ejemplo «mod_speling»
Solo tiene dos directivas de configuración

CheckSpelling: Activa o desactiva el módulo


(ON/OFF)

CaseSensitive: Corrige los errores de


mayúsculas y minúsculas

Ejemplo «mod_speling»
Debemos añadir al fichero de configuración
(speling.conf) la directiva:

Y después debemos reiniciar

Algoritmos y programas 51
Ejemplo «mod_speling»
Prueba que funciona

Introduce la dirección
http://localhost/insdex.html

¿Corrige los errores?

Archivos de configuracíon
asociados a cada módulo
Hay dos archivos asociados

El fichero .conf: contiene las directivas


El fichero .load: carga el módulo

IfModule controla si se debe aplicar las


directivas o no

Algoritmos y programas 52
Módulos mod-status
y mod-info

mod-status
/etc/apache2/mods-available
Permiten obtener información útil del servidor
Fichero de configuración: status.conf

Activado por defecto


Se consulta la información:
http://192.168.56.101/server-status

Algoritmos y programas 53
mod-info
/etc/apache2/mods-enabled
No viene activado por defecto
Hay que activarlo y reiniciar el servidor
Apache
Fichero de configuración: info.conf
Se consulta la información:
http://192.168.56.101/server-info

Directorios de
usuarios:
mod_userdir

Algoritmos y programas 54
Introducción
A veces es recomendable que cada usuario
tenga su propia carpeta o directorio donde
poder crear sus propias páginas Web
Institución educativa, Instituto, Universidad,
empresa mediana
Cada usuario tendrá un espacio al que accederá
mediante su “nombre de usuario”:
http://sitioejemplo.com/~nombreusuario

Algoritmos y programas 55
directiva user_dir
Indica si se debe permitir que cada usuario de
nuestro sistema tenga su propia carpeta y
establece cual será su ruta: dentro de la
carpeta personal

Es la opción más frecuente

user_dir
Si queremos que los usuarios no tengan su
propio espacio personal debemos
deshabilitarlo

Si queremos habilitarlos, excepto root,


debemos deshabilitar root

Algoritmos y programas 56
Tipos MIME

Introducción
Sirven para identificar tipos de archivos
teniendo en cuenta su extensión
Gracias a este módulo se conoce qué
aplicación se necesita para abrirlos

Está activado por defecto

/etc/apache2/mods-available

Algoritmos y programas 57
Introducción
El fichero de configuración es mime.conf

Directivas:
•TypesConfig
•DefaultType
•AddEncoding
•AddLanguage
•AddCharset

Host Virtuales

Algoritmos y programas 58
Introducción
Apache puede servir varios sitios Web debe
un mismo servidor

El cliente no diferenciará si se encuentran en


la misma máquina o en máquinas diferentes

Apache es un servidor muy potente

Introducción
Si tenemos dos dominios: www.laempresa.es
y www.mipagina.es

Podemos alojar los dos dominios en la misma


máquina, en el mismo servidor: parecerán dos
servidores

Uno será el principal y el otro serán


servidores virtuales

Algoritmos y programas 59
Ventajas
• Aprovechar el hardware existente

• Aprovechar las direcciones IP públicas


Existentes

• Heredar la configuración de directivas del


sitio principal

Directorios de los servidores


virtuales
Existen dos directorios
/etc/apache2/sites-available
Sitios disponibles
/etc/apache2/sites-enabled
Sitios activos
Contiene enlace simbólicos al primer
directorio

Algoritmos y programas 60
Sitio por defecto
000-default.conf

Directorios de los servidores


virtuales
Podemos comprobar que en el directorio de
sitios activos existe un enlace simbólico a
dicho host
/etc/apache2/sites-enabled
Sitios activos
/etc/apache2/sites-availabled
Sitios disponibles

Algoritmos y programas 61
000-default.conf
El directorio especificado en “DocumentRoot”
suele ser de la forma:
/var/www
/var/www/html
/var/www/web

Depende de la versión utilizada

apache2.conf
En el fichero de configuración principal
podemos encontrarnos:

Los ficheros de configuración heredan


las directivas del principal a no ser que
se sobrescriban

Algoritmos y programas 62
Herencia de directivas
apache2.conf

Un directorio hereda las directivas del


superior si no se sobrescriben

Todos los directorios que creemos dentro


de /var/www/html tendrán
la misma configuración que el raíz

Herencia de directivas
apache2.conf
Los host virtuales heredan las directivas
del fichero principal: apache2.conf

Todos los hosts virtuales tendrán


la misma configuración que el fichero
principal a no ser que se
sobreescriban las directivas en el
fichero de configuración propio del
host

Algoritmos y programas 63
apache2.conf
En el fichero de configuración principal
podemos encontrarnos:

Indexes: establece que queremos que se


muestre el contenido de la carpeta
FollowSymLinks: permite seguir enlaces
AllowOverride: no se permite sobreescribir
Require all granted: permitir acceso a todos

Mensajes de error:
ErrorDocument
Sirve para establecer mensajes de error
personalizados
Están definidos por la organización W3:
https://www.w3.org/Protocols/rfc2616/rfc261
6-sec10.html
Es un número de 3 cifras
Se establece de manera independiente para
cada sitio virtual

Algoritmos y programas 64
Alias a otros directorios
Es posible incluir otros directorios del
árbol de nuestra máquina y hacer que
parezcan parte del sitio Web como
cualquier otra carpeta que esté
contenida físicamente dentro de la
carpeta principal que contiene los
documentos html

Algoritmos y programas 65
Directiva “Alias”

“/image” sería el nombre nombre del alias


“/ftp/pub/image” la carpeta que se encuentra
en otra ubicación dentro del servidor
Es recomendable especificar justo debajo la
directiva “Directory”

Redirecciones
Algunas veces es útil redirigir las
llamadas a otra dirección web para
que se procesen en otro punto
1. Por qué hemos cambiado la IP del servidor
WEB
2. Porque hemos dividido contenido el
servidor Web en varios servidores para
facilitar su mantenimiento

Algoritmos y programas 66
Directiva “Redirect”

“/service” carpeta dentro del mismo servidor:


redirige a una dirección URL

“/one” carpeta en el mismo servidor redirige a


otra carpeta dentro del mismo servidor

Creación de un host
virtual

Algoritmos y programas 67
Modos de crear un host
virtual
Basados en nombres
Múltiples dominios DNS, uno por cada sitio o
host, apuntan a una única IP de una
máquina: opción más usada
Basados en IP’s
El servidor WEB tendrá asignado varias IP,
uno por cada sitio o host

Modos de crear un host


virtual
Basados en puertos
Cada sitio o host se atenderá en un puerto
distinto en la misma IP o nombre de
dominio
Basados en servidores principales
Se mantiene varias configuraciones
principales : opción menos recomendable

Algoritmos y programas 68
Ejemplo

Módulo
Las directivas se encuentran en el módulo
“core”: no es necesario activarlo

Todos los DNS o nombres de dominio de


cada host virtual deben apuntar a la
dirección IP de nuestro servidor Web
Configuración de un servidor DNS

Algoritmos y programas 69
Estructura de directorios
Utilizan una estructura de directorios similar a
la que hemos visto
Sitios disponibles

Sitios activados: enlace símbolico

Primer paso:
Crear los registros DNS para que los dominios
apunten a nuestra IP
O bien configurar el fichero “hosts” añadiendo
los alias necesarios

Segundo paso:
Crear una carpeta para cada sitio Web y
colocar HTML y demás recursos en él

Algoritmos y programas 70
Tercer paso:
Crear un documento index.html en cada
carpeta de cada host

Podremos acceder a nuestra carpeta con la


URL : http://localhost/ejemplo2.es
Objetivo: http://ejemplo2.es

Cuarto paso:
Crear el archivo de configuración del host
virtual en la carpeta “sites-available”

Y escribimos lo siguiente….

Algoritmos y programas 71
Cuarto paso:
Es recomendable utilizar la directiva
“directory” para configurar las propiedades
de los directorios

Ya que cada host virtual posee varios


directorios y tal vez sea necesario una
configuración distinta para cada uno de
ellos

Quinto paso:
Incluir los datos de configuracíon de nuestro
host en la configuración principal de
Apache: apache2.conf
Desde este fichero se “importa” la
configuración de otros ficheros

Algoritmos y programas 72
Sexto paso:
Configurar las directivas de error para cada
host virtual
Dentro del fichero de configuración de cada
“host virtual”

Debemos darles nombres de ficheros distintos


para no confundirlos

Séptimo paso:
Activar el host:

Y recargar los sitios de apache

Algoritmos y programas 73
Séptimo paso:
Si al hacerlos da “error” debemos abrir el
fichero “apache2.conf” e incluir la directiva

localhost o el nombre completo de nuestro


servidor

Acceso a nuestro “host


virtual”
Podemos acceder mediante: www.ejemplo2.es

Desmontar el “host virtual”

Algoritmos y programas 74
Control de acceso

Introducción
Definición
Se refiere a cualquier método que permita
filtrar el acceso a cualquier recurso de
nuestro servidor
Módulo implicados
mod_auth_core y mod_authz_host
mod_setenvif y mod_rewrite.

Algoritmos y programas 75
Control de acceso basado en
la dirección
Está basado en el módulo mod_authz_host
No es necesario activar ese módulo
Consiste en comprobar la dirección IP y permitir o
denegar el acceso a los recursos del servidor

Hasta la versión 2.2. se usaban las directivas


Deny y Allow

Actualmente se usa la directiva Requiere

Control de acceso basado en


la dirección IP
Está basado en el módulo mod_authz_host
No es necesario activar ese módulo
Consiste en comprobar la dirección IP y permitir o
denegar el acceso a los recursos del servidor

Hasta la versión 2.2. se usaban las directivas


Deny y Allow

Actualmente se usa la directiva Requiere

Algoritmos y programas 76
Control de acceso por
variables de entornos
Usa los módulos mod_authz_host y
mod_setenvif.
Consiste en permitir el acceso o no al usuario
dependiendo de alguna variable que se encuentra
configurada dentro de la máquina cliente
No es muy recomendable

Cualquiera puede modificar esa variable de entorno


y acceder al servidor

Control de acceso mediante


el módulo Rewrite
El módulo Rewrite nos permite realizar
configuraciones de control de acceso más
arbitrarias
Por ejemplo permitir el acceso de 9:00 a 12:00 horas

Se basa en las directivas

RewriteCond y RewriteRule

Algoritmos y programas 77
Autenticación y
autorización

Definición
Autenticación
Consiste en comprobar que una persona es
quien dice ser

Autorización
Consiste en comprobar que una persona tiene
permisos para acceder a un recurso
determinado

Algoritmos y programas 78
Introducción
La autorización implica que se realice
previamente una autorización

Ejemplo
Un cliente del servidor Web se autentifica
mediante un nombre de usuario y una
contraseña. Si esta autenticación es
positiva entonces tendrá autorización
(permisos) para acceder a determinados
recursos

Introducción
La autenticación se realiza habitualmente
usando un nombre de usuario y una
contraseña

Poco seguro porque no está cifrado y un


sniffer puede interceptarlo

Uso del protocolo HTTPS

Algoritmos y programas 79
Definición
Autenticación
Se realiza mediante el módulo mod_authn_core

Autorización
Se realiza mediante el módulo mod_authz_core

El número de módulos es mayor y está agrupado en


tres grupos: autenticación , autorización
comprobación de credenciales en un sistema

Módulos
mod_auth_core y mod_auth_basic

Permiten realizar la autorización de forma


básica

Ejemplo
Vamos a configurar un directorio al que solo
se pueda acceder mediante un nombre de
usuario y contraseña

Algoritmos y programas 80
Módulos
htpasswd

Debemos tener instalada está utilidad para


poder hacer uso de la autenticación

Ejemplo
Debemos crear el directorio: no tiene porqué
estar dentro del directorio principal del
servidor Web

Ahora añadimos al sitio por defecto en el que


queremos gestionar la autenticación la
configuración para el directorio

Algoritmos y programas 81
Ejemplo
La configuración podría ser algo así:

AuthName: indica al usuario que hacer


AuthType: indica el tipo de autenticación
Basic: transmite los datos como texto plano
Digest: cifrado muy débil. No disponible para todos los
navegadores

Ejemplo

AuthUserFile: indica el fichero que contiene


las contraseñas
Require: indica que solo se permitirá acceder
al directorio como “usuario válido”

Algoritmos y programas 82
Ejemplo
Ahora debemos crear el archivos de
contraseñas

htpasswd solicitará la contraseña y la


confirmará

Ejemplo
Podemos asegurarnos de que ha creado el
usuario abriendo el fichero

Estará encriptado
El siguiente paso es reiniciar el servidor
Apache

Algoritmos y programas 83
Acceso a grupos de
usuarios

Introducción
Es posible que nos interese permitir el acceso
al grupos de usuarios
Método 1

Podemos permitir el acceso a más de un


usuario especificándolo en la cláusula
“Require”

Algoritmos y programas 84
Introducción
Método 2

Otra alternativa es crear archivos de usuarios


diferentes para distintos directorios

Introducción
Método 3

El tercer método es el uso de la directiva


“AuthGroupFile”
Esta directiva especifica el nombre del fichero
que contiene el nombre de cada grupo con
los usuarios que pertenecen a él

Algoritmos y programas 85
Ejemplo
Vamos a formar 2 grupos y cada uno de ellos
podrá acceder a un directorio distinto

Ejemplo
El archivo .grupos contendrá:

Ten en cuenta que….


1. Se usa el mismo archivo para contener las
contraseñas para todos los usuarios
2. Hay que añadir la directiva “AuthGroupFile”
3. Se debe especicar en “Require” el grupo que
puede acceder

Algoritmos y programas 86
Ficheros .htaccess

¿Qué hace este fichero?


hypertext access
Archivo de configuración distribuida
Permite definir diferentes directivas de
configuración para cada directorio (con sus
respectivos subdirectorios) sin necesidad
de editar el archivo de configuración
principal de Apache o ningún otro fichero
de configuracíon

Algoritmos y programas 87
¿Cómo permite el control de
acceso?
Las soluciones vistas no son muy adecuadas
si queremos delegar a otras personas el
control de determinadas secciones del
servidor Web
Si queremos que haya más de administrador y
que otras personas gestionen algunos
directorios se debe usar los ficheros
.htaccess

¿Cómo permite el control de


acceso?
Podemos crear directorios y gestionar el
control de acceso de forma independiente

Entonces creamos el fichero .htacces dentro


de ese directorio

Algoritmos y programas 88
¿Cómo permite el control de
acceso?
El contenido podría ser este….

Hemos sacado el “control de acceso” a un


fichero independiente

Uso del fichero .htaccess


Para permitir el uso de fichero .htaccess
debemos modificar el fichero de
configuración

Fichero de configuración del sitio por defecto

Algoritmos y programas 89
Configuración
Debemos cambiar la directiva…

Y dejarla así…..

Luego reiniciamos el servidor

Configuración
El lugar donde se configura depende de
nuestras necesidades

Lo ideal sería especificarla en el directorio


principal: ya que las directivas se heredan

Algoritmos y programas 90
Protocolo HTTPS

Introducción
El protocolo HTTP es muy inseguro para
transmitir información

Es fácil capturar la información y leerla :


nombres de usuarios y claves

La información se transmite como texto plano


sin cifrar

Algoritmos y programas 91
Introducción
HiperText Transfer Protocol Secure

Realmente no es un protocolo: se basa en


añadir una nueva capa que contiene
protocolo de encriptación SSL o derivados

La capa se encuentra entre la capa de


aplicación y la de transporte de TCP/IP

Introducción
El protocolo proporciona “autenticación”
Permite que los usuarios se identifiquen
cuando se conectan al servidor

También proporciona “encriptación” de la


información que enviamos y recibimos:
todo el mensaje está cifrado incluida la
cabeceras

Algoritmos y programas 92
Introducción
Con HTTPS los contenidos del servidor están
más protegidos: se evita el ataque “Man in
the Midle”
Es un poco menos eficiente que HTTP: no es
recomendable usarlo en sitios donde la
transferencia de información es alta
HTTPS usa el puerto 443 por defecto
HTTP usa el puerto 80 por defecto

Certificados
digitales

Algoritmos y programas 93
Introducción
Los navegadores actuales basan el uso de
HTTPS en el conocimiento de “certificados
digitales”
Dichos certificados son emitidos por
“autoridades certificadoras” que trabajan a
nivel nacional e internacional
El certificado digital nos asegura que el
servidor Web al que nos conectamos es
quien dice ser

Introducción
Se supone que debemos “confiar” en la
“autoridad certificadora” para aceptar un
“certificado digital”
Dentro de un navegador suele haber varias
“autoridades certificadoras” que el creador
del navegador considera de confianza
Estas entidades se pueden consultar y
modificar

Algoritmos y programas 94
Introducción
Cuando queremos acceder a un servidor Web
comprobamos si posee certificado digital y
si este está reconocido por alguna de las
“autoridades” incluidas en nuestro
navegador
Existen servidores Web que usan certificados
no emitidos por estas autoridades:
advertencia

Introducción
Un “certificado digital” es un documento que
contiene “información personal” sobre la
persona u organización

La información n personal que contiene es:


nombre, la dirección, el correo electrónico,
etc.
Además de un enlace entre la “clave pública”
y la “firma digital”

Algoritmos y programas 95
Cifrado Asimétrico

Algoritmos y programas 96
Firma digital

Algoritmos y programas 97
Introducción
Es un mecanismo criptográfico o de cifrado
que permite asegurar al receptor de un
mensaje firmado digitalmente determinar la
entidad originadora de dicho mensaje
(autenticación de origen y no repudio), y
confirmar que el mensaje no ha sido
alterado desde que fue firmado por el
originador (integridad)

Introducción
La firmas digitales son emitidas por
“entidades certificadoras” supuestamente
de confianza
Estas entidades te proporcionan una clave
privada y otra pública
Dichas claves se usarán para cifrar o descifrar
el mensaje con el algoritmo de cifrado que
también te proporciona la «entidad»

Algoritmos y programas 98
Obtener certificados digitales
Para poder utilizar HTTPS es necesario
adquirir un “certificado digital” de una
“Autoridad certificadora”
O crear nuestra propia “Autoridad
certificadora” y generar nuestros
certificados
Debemos demostrar quienes somos a la
autoridad, generar una petición, y una vez
que ha sido aceptada instalarla

SSL/TLS

Algoritmos y programas 99
Introducción
SSL : Secure Socket Layer
Desarrollado por Netscape en los 90
Versión 3.0
Protocolo obsoleto con vulnerabilidades conocidas

TLS: Transport Layer Security


Versiones : 1.0 1.1 1.2
La mayoría de los navegadores usan la versión 1.1
Permiten asegurar confidencialidad ,
integridad, no repudio y autenticidad

HTTPS en Apache

Algoritmos y programas 100


Instalación
Es necesario que el módulo mod_ssl esté
activo

Ahora Apache está escuchando tanto en el


puerto 80 como en el 443

Instalación
El contenido de ports.conf es…

Algoritmos y programas 101


Instalación
Si el módulo mod_ssl está activo se añade
también las siguientes órdenes….

Instalación
Debe existir un sitio por defecto llamado
default_SSL

Si lo activamos tendremos un sitio Web que


escucharía en el puerto 443: por conexión
segura

Algoritmos y programas 102


Instalación
Ahora tenemos disponibles dos servidores:
http y https
Por defecto acceder mediante http
No es recomendable dejar activos los dos
servidores: desactivar el sitio “no seguro”

A partir de ahora de accederá mediante https


por defecto

Certificado digital
Al instalar el Apache se crea un certificado
digital por defecto
Si abrimos el archivo de configuración por
defecto

Algoritmos y programas 103


Creando un sitio
virtual con HTTPS

Crear un sitio virtual “seguro”


Vamos a crear un sitio seguro desde 0

Vamos a dejar habilitado el sitio “no seguro”


por defecto

Necesitamos un nuevo certificado para el sitio


que queremos crear

Algoritmos y programas 104


Crear un sitio virtual “seguro”
Podemos adquirir uno de una “CA” ó bien
crear uno autofirmado

Debemos generar una clave primaria para un


“nombre de dominio”

1º Paso. Configuramos el servidor DNS, y


configuramos el servidor Web como un
servidor virtual por “nombre de dominio”
Ej. www.con-ssl.com

Crear un sitio virtual “seguro”


2º Paso. Generamos la clave utilizando el
comando “genrsa”

Se recomiendan claves de al menos 2048 bits

3º Paso. Generamos una petición para nuestro


certificado a una “CA”. Nosotros usaremos
uno autofirmado

Algoritmos y programas 105


Crear un sitio virtual “seguro”
Cuando ejecutamos el comando anterior nos
va pidiendo datos….

Crear un sitio virtual “seguro”


4º Paso Finalmente ejecutamos la orden para
crear el certificado

Lo que significa que usaremos el forma X509 y el


certificado durará 365 días

Si todo va bien mostrará algo así

Algoritmos y programas 106


Crear un sitio virtual “seguro”
5º Paso. Movemos los archivos creados
anteriormente a los sitios adecuados

6º Paso. Creamos un directorio para el sitio


seguro

Crear un sitio virtual “seguro”


7º Paso. Creamos el sitio virtual

Algoritmos y programas 107


Crear un sitio virtual “seguro”
8º Paso. Habilitamos el sitio “seguro” y
recargamos el Apache

Al sitio Web se accederá utilizando el protocolo


HTTPS: https://www.con-ssl.es

Algoritmos y programas 108

También podría gustarte