Configuración Inicial del Servidor Web Apache en Linux
Clasificado en Informática
Escrito el en español con un tamaño de 8,46 KB
Práctica 1: Configuración Básica de Apache en Linux
En esta práctica vamos a instalar y configurar de manera básica un servidor Apache en Linux, el cual nos proporcionará un servicio HTTP.
Instalación de Apache
Para instalar un servidor Apache, utilizamos los siguientes comandos:
sudo apt-get update
sudo apt-get install apache2
Verificación y Configuración Inicial
Probar Conexión
Para probar la conexión al servidor, basta con abrir un navegador web en el servidor y escribir la dirección:
Archivos Principales de Configuración
Para ver los principales archivos de configuración introducimos el comando:
ls -al /etc/apache2
Algunos de los principales directorios y archivos son: conf-available
, conf-enabled
, mods-available
, mods-enabled
.
Comprobar Archivos Creados
Para ver que hemos creado bien un archivo (por ejemplo, una página HTML), lo comprobamos abriendo el navegador e introduciendo http://localhost/nombre_del_archivo.html
.
Cambiar Nombre de Archivos
Para cambiar el nombre al archivo por defecto index.html
por indice.html
, usamos el comando mv
:
sudo mv /var/www/html/index.html /var/www/html/indice.html
- O de forma genérica:
sudo mv <ruta/nombre_antiguo> <ruta/nombre_nuevo>
Directorios Clave
- El directorio raíz por defecto para el contenido web es:
/var/www/html/
. - El directorio por defecto para la configuración de sitios disponibles es:
/etc/apache2/sites-available/
Módulos de Apache
Apache dispone de dos carpetas principales para la gestión de módulos:
/etc/apache2/mods-available
: Donde se listan los módulos instalados./etc/apache2/mods-enabled
: Donde se habilitan los módulos (mediante enlaces simbólicos a los archivos enmods-available
).
Dentro de la carpeta mods-available
encontraremos generalmente dos archivos por cada módulo instalado: uno con extensión .load
(para cargarlo) y otro opcional .conf
(para su configuración específica).
Control de Acceso
Creación de Directorio Protegido
Como ejemplo, si quisiéramos proteger un directorio llamado 'intranet', primero lo creamos:
sudo mkdir /var/www/html/intranet
Luego, configuraríamos las directivas de acceso correspondientes en la configuración de Apache o en un archivo .htaccess
.
Proveedores de Autorización (Directiva Require
)
La directiva Require
se usa para definir quién tiene permiso para acceder a un recurso.
Require host
Limita el acceso a nombres de dominio o IPs específicas.
Require host nombre-dominio.com
Require ip 192.168.1.100
Require all
Hace referencia a cualquier equipo.
Require all granted
: Concede el acceso a cualquier equipo.Require all denied
: Deniega el acceso a cualquier equipo.
Require local
Permite el acceso de aquellas conexiones que tienen como origen y destino la propia máquina (localhost).
Require local
Require not
Niega la condición que le sigue.
Require not ip 192.168.4.0/24
(No podrá entrar ningún equipo que pertenezca a esa red).
Contenedores de Autorización
Para representar condiciones de acceso complejas, se utilizan contenedores.
<RequireAll> ... </RequireAll>
Engloba un conjunto de directivas de autorización. Ninguna debe devolver FALSO y al menos una debe devolver CIERTO para conceder el acceso.
<RequireAny> ... </RequireAny>
Engloba un conjunto de directivas de autorización. Al menos una debe devolver CIERTO para conceder el acceso.
Ejemplo:
<RequireAny>
Require host aulaser.com
Require ip 192.168.4.30
</RequireAny>
Con que una de las dos directivas anteriores devuelva cierto, se concede el acceso.
<RequireNone> ... </RequireNone>
Engloba un conjunto de directivas de autorización. Si alguna de las directivas internas devuelve CIERTO, el acceso es denegado. No sirve para conceder acceso, sólo para denegarlo bajo ciertas condiciones.
Autenticación y Autorización: BASIC y DIGEST
Dos mecanismos de autenticación comunes en Apache son BASIC y DIGEST. Se pueden utilizar para limitar el acceso a ciertas carpetas mediante usuario y contraseña.
Diferencias Principales
- BASIC: Los datos de autenticación (usuario y contraseña) se envían codificados en Base64, pero no cifrados. Vulnerable si no se usa sobre HTTPS.
- DIGEST: El envío se realiza de manera más segura, utilizando un desafío y hash MD5, evitando enviar la contraseña en claro o directamente codificada.
Configuración (Ejemplo HTTP BASIC)
Para configurar la autenticación BASIC en un directorio (por ejemplo, dentro de la configuración de un <Directory /var/www/html/intranet>
o en un .htaccess
), se usan directivas como las siguientes:
Interpretación de Directivas Comunes
AuthType
: Especifica el tipo de autenticación (Basic
oDigest
).AuthName
: Especifica el 'reino' o mensaje que se muestra en la ventana de autenticación del navegador. Ejemplo:"Acceso Restringido"
.AuthUserFile
: Indica la ruta absoluta al archivo que contiene los usuarios y contraseñas. Este archivo se gestiona normalmente con la utilidadhtpasswd
(para Basic) ohtdigest
(para Digest).AuthDigestProvider
: (Para Digest) Indica cómo se realizará la autenticación (ej.file
).Require
: Especifica qué usuarios autenticados tienen permiso.Require valid-user
: Permite el acceso a cualquier usuario válido listado en elAuthUserFile
y que se haya autenticado correctamente.Require user usuario1 usuario2
: Permite el acceso solo a los usuarios especificados.
Uso de Archivos .htaccess
Los archivos .htaccess
(hypertext access) permiten gestionar la configuración de Apache a nivel de directorio. Son útiles para que usuarios sin permisos de administración sobre el servidor principal puedan modificar la configuración de sus propios sitios o directorios web.
Con un archivo .htaccess
, un usuario puede definir directivas específicas (si están permitidas por la configuración principal mediante AllowOverride
) para las carpetas donde reside el archivo y sus subcarpetas.
Ventajas:
- Permiten cambios de configuración sin necesidad de reiniciar el servidor Apache.
- Facilitan la delegación de ciertas configuraciones.
Desventajas:
- Pueden afectar al rendimiento, ya que Apache busca y procesa estos archivos en cada solicitud si están habilitados.
- Pueden generar problemas de seguridad si no se configuran adecuadamente los permisos y las directivas permitidas (
AllowOverride
).
Nota sobre Archivos de Log
La ubicación de los archivos de log de Apache (errores y acceso) suele definirse en la configuración principal. Para encontrar la ruta exacta en sistemas basados en Debian/Ubuntu, a menudo se utiliza la variable de entorno definida en /etc/apache2/envvars
. Por defecto, la variable APACHE_LOG_DIR
apunta a /var/log/apache2/
.