Configuración Avanzada de Apache: Optimización y Seguridad del Servidor

Clasificado en Informática

Escrito el en español con un tamaño de 7,49 KB

Configuración y Optimización del Servidor Apache

Ajuste del Nivel de Registro (LogLevel)

Para modificar el nivel de registro en Apache, sigue estos pasos:

  1. Abre el archivo de configuración principal: /etc/apache2/apache2.conf.
  2. Busca la directiva LogLevel y ajusta su valor según tus necesidades (por ejemplo, warn, info, debug).

Personalización de la Ruta de los Archivos de Registro

Para cambiar la ubicación donde se guardan los archivos de registro:

  1. Crea la carpeta de destino si no existe.
  2. Abre /etc/apache2/apache2.conf.
  3. Localiza la directiva ErrorLog y modifica la ruta. Asegúrate de que termine en /error.log.
  4. Añade la directiva CustomLog debajo de ErrorLog. La ruta debe terminar en /access.log y estar entrecomillada, seguida de un espacio y la palabra common. Ejemplo: CustomLog "/var/miapache/access.log" common.
  5. Reinicia Apache: sudo apachectl restart.

Ajuste del Número Máximo de Instancias al Iniciar

Para configurar el número máximo de instancias de Apache al arrancar:

  1. Edita el archivo de configuración del módulo MPM prefork: Normalmente se encuentra en /etc/apache2/mods-enabled/mpm_prefork.conf (o el archivo MPM que esté habilitado).
  2. Modifica el valor de StartServers.
  3. Reinicia Apache: sudo apachectl restart.

Configuración de Múltiples Sitios Web (Virtual Hosts)

Para configurar el servidor y dar acceso a dos sitios:

a) Sitio 1: Ubicado en /home/usuario/empresas/edicionesuno, accesible por el puerto 8088 (localhost) y por el puerto 80 (www.edicionesuno.com y edicionesuno.com).

  1. Abre el archivo de configuración del sitio virtual (por ejemplo, 000-default.conf o un archivo específico en sites-available).
  2. Dentro del bloque <VirtualHost *:80>, añade:
    • ServerName www.edicionesuno.com
    • ServerAlias edicionesuno.com
    • ServerAdmin [email protected]
    • DocumentRoot /home/usuario/empresas/edicionesuno
    • DirectoryIndex inicio.html
    • Las directivas ErrorLog y CustomLog (configuradas previamente).
  3. Crea un bloque <VirtualHost *:8088> similar, pero con:
    • ServerName localhost
    • DocumentRoot apuntando al mismo directorio.
  4. Crea las páginas HTML en el directorio especificado.
  5. Edita el archivo /etc/hosts y añade:
    • 127.0.0.1 www.edicionesuno.com
    • 127.0.0.1 edicionesuno.com
  6. Si hay problemas de acceso, verifica la configuración de <Directory> en /etc/apache2/apache2.conf y asegúrate de que esté configurado como Require all granted.

Implementación de Acceso Restringido con Contraseña

Para restringir el acceso a un directorio mediante usuario y contraseña:

  1. Crea una carpeta para almacenar el archivo de contraseñas (ejemplo: /etc/apache2/.seguridad; el punto inicial hace que la carpeta sea oculta).
  2. Crea el archivo de contraseñas: sudo htpasswd -c /etc/apache2/.seguridad/.passwd nombre_usuario (usa -c solo la primera vez para crear el archivo; luego, omítelo para añadir usuarios).
  3. Abre el archivo apache2.conf o el archivo de configuración del VirtualHost correspondiente.
  4. Dentro de la sección <Directory> correspondiente al directorio que quieres proteger, añade:
    Options Indexes FollowSymLinks
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Introduzca usuario y contraseña"
    AuthUserFile /etc/apache2/.seguridad/.passwd
    Require user nombre_usuario
    Reemplaza `nombre_usuario` con el usuario real. Puedes usar `Require valid-user` para permitir el acceso a cualquier usuario válido en el archivo .passwd.

Creación y Configuración de un Certificado Digital (SSL)

Para crear e instalar un certificado digital en el servidor:

  1. Ve a /etc/apache2.
  2. Instala OpenSSL: sudo apt install openssl.
  3. Habilita el módulo SSL: sudo a2enmod ssl.
  4. Genera una clave RSA: sudo openssl genrsa -out nombre_clave.key 2048.
  5. Genera una solicitud de firma de certificado (CSR): sudo openssl req -new -key nombre_clave.key -out nombre_csr.csr.
  6. Completa los datos solicitados. En Common Name, introduce el nombre de dominio completo (FQDN) o la dirección IP pública del servidor.
  7. Genera el certificado SSL: sudo openssl x509 -req -days 365 -in nombre_csr.csr -signkey nombre_clave.key -out nombre_certificado.crt.
  8. Mueve los archivos:
    • sudo mv nombre_certificado.crt /etc/ssl/certs
    • sudo mv nombre_clave.key /etc/ssl/private
  9. Configura tu VirtualHost para usar SSL (añade un bloque <VirtualHost *:443> y configura las directivas SSLCertificateFile y SSLCertificateKeyFile).

Cambio del Documento por Defecto

Para cambiar el documento que se abre por defecto (por ejemplo, a indice.html):

Modifica la directiva DirectoryIndex en apache2.conf (para una configuración global) o dentro del bloque <VirtualHost> correspondiente. Ejemplo: DirectoryIndex indice.html.

Configuración de la Carga de Módulos Dinámicos

Para cargar un módulo dinámico:

  1. Utiliza el comando a2enmod: sudo a2enmod modulo_deseado.
  2. Reinicia Apache: sudo apachectl restart.

Función del Comando apache2ctl configtest

apache2ctl configtest se utiliza para verificar la sintaxis de los archivos de configuración de Apache antes de reiniciar el servidor. Esto ayuda a prevenir errores que podrían causar una caída del servicio.

Definición de un Host Virtual Adicional

Para definir un host virtual llamado miservidorapache.midominio.es en el puerto 81:

  1. Crea la estructura de directorios necesaria (por ejemplo, /var/www/miapache/midominio/index.html).
  2. Añade el puerto 81 a la escucha de Apache: Edita /etc/apache2/ports.conf y añade Listen 81.
  3. Crea un archivo de configuración para el nuevo sitio virtual: sudo nano /etc/apache2/sites-available/midominio.conf.
  4. Dentro del archivo midominio.conf, añade:
    <VirtualHost *:81>
      ServerName www.miapache.midominio.es
      ServerAdmin [email protected]
      ServerAlias miapache.midominio.es
      DocumentRoot /var/www/miapache/midominio
      <Directory /var/www/miapache/midominio>
          Require all granted
      </Directory>
    </VirtualHost>
  5. Habilita el nuevo sitio virtual: sudo a2ensite midominio.conf.
  6. Añade el dominio al archivo /etc/hosts: 127.0.0.1 www.miapache.midominio.es.
  7. Reinicia Apache: sudo apachectl restart.

Entradas relacionadas: