Frage Verhindern Sie, dass Apache nach der Installation von apt-get gestartet wird


Wenn ich apt-get install apache2 Der Server startet automatisch, wenn die Installation abgeschlossen ist, und die Apache-Standardkonfiguration macht alles möglich /var/www/ für die Kunden zugänglich. Wenn ich vor der Installation von Apache serverseitige Scripts oder andere geheime Informationen in diesem Verzeichnis habe, ist es öffentlich zugänglich, bis ich die Apache-Konfiguration ändere und Apache neu starte oder Apache stoppe.

Ich kann dies tun

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

Und dann gibt es nur ein kurzes Fenster, in dem das geheime Zeug zugänglich ist, aber es wäre vorzuziehen, Apache davon abzuhalten, überhaupt automatisch zu starten und niemals zu exponieren /var/www/ sogar für einen Moment.

Gibt es irgendwelche Optionen, an die ich mich wenden kann? apt-get install oder andere Möglichkeiten, um zu verhindern, dass Apache nach der Installation automatisch gestartet wird?


14
2018-04-09 15:37


Ursprung


Ich weiß nicht, was das Verhalten ist, wenn Sie Apache selbst kompilieren anstatt zu verwenden apt-get. Ich nehme an, wenn Sie es selbst kompilieren, können Sie den Code finden, der Apache nach der Installation startet und es deaktiviert. Das könnte eine vernünftige Antwort sein, wenn jemand etwas ausführlicher beschreiben kann. Die ideale Antwort auf die Frage würde jedoch immer noch verwendet werden apt-get. - David Winiecki
Warum nicht gerade eine Firewall von Ihrem Server für eine Minute während des Upgrades? - EEAA
Ich denke, meine Frage ist eine Art Duplikat von diesem auf askubuntu.com: askubuntu.com/questions/74061/... - David Winiecki
Noch eine weitere Option: Verwenden Sie Red Hat / CentOS-Distributionen, die nicht unter diesen oder irgendwelchen anderen Debian-Wahnsinns leiden. - Michael Hampton♦


Antworten:


Versuche dies:

  1. Erstellen Sie eine Datei /usr/sbin/policy-rc.d mit folgendem Inhalt:
#!/bin/sh  
exit 101
  1. Mach es ausführbar:
chmod +x /usr/sbin/policy-rc.d

Danach werden alle Pakete installiert, aber die Dienste werden nicht gestartet.

Sobald Sie fertig sind, können Sie die Datei entfernen:

rm -f /usr/sbin/policy-rc.d

13
2018-04-09 16:05



Ich versuche das. Mehr Infos hier: jpetazzo.github.io/2013/10/06/... (Ich werde verwenden #! obwohl.) - David Winiecki


Viele Möglichkeiten:

  1. Verschieben Sie den geschlossenen Quellinhalt aus /var/www
  2. Ändern Sie die Berechtigungen für diesen Inhalt, sodass der Apache-Benutzer sie nicht lesen kann
  3. Iptables, um Port 80/443 Verkehr zu stoppen
  4. Übergeben Sie eine Runlevel-Umgebungsvariable an apt-get:
sudo RUNLEVEL=1 apt-get install apache2

9
2018-04-09 16:00



Würde Apache2 nicht die "aktuellen" Konfigurationsdateien an Ort und Stelle lassen? Zum Beispiel würde eine Vorlage in /etc/apache2/httpd.conf nicht überschrieben werden, oder? - Hyppy
Ich denke, das Ändern der Apache-Konfiguration (nachdem man / var / www mit einer der Methoden in diesen Antworten nicht zugänglich gemacht hat) ist impliziert. - David Winiecki
Ich meine, ich glaube nicht, dass irgendeine dieser 4 Methoden die Apache-Konfiguration verändern wird. - David Winiecki
Ich denke, ich werde es benutzen RUNLEVEL=1 weil es scheint, als wäre die einfachste option und es funktionierte in einem test, aber iptables oder eine andere firewall fühlt sich wie der richtige weg. - David Winiecki
RUNLEVEL=1 ist perfekt! Vielen Dank! - JakeGould