¿Puede Apache2 funcionar sin archivos conf?

¿Puede Apache2 funcionar sin archivos conf?

Sucedió que los archivos conf de Apache2 contienen variables de entorno con contraseñas y otros datos valiosos. Después de iniciar Apache2, eliminé mis archivos de configuración. Sé que para reiniciar tendré que crear estos archivos nuevamente.

¿Cuánto tiempo continuará apache2 funcionando como se esperaba (mostrando mis sitios)? ¿Apache2 lee archivos conf después de iniciarse?

Lo pregunto porque sucedió que no reinicié los servidores pero muestran la página predeterminada de Apache Ubuntu.

ps-aux | grep apache

www-data 27019  0.0  0.0 424372 12780 ?        S    15:52   0:00 /usr/sbin/apache2 -k start
www-data 27963  0.0  0.0 424372 12800 ?        S    16:46   0:00 /usr/sbin/apache2 -k start
www-data 27964  0.0  0.0 423968 12500 ?        S    16:46   0:00 /usr/sbin/apache2 -k start
www-data 28159  0.0  0.0 423968 12424 ?        S    16:59   0:00 /usr/sbin/apache2 -k start
www-data 28607  0.0  0.0 423968 11044 ?        S    17:19   0:00 /usr/sbin/apache2 -k start
ubuntu   28688  0.0  0.0  12948   956 pts/0    R+   17:23   0:00 grep --color=auto apache
root     28766  0.0  0.2 423888 34928 ?        Ss    2018  06:14 /usr/sbin/apache2 -k start

UPD: sé que esta es una mala forma de eliminar archivos de configuración.

Respuesta1

Como ha dicho @djsmiley2k, Apache seguirá funcionando sin archivos de configuración si los archivos de configuración existían cuando se inició. Y no, ésta no es una buena solución, como él mismo ha dicho y usted sabe.

Dicho esto, en respuesta a si apache2trabajaro no... yo diría "No".

La mayoría de los sistemas reinician Apache automáticamente y/o recargan las configuraciones de Apache por varias razones. Por ejemplo, normalmente Apache se reinicia cuando se rotan sus archivos de registro. Muchas de estas tareas automatizadas son necesarias para el correcto funcionamiento de un servidor web basado en Apache. También tendría que automatizar la recreación de los archivos de configuración... lo que significa que tendrá que almacenar las contraseñas en otro lugar, momento en el cual habrá frustrado el propósito de eliminar los archivos de configuración.

Además, hay reinicios no planificados... como cuando Apache2 falla. Por muy estable que sea, Apache no es a prueba de balas. El SOP consiste en contar con algún método para observar el proceso de Apache y reiniciarlo automáticamente si se bloquea o falla. Muchos sistemas modernos utilizan systemd para esto. Nuevamente, puede agregar la reconstrucción automática de los archivos de configuración al proceso de reinicio... pero hacerlo aún frustra el propósito de eliminar los archivos de configuración para empezar.

La verdadera solución aquí es proteger sus datos confidenciales.Las variables de entorno deben establecerse mediante cualquier herramienta que esté utilizando para administrar el proceso de Apache. Systemd (por ejemplo)proporciona herramientaspara esto. Contraseñas utilizadas paraautenticación localdebe cifrarse y almacenarse en archivos que solo el usuario que ejecuta Apache (es decir, root) puede leer/escribir y, especialmente, no el que lee los archivos (es decir, www-data).

Si tiene contraseñas utilizadas para la autenticación remota (es decir, autenticación desde su servidor web a otro servidor o servicio... como una base de datos), entonces debería considerar reemplazarlas con claves públicas/privadas previamente compartidas, como las que se usan para la autenticación ssh... sin mencionar el cifrado entre servidores remotos (en serio, túneles ssh, cosas buenas)... nuevamente, almacenados en archivos a los que solo puede acceder el usuario privilegiado que inicia Apache. Y, sinceramente, el propio Apache no debería encargarse de la tarea de autenticación en otro servicio...

Respuesta2

poderelimine los archivos una vez que se inicie Apache y continuará ejecutándose hasta que necesite leer los archivos nuevamente (por ejemplo, si reinició el demonio).

Esto parece ser unX->Yproblema, y ​​en realidad no ha planteado su problema, simplemente hizo una pregunta sobre lo que podría creer que es una solución. Sin embargo, no es una solución aconsejable.

Respuesta3

Si bien estoy de acuerdo con no almacenar datos críticos directamente dentro de los archivos de configuración de Apache, aquí hay una idea diferente. Definitivamente, no contraseñas de ningún tipo.

Puede crear sus propios archivos *.conf dentro de la carpeta conf.d. Apache todavía los cargará.

Luego migre todos los datos valiosos a un nuevo archivo .conf. Ahora sólo tienes 1 archivo para eliminar y restablecer.

Por lo tanto, Apache todavía tendría algunos datos de configuración disponibles y no comenzaría como una instalación de Apache en blanco. Obviamente la carpeta documentRoot es la más importante.

información relacionada