Ausnahme gefangen: SSL certificate problem: certificate is not yet valid 📌 Apache: So installieren und nutzen Sie den Webserver in Linux

🏠 Team IT Security News

TSecurity.de ist eine Online-Plattform, die sich auf die Bereitstellung von Informationen,alle 15 Minuten neuste Nachrichten, Bildungsressourcen und Dienstleistungen rund um das Thema IT-Sicherheit spezialisiert hat.
Ob es sich um aktuelle Nachrichten, Fachartikel, Blogbeiträge, Webinare, Tutorials, oder Tipps & Tricks handelt, TSecurity.de bietet seinen Nutzern einen umfassenden Überblick über die wichtigsten Aspekte der IT-Sicherheit in einer sich ständig verändernden digitalen Welt.

16.12.2023 - TIP: Wer den Cookie Consent Banner akzeptiert, kann z.B. von Englisch nach Deutsch übersetzen, erst Englisch auswählen dann wieder Deutsch!

Google Android Playstore Download Button für Team IT Security



📚 Apache: So installieren und nutzen Sie den Webserver in Linux


💡 Newskategorie: Windows Tipps
🔗 Quelle: pcwelt.de

Apache ist nicht die einzige Serversoftware zum Ausliefern von Webseiten über das HTTP-Protokoll. Sie ist aber die prominenteste und universellste, außerdem meistverbreitet und am besten dokumentiert.

Alternativen wie Nginx oder Lighttpd sind hinsichtlich Aufbau und Konfiguration ähnlich und punkten durch eventuelle Geschwindigkeitsvorteile.

Dieser Beitrag konzentriert sich ausschließlich auf Apache, zumal Leistungsvorteile von Nginx oder Lighttpd beim hier beschriebenen Einsatz im lokalen Netz nicht ins Gewicht fallen.

Siehe auch: SSH – So klappt die Fernwartung mit Linux

Installation des Apache-Servers

Meistens wird die Apache-Installation gleich im Rahmen eines kompletten LAMP-Servers beschrieben (Linux-Apache-My‑SQL-PHP). Unter der Annahme, dass Linux bereits vorliegt, verbleiben der Webserver Apache, die Datenbank My SQL (oder Maria DB) und die Script-Sprache PHP. Notwendig sind diese Zutaten tatsächlich für viele Webanwendungen, aber nicht überall. Apache kann auch ohne Datenbank und PHP immerhin statische HTML-Seiten ausliefern – eine Option, die für ein Intranetportal oder eine Homepage genügen kann.

Installation: Für die Installation des puren Webservers verwenden Sie im Terminal

sudo apt install apache2

Damit ist der Serverdienst auch sofort und automatisch gestartet. Im Browser auf dem betreffenden Rechner rufen Sie http://localhost auf und sehen dann die Apache-Standardseite („/var/www/html/index.html“). Auf allen anderen Rechnern im Netzwerk verwenden Sie die IP-Adresse des neuen Servers, also etwa „http://192.168.178.20“. Die IP-Angabe funktioniert natürlich auch auf dem Serverrechner selbst. Die IP-Adresse erfahren Sie auf dem Server mit „ip address“ oder über das Netzwerksymbol und „Netzwerkeinstellungen“ auf dem Desktop des Servers.

Hinweis: Die unkomplizierte Apache-Installation, die den Webserver auch gleich startet, hat nur eine wichtige Bedingung: Es darf auf dem System kein Snap-Container vorliegen, der seinen eigenen Apache-Server mitbringt (etwa Nextcloud). Die daraus resultierenden Konflikte sind eine Herausforderung und für Apache-Einsteiger unbedingt zu vermeiden.

Das ist weit mehr, als es scheint: Wenn Apache nach der Installation diese Standardseite („index.html“) im Browser anzeigt, ist der Weg für andere und eigene Inhalte geebnet.

Das ist weit mehr, als es scheint: Wenn Apache nach der Installation diese Standardseite („index.html“) im Browser anzeigt, ist der Weg für andere und eigene Inhalte geebnet.

IDG

Purer Apache für statische Portale

Nach der beschriebenen Installation liefert der Webserver die einzige statische Datei „index.html“ aus dem Standardpfad „/var/www/html/“ – mit der Apache-Meldung „It works!“ und einigen Infos. Mit anderen Worten: Beim Abruf der Serveradresse (Beispiel)

http://192.168.178.20

im Browser sieht der Webserver in seinem „DocumentRoot“-Verzeichnis nach, welche HTML-Dateien dort vorliegen. Die Datei „index. html“ (oder „index.php“, wenn PHP aktiv ist) ist die Standarddatei, die er ohne Namensangabe automatisch lädt. Liegen unter „/var/www/html/“ weitere HTML-Dateien vor, lädt Apache diese, sofern man sie im Browser explizit anfordert – etwa:

http://192.168.178.20/infos.html

Für eine Sammlung statischer Infodateien würde es also schon genügen, unter „/var/ www/html/“ einige HTML-Dateien abzulegen. Die automatisch gestartete „index.html“ wäre dann am besten durch eine Übersichtsseite zu ersetzen, die dann die Hyperlinks auf weitere Unterseiten anbietet. Bequeme HTML-Editoren für solche Aufgaben sind nicht rar: Mit Writer aus Libre Office oder Word aus Microsoft Office sind vorhandene Texte im Handumdrehen nach HTML umgewandelt oder bei Bedarf auch nachbearbeitet.

Statische Inhalte: Ein paar Anpassungen der originalen „index.html“ und eigene HTML-Dateien machen aus „It works!“ schnell ein eigenes Portal.

Statische Inhalte: Ein paar Anpassungen der originalen „index.html“ und eigene HTML-Dateien machen aus „It works!“ schnell ein eigenes Portal.

IDG

Damit sind aber die Möglichkeiten längst nicht ausgeschöpft. Neben HTML-Dateien sind zahlreiche andere Dateiformate unter „/var/www/html/“ sinnvoll, die jeder Browser anzeigen oder wiedergeben kann – pure Texte, PDFs oder auch Audiodateien. Diese kann Apache aufgrund des standardmäßig aktivierten Modules „autoindex“ ohne zusätzliche Software bereitstellen. Es genügt also, unter „/var/www/html“ Ordner wie „Texte“ oder „Musik“ zu erstellen und dorthin die gewünschten Dateien oder gleich ganze Verzeichnisstrukturen zu kopieren.

Überdies ist es möglich, einen Datenträger einfach nach „/var/www/html/[Name]“ zu mounten und auf diese Weise über Apache zugänglich zu machen. Die Navigation im Browser erfolgt intuitiv wie in einem Dateimanager. Dateiformate, die der Browser nicht anzeigen oder wiedergeben kann, führen standardmäßig zum Download auf das zugreifende System.

Standardmodul „autoindex“: Wo die Datei „index.html“ fehlt, bietet Apache eine Ordnernavigation. Alles, was der Browser kann, lässt sich anzeigen oder abspielen (Text, PDF, Audio).

Standardmodul „autoindex“: Wo die Datei „index.html“ fehlt, bietet Apache eine Ordnernavigation. Alles, was der Browser kann, lässt sich anzeigen oder abspielen (Text, PDF, Audio).

IDG

Linux: Die wichtigsten Systemdienste im Überblick

Konfigurationsdateien und Terminalbefehle

Wie angesprochen sucht Apache seine Inhalte standardmäßig unter „/var/www/ html/“. Dieses Startverzeichnis ist nicht hart codiert, sondern durch eine Apache-Konfigurationsdatei vorgegeben:

/etc/apache2/sites-enabled ist der wichtigste Ordner für die Konfiguration und enthält standardmäßig nur die Datei „000-default.conf“. Abgesehen von den #-Kommentarzeilen enthält die Datei nur eine Handvoll aktiver Anweisungen: Für Apache-Neulinge relevant ist vorläufig nur die Tatsache, dass hier das Apache-Startverzeichnis als

DocumentRoot /var/www/html

eingetragen ist und der Server über Port 80 kommuniziert:

Port 80 ist der Standardport für HTTP-Server mit dem Privileg, dass die Portangabe beim Zugriff unterbleiben darf. Standardmäßig ist daher der Zugriff mit „http:// [Adresse]“ funktionsidentisch mit „http:// [Adresse]:80“ und führt zu den Inhalten im „DocumentRoot“.

Diese Direktiven zeigen, dass Apache bei Bedarf auch andere Ports nutzen (etwa für eine zweite Serverinstanz) und dafür ein anderes Startverzeichnis („DocumentRoot“) verwenden kann. Einsteigern empfehlen wir, diese Vorgaben unverändert zu belassen. Unsere Hinweise auf diese Konfigurationsdatei und „DocumentRoot“ sind aber trotzdem Pflicht, weil manches fatal erscheinende Apache-Problem nur daran liegt, dass dieser Pfad nicht stimmt, sondern etwa „/var/www/html/wordpress“ lauten muss.

Aktive Website (000-default.conf): Die Basiskonfiguration besteht praktisch nur aus der Portangabe (80) und dem Startverzeichnis, ab welchem Apache die Daten ausliefert.

Aktive Website (000-default.conf): Die Basiskonfiguration besteht praktisch nur aus der Portangabe (80) und dem Startverzeichnis, ab welchem Apache die Daten ausliefert.

IDG

Noch ein Hinweis zum „DocumentRoot“: Der Startpfad ist zwar editierbar und variabel, aber aus Sicherheitsgründen nicht beliebig. Er sollte immer unter „/var/www/ html“ liegen, bei Bedarf in gesonderten Unterverzeichnissen wie schon oben für das Beispiel „wordpress“ angedeutet. Die Datei „000-default.conf“ unter „/etc/apache2/ sites-enabled“ ist nur ein Link auf die gleichnamige Konfigurationsdatei im Ordner „/etc/apache2/sites-available“. Ob eine Apache-Serverinstanz aktiv ist, entscheidet daher allein die Tatsache, dass ein Link unter „sites-enabled“ existiert. Für das Ein- oder Ausschalten – also das Setzen oder Entfernen des Links – gibt es diese Hilfsbefehle im Terminal:

sudo a2ensite #Einschalten
sudo a2dissite #Ausschalten

Die verfügbaren Instanzen werden automatisch zur Auswahl angezeigt. Leider erledigen diese Kommandos (und alle anderen „a2*“-Befehle) nicht selbständig, Apache über diese Änderung zu informieren. Dies muss danach mit

sudo systemctl restart apache2

erfolgen.

Dieser Befehl ist auch nach jeder Änderung in den Konfigurationsdateien nötig, damit der Webserver diese neu einliest.

/etc/apache2/ports.conf: Hier ist festgelegt, welche Netzwerkports der Webserver berücksichtigt. Standardmäßig sind das Port 80 (HTTP) und Port 443 (HTTPS). Einsteiger sollten dies so belassen. Einen triftigen Grund, dies zu ändern, gibt es nur, wenn der Server (unter „/etc/apache2/sites- enabled“) mehrere Instanzen ausliefern soll und daher verschiedene „VirtualHosts“ mit unterschiedlichen Ports benötigt. Ein weiterer zwingender Grund wäre ein zweiter aktiver HTTP-Server wie Nginx, der die Ports 80 und 443 für sich beansprucht.

Konfigurationsdatei „ports.conf“: Die Datei ist nur relevant, wenn Apache eine zweite Site anbieten soll. Diese muss dann eine andere Portnummer erhalten.

Konfigurationsdatei „ports.conf“: Die Datei ist nur relevant, wenn Apache eine zweite Site anbieten soll. Diese muss dann eine andere Portnummer erhalten.

IDG

/etc/apache2/apache2.conf: Dies ist die primäre Apache-Konfigurationsdatei, die vor und über einzelnen Serverinstanzen steht. Eventuelle Konfigurationsprobleme sind am wenigsten hier zu suchen, erst recht nicht, wenn man die „apache2.conf“ unverändert belässt.

/etc/apache2/mods-enabled: Exakt wie bei den Apache-Webseiten „/etc/apache2/ sites-“ gibt es auch für Apache-Module die korrespondierenden Verzeichnisse „/etc/ apache2/mods-available“ und „/etc/apache2/ mods-enabled“. Auch hier gilt das identische Muster, dass installierte und verfügbare Module („available“) durch eine Verlinkung nach („enabled“) aktiviert werden. Und auch hier gibt dafür die passenden Terminalhilfen a2enmod und a2dismod. Einsteigern ist zwar vom Ein- und Ausschalten von Apache-Modulen zunächst abzuraten, aber die Optionen des modularen Aufbaus sollten von Beginn an bewusst sein. So liefert Apache zwar nach

sudo a2dismod autoindex
sudo systemctl restart apache2

weiterhin HTML-Seiten aus, bietet ohne „autoindex“ aber keine Ordnernavigation mit beliebigen Dateiinhalten.

/etc/apache2/conf-enabled: Das Ordnerpaar „conf-available/conf-enabled“ nennen wir der Vollständigkeit halber. Aufbau und Linkmethode sind analog wie bei „sites“ und „mods“, desgleichen wieder die zugehörigen Terminalhilfen a2enconf und a2disconf. Anlass zu Eingriffen gibt es hier aber nicht.

Zum (De-)Aktivieren von Apache-Modulen gibt es die Kommandos a2enmod und a2dismod. Ohne Modulangabe erscheint die relativ unübersichtliche Gesamtliste zur Auswahl.

Zum (De-)Aktivieren von Apache-Modulen gibt es die Kommandos a2enmod und a2dismod. Ohne Modulangabe erscheint die relativ unübersichtliche Gesamtliste zur Auswahl.

IDG

Die Rechte im „DocumentRoot“

Welche Dateirechte unter „DocumentRoot“ gelten sollen, hat zwei Aspekte: Der erste ist schnell abgehakt, sofern wir hier vereinfachend davon ausgehen, dass nur eine Person für den Apache-Server verantwortlich ist und statische Inhalte nach „DocumentRoot“ kopieren oder dort auf Dateiebene ändern muss: Das kann dann einfach mit sudo im Terminal oder einem Dateimanager mit Systemverwalter-Rechten geschehen. Der zweite Aspekt ist, dass Apache selbst zumindest Lesezugriff auf alle Dateien und Ordner im „Document Root“ haben muss. Schreibrecht für Apache ist erforderlich, wenn der Webserver Basis einer CMS-Anwendung wie Mediawiki oder WordPress ist, die interaktives Anlegen und Ändern von Inhalten vorsehen.

Da Apache unter Debian/Ubuntu & Co. mit den Rechten des Kontos „www-data“ läuft, ist folgende Besitzvergabe für „Document Root“ zu empfehlen:

sudo chown -R www-data:www-data /var/www/html

Durch den Parameter „-R“ wirkt sich der Befehl rekursiv auf alle Unterordner und Dateien aus. Danach gehören alle Dateien und Ordner dem Benutzer „www-data“ und der gleichnamigen Gruppe. Dies als Voraussetzung können dann die Rechte mit diesen zwei Befehlszeilen

sudo find /var/www/html -type d -exec chmod 775 {} +
sudo find /var/www/html -type f -exec chmod 664 {} +

so gesetzt werden, dass der Besitzer (www-data) Vollzugriff erhält, andere Konten nur Leseberechtigung. Diese Berechtigungen für Apache müssen gegebenenfalls für neue externe Inhalte wiederholt werden, die mit root-Recht nach „DocumentRoot“ kopiert wurden.

PHP & Datenbank anbinden

Ein purer Apache mit statischen HTML-Seiten und optionaler Datenfreigabe mit Modulen wie dav oder autoindex bietet viele Möglichkeiten und ist dabei schnell und relativ einfach. Trotzdem werden die meisten Nutzer eine dynamische Lösung wie WordPress, Mediawiki, Dokuwiki oder Drupal bevorzugen.

Das ist technisch komplexer, weil jede Seite erst beim Abruf auf Basis von Markdown-Seiten oder Datenbankinhalten als HTML-Seite generiert wird. Es bedeutet auch größeren Lernaufwand, weil jede CMS-Lösung Einarbeitung fordert. Aber selbst ein kaum enger spezialisiertes CMS wie WordPress bietet doch enorme Vorteile – Seitenübersicht, einheitliches und leicht änderbares Aussehen für alle Seiten, einfache Verlinkung und zentrale Ressourcennutzung (Bilder et cetera), Suchfunktion, Onlinebearbeitung …

PHP installieren: Für CMS-Anwendungen benötigt Apache in jedem Fall die Script-Sprache PHP. Für eine PHP-Basisinstallation genügt dieser Befehl (Debian/Ubuntu):

sudo apt install php

Für Apache wird dabei unter „/etc/apache2/ mods-enabled“ automatisch das neue Modul php8.1 aktiviert (das ist Stand Ende 2022 und kann sich künftig ändern). Anweisungen, das PHP-Modul für Apache einzeln zu installieren und mit a2enmod zu aktivieren, sind daher in der Regel überflüssig.

PHP ist unkompliziert installiert, aber gerne ein Stolperstein nach Systemupgrades, die Apache nicht über eine neue PHP-Version informieren. Dies muss man bei Bedarf mit (Beispiel)

sudo a2dismod php7.4
sudo a2enmod php8.1

manuell nachholen, wobei Sie bei mehreren unter „/etc/apache2/mods-available“ angezeigten Versionen die ältere abschalten und die neuere aktivieren.

Datenbank installieren: PHP erzeugt dynamisch HTML-Seiten, wobei als Quelle meistens – aber nicht immer – eine SQL-Datenbank wie My SQL oder Maria DB dient. Ob ein Serverprojekt überhaupt eine Datenbank benötigt, ferner welche der beiden Datenbanken das CMS bevorzugt, ist den jeweiligen Systemvoraussetzungen zu entnehmen (siehe etwa WordPress). Da My SQL und Maria DB zu hundert Prozent kompatibel sind und Maria DB ressourcenschonender ist, wird heute meistens Maria DB empfohlen, das mit

sudo apt install mariadb-server

zu installieren ist und damit auch sofort als Systemdienst läuft. Nach diesen Voraussetzungen kann dann das gewünschte CMS installiert werden.

Aufgrund der Vielfalt und Unterschiede von Serverlösungen gehen wir hier auf PHPKonfiguration, Datenbankverwaltung und CMS-Projekte nicht weiter ein. Denn eigentlich haben wir damit das engere Thema „Apache-Server“ bereits verlassen. Als Vermittler zwischen Apache und Datenbank/ CMS dient die PHP-Script-Sprache. Apache selbst hat keine Informationen oder Konfigurationsangaben zur Datenbank.

Apache-Module: Autoindex, Webdav und mehr

Modul „autoindex“: Wie schon beschrieben, kann Apache ohne zusätzliche Software mit dem aktivierten Modul „autoindex“ Text- und PDF-, Audio- oder Bilddateien an alle Browser im Netzwerk ausliefern. Die Grenzen dieser einfachen Datenfreigabe setzt einerseits der Browser, der viele, aber eben längst nicht alle Formate liefern kann. Insbesondere bei Film- und Office-Formaten wird es dünn. Zweitens fehlt natürlich die Möglichkeit, Dateien auf den Server zu kopieren.

Webdav-Freigabe statt Samba: Alle Linux-Dateimanager erhalten über die IP-Adresse mit vorangestelltem „dav://“ vollen Zugriff auf einen Webdav-Ordner.

Webdav-Freigabe statt Samba: Alle Linux-Dateimanager erhalten über die IP-Adresse mit vorangestelltem „dav://“ vollen Zugriff auf einen Webdav-Ordner.

IDG

Module „dav“ und „dav_fs“: Mit aktiviertem Webdav erlaubt Apache Lese- und Schreibzugriff auf Dateiebene. Dafür muss man zunächst zwei weitere Apache-Module aktivieren:

sudo a2enmod dav dav_fs

Angenommen, im „DocumentRoot“ gibt es ein „Archiv“ („/var/www/html/archiv“), das per Webdav freigegeben werden soll. Dazu muss nun die bereits aktive Site „/etc/apache2/ sites-enabled/000-default.conf“ ergänzt werden, indem Sie oberhalb von „“ diese Zeilen eintragen:

Options Indexes MultiViews
Require all granted

Alias /archiv /var/www/html/Archiv/
DAV on Options +Indexes

Nachdem Apache mit

sudo systemctl restart apache2

neu gestartet wurde, kann jeder Linux-Dateimanager mit

dav://[IP-Adresse]/Archiv

zugreifen – und zwar ohne jede Legitimierung mit Lese- und Schreibrecht.

Modul „userdir“: Ein weiteres interessantes Freigabemodul ist „userdir“, das Sie mit

sudo a2enmod userdir

aktivieren. Der Systemnutzer kann dann unter „/home“ das Verzeichnis „public_ html“ erstellen und dort HTML-Dateien unterbringen, die dann über die Adresse „http://[IP-Adresse]/~[User]“ im Webserver erreichbar sind.

Productivity Software
...



📌 Apache: So installieren und nutzen Sie den Webserver in Linux


📈 47.96 Punkte

📌 Apache-Webserver auf Linux installieren - so geht's


📈 34.4 Punkte

📌 Chrome OS auf Laptop installieren: So installieren Sie einen Chrome OS-Klon auf älteren PCs und Notebooks


📈 24.65 Punkte

📌 Hyper-V Windows 10: So installieren und nutzen Sie den Virtualisierer in Windows 10


📈 24.02 Punkte

📌 So installieren und konfigurieren Sie den Apache für WordPress


📈 23.96 Punkte

📌 Optionsbleed: Apache-Webserver blutet


📈 21.45 Punkte

📌 Optionsbleed: Apache-Webserver blutet


📈 21.45 Punkte

📌 Apache Webserver: "Optionsbleed"-Bug legt Speicherinhalte offen


📈 21.45 Punkte

📌 Apache Webserver: "Optionsbleed"-Bug legt Speicherinhalte offen


📈 21.45 Punkte

📌 Webserver absichern: Tipps für Apache und Nginx


📈 21.45 Punkte

📌 Wichtige Sicherheitsupdates für Apache-Webserver


📈 21.45 Punkte

📌 Wichtige Sicherheitsupdates für Webserver Apache Tomcat


📈 21.45 Punkte

📌 Oracle Transportation Management 6.1/6.2 Apache Webserver denial of service


📈 21.45 Punkte

📌 NGINX vs Apache: Die beliebten Webserver im Vergleich


📈 21.45 Punkte

📌 Apache Airflow up to 1.8.2 Webserver Object Remote Code Execution


📈 21.45 Punkte

📌 Sicherheitsupdate: Angreifer könnten Webserver mit Apache Tomcat attackieren


📈 21.45 Punkte

📌 Sicherheitsupdate: Angreifer könnten Webserver mit Apache Tomcat attackieren


📈 21.45 Punkte

📌 Google und ISRG: Apache-Webserver bekommt Rust-Modul


📈 21.45 Punkte

📌 Apache-Webserver erhält Rust-TLS-Modul


📈 21.45 Punkte

📌 CVE-2022-38054 | Apache Airflow up to 2.3.3 Webserver Session Backend session fixiation


📈 21.45 Punkte

📌 Android Instant Apps: Apps nutzen, ohne sie zu installieren


📈 21.02 Punkte

📌 Android Instant Apps: Apps nutzen, ohne sie zu installieren


📈 21.02 Punkte

📌 Zoom auf Mac nutzen: So installieren Sie das Video-Chat-Tool


📈 21.02 Punkte

📌 Building a Data Lakehouse for Analyzing Elon Musk Tweets using MinIO, Apache Airflow, Apache Drill and Apache Superset


📈 20.31 Punkte

📌 Fernsteuerung: Windows, macOS und Linux auf dem iPad installieren und nutzen


📈 19.79 Punkte

📌 Windows, macOS und Linux auf dem iPad installieren und nutzen - Macwelt


📈 19.79 Punkte

📌 So stellen Sie einen Webserver in Microsoft-Netzen bereit


📈 18.4 Punkte

📌 Webserver optimieren: So decken Sie Schwachstellen auf


📈 18.4 Punkte

📌 Umfrage: Betreiben Sie einen eigenen Webserver?


📈 18.4 Punkte

📌 Diese Tipps sollten Sie beachten, ehe Sie WordPress installieren


📈 17.91 Punkte

📌 AMD Radeon Software Slimmer: So installieren Sie nur die Treiberpakete, die Sie brauchen


📈 17.91 Punkte

📌 Diese App kann Leben retten, darum sollten Sie sie schon jetzt installieren


📈 17.91 Punkte

📌 Tiny Tiny RSS für den eigenen Webserver einrichten


📈 17.68 Punkte

📌 Tiny Tiny RSS für den eigenen Webserver einrichten


📈 17.68 Punkte

📌 l+f: Vom Geschirrspüler auf den Webserver


📈 17.68 Punkte











matomo