Evite que Apache se inicie después de la instalación de apt-get

15

Cuando apt-get install apache2el servidor se inicia automáticamente cuando se completa la instalación, y la configuración predeterminada de Apache hace que todo sea /var/www/accesible para el lado del cliente. Por lo tanto, si tengo scripts del lado del servidor de origen cerrado u otra información secreta en ese directorio antes de instalar Apache, será accesible públicamente hasta que cambie la configuración de Apache y reinicie Apache o hasta que lo detenga.

puedo hacer esto

sudo apt-get install -y apache2
sudo service apache2 stop
# Finish setting up...

Y luego solo hay una breve ventana donde se puede acceder al material secreto, pero sería preferible evitar que Apache se inicie automáticamente y nunca exponer /var/www/ni siquiera por un momento.

¿Hay alguna opción a la que pueda recurrir apt-get installu otras formas de evitar que Apache se inicie automáticamente después de que se instale?

David Winiecki
fuente
No sé cuál es el comportamiento cuando compila Apache usted mismo en lugar de usarlo apt-get. Supongo que si lo compila usted mismo, puede encontrar el código que inicia Apache después de la instalación y deshabilitarlo. Esa podría ser una respuesta decente si alguien puede describir con más detalle. Sin embargo, la respuesta ideal a la pregunta como se indicó aún sería útil apt-get.
David Winiecki
55
¿Por qué no simplemente cortafuegos de su servidor durante un minuto mientras realiza la actualización?
EEAA
Creo que mi pregunta es una especie de duplicado de esta en askubuntu.com: askubuntu.com/questions/74061/…
David Winiecki
1
Otra opción más: utilizar las distribuciones de Red Hat / CentOS, que no sufren esta ni ninguna de las otras locuras de Debian.
Michael Hampton

Respuestas:

13

Prueba esto:

  1. Cree un archivo /usr/sbin/policy-rc.dcon el siguiente contenido:
#!/bin/sh  
exit 101
  1. Hazlo ejecutable:
chmod +x /usr/sbin/policy-rc.d

Después de esto, todos los paquetes se instalarán pero los servicios no se iniciarán.

Una vez que haya terminado, puede eliminar el archivo:

rm -f /usr/sbin/policy-rc.d
b13n1u
fuente
Estoy intentando esto Más información aquí: jpetazzo.github.io/2013/10/06/… (aunque voy a usar #!).
David Winiecki
10

Muchas opciones:

  1. Mueva el contenido de origen cerrado fuera de /var/www
  2. Cambie los permisos sobre ese contenido de modo que el usuario de apache no pueda leerlo
  3. Iptables para detener el tráfico del puerto 80/443
  4. Pase una variable de entorno de nivel de ejecución a apt-get:
sudo RUNLEVEL=1 apt-get install apache2
dmourati
fuente
¿La instalación de apache2 no dejaría los archivos de configuración "actuales" en su lugar? Por ejemplo, una plantilla que queda en /etc/apache2/httpd.conf no se sobrescribirá, ¿verdad?
Hyppy
Creo que cambiar la configuración de Apache (después de hacer que / var / www sea inaccesible usando uno de los métodos en estas respuestas) está implícito.
David Winiecki
Quiero decir, no creo que ninguno de estos 4 métodos modifique la configuración de Apache.
David Winiecki
1
Creo que lo voy a usar, RUNLEVEL=1ya que parece la opción más simple y funcionó en una prueba, pero iptables o algún otro firewall se siente de la manera correcta.
David Winiecki