Installieren Sie Apache auf Ubuntu 18.04 Bionic Beaver Linux

Installieren Sie Apache auf Ubuntu 18.04 Bionic Beaver Linux

Zielsetzung

Erfahren Sie, wie Apache auf Ubuntu 18 installieren.04, So konfigurieren Sie virtuelle Hosts, richten Sie die Firewall ein und verwenden Sie SSL -Zertifikate für eine sichere Verbindung

Anforderungen

  • Wurzelberechtigungen

Konventionen

  • # - Erfordert, dass gegebene Linux -Befehle entweder mit Root -Berechtigungen ausgeführt werden müssen
    direkt als Stammbenutzer oder durch Verwendung von sudo Befehl
  • $ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Einführung

Der Apache -Webserver benötigt keine großen Präsentationen: Open Source -Software, die von der Apache Foundation veröffentlicht wurde, ist einer der am häufigsten verwendeten Webserver der Welt. In diesem Tutorial werden wir sehen, wie es installiert wird, die Firewall -Konfiguration anpassen, um HTTP- und HTTPS -Verkehr zu ermöglichen, und virtuelle Hosts auf Ubuntu 18 einrichten.04.

Installation

Installieren des Apache -Webservers auf Ubuntu 18.04 Bionic Biber ist ein wirklich einfacher Prozess:

$ sudo APT-Get Update && apt-Get Installieren Sie Apache2

Ubuntu -Installationsskripte kümmern sich um das Starten und Aktivieren des Apache2 Service am Boot.

Firewall -Setup

Um auf den von Apache bedienten Standardinhalt zuzugreifen, müssen wir auf dem selben Computer, auf dem der Server ausgeführt wird Lokalhost in der Adressleiste. Wenn alles korrekt eingerichtet ist, sollte uns eine Seite mit dem „It funktioniert) begrüßen!" Nachricht:

Apache Willkommensseite

Wenn eine Firewall in unserem System aktiviert ist (wie es sollte), müssen wir den Inhalt außerhalb unseres Computers zugänglich machen, wir müssen eingehender Verkehr am Port zulassen 80. Der ausführende Befehl hängt vom in der Verwendung von Firewall -Manager ab. Zum Beispiel bei der Verwendung UFW (Ubuntus Standard), wir müssen ausführen:

$ sudo ufw erlauben http

In ähnlicher Weise, wenn es verwendet wird Firewall, Wir können rennen:

$ sudo firewall-cmd --permanent --add-service = http && firewall-cmd--Reload

Beachten Sie, dass der obige Befehl seine Auswirkungen auf die Standard -Firewall -Zone hat. Wenn wir mit einem anderen arbeiten wollen, müssen wir es mit dem angeben --Zone Möglichkeit.



Konfigurieren eines virtuellen Hosts

Der Apache -Webserver kann mehr als eine Website auf demselben Computer ausführen. Jeder Standort (ein virtueller Host in der Apache -Terminologie), der bedient werden sollte, muss eine eigene Konfiguration haben. Ein virtueller Host kann IP oder genannt werden.

In diesem Tutorial konzentrieren wir uns auf den zweiten Typ, da es am einfacher zu erstellen ist und nicht mehrere IP-Adressen benötigt (Namensbasierte virtuelle Hosts ermöglichen es vielen Websites, dieselbe Adresse zu teilen).

Der Standard -Virtual Host

Auf Ubuntu ist der Standard -Virtual Host in die definiert in die /etc/apache2/seites-verfügbar Verzeichnis im Inneren der 000 Default.Conf Datei. Schauen wir es uns an:

 [… .] Serveradmin webmaster@localhost documentroot/var/www/html [… .] Fehlerlog $ apache_log_dir/fehler.Log CustomLog $ apache_log_dir/Access.log kombiniert [… .]  
Kopieren

Der Die Anweisung in Zeile 1 wird verwendet, um die von Apache für einen bestimmten virtuellen Host verwendeten Einstellungen zu gruppieren. Das erste, was wir darin definiert haben, ist das *: 80 Anweisung. Dies zeigt die IP -Adresse und den Port an, der vom virtuellen Host verwendet wird.

Mehrere virtuelle Hosts können in derselben Datei definiert werden oder durch das Schema „Ein virtueller Host -Definition pro Datei“ befolgt werden. In beiden Fällen wird die erste Definition als Standard angesehen, wenn kein anderer virtueller Host von der Client -Anfrage übereinstimmt.

Der Serveradmin Anweisung in Zeile 3Is optional und wird verwendet, um die Kontaktadresse anzugeben, die der Webserver bei Fehlermeldungen anzeigt. Normalerweise möchten wir eine gültige E -Mail -Adresse als Argument dieser Richtlinie angeben, da der Webserver verwendet wird Mailto: Um den Administrator zu kontaktieren.

Dokument Root In Zeile 4Is obligatorisch und für die virtuelle Hostkonfiguration unerlässlich. Das Argument für diese Anweisung muss ein gültiger Dateisystempfad sein. Das bereitgestellte Verzeichnis wird als Stammverzeichnis des virtuellen Hosts angesehen und darf keine Nachverfolgung enthalten. In diesem Fall ist es das Dokument -Root -Verzeichnis /var/www/html. Wenn wir einen Blick auf seinen Inhalt werfen, sehen wir, dass es die enthält Index.html Seite, die als Server -Begrüßungsseite verwendet wird, die wir zuvor gesehen haben.

Die letzten beiden Anweisungen in Zeile 8 - 9 in diesem virtuellenHost sind Fehlerprotokoll Und CustomLog. Durch die Verwendung des ersten setzen wir die Datei, auf die der Server die auftretenden Fehler protokolliert. Die zweite wird stattdessen verwendet, um die an den Server gesendeten Anforderungen im angegebenen Format zu protokollieren (Sie können diese als Referenz für ein ausführliches Wissen über Protokollformate verwenden).



Erstellen Sie einen neuen virtuellen Host

Wir haben gesehen, wie der Standard -VirtualHost definiert ist. Nehmen wir nun an, wir möchten eine andere Website mit unserem Webserver bedienen: Wir müssen einen neuen virtuellen Host definieren, um unser Ziel erreichen zu können.

Wie oben erwähnt, müssen virtuelle Hosts -Dateien in der definiert werden /etc/apache2/seites-verfügbar Verzeichnis (zumindest in Debian-basierten Verteilungen): Deshalb werden wir unsere Datei dort erstellen. Bevor dies dies tun, möchten wir das Verzeichnis erstellen, das als unser verwendet werden soll Dokument Root, und erstellen Sie eine grundlegende Seite, die angezeigt werden soll, wenn wir die Website erreichen:

$ sudo mkdir/var/www/Beispiel && echo "Willkommen zum Beispiel!">/var/www/Beispiel/Index.html 

Wir können nun unseren virtuellen Host konfigurieren:

 Documentroot/var/www/Beispiel sservername www.Beispiel.lokal 

Dies ist die minimale Konfiguration, die zum Ausführen eines virtuellen Hosts erforderlich ist. Hier können wir eine neue Richtlinie sehen, Servername: Dies definiert unseren virtuellen Host. Sparen wir diese Datei als Beispiel.Conf. Um unseren virtuellenHost zu aktivieren, verwenden wir die a2ensit Befehl: Alles in diesem Befehl erstellen Sie einen Symlink der Datei in die /etc/apache2/sites-fähig Verzeichnis:

$ sudo a2ensit Beispiel.Conf

Danach müssen wir die Serverkonfiguration neu laden:

$ sudo systemctl laden apache2 neu laden2.Service

Wir haben unseren virtuellenHost definiert, aber da dies ein Test ist und wir keine haben DNS -Eintrag damit verbunden, um zu überprüfen, ob die Konfiguration funktioniert /etc/hosts Datei der Maschine, von der wir versuchen, die Website zu erreichen.

$ sudo echo "192.168.122.241 www.Beispiel.Lokale ">> /etc /hosts

Ohne diese Zeile kann (und ohne DNS -Eintrag) die Adresse des Servers mit dem Namen unseres virtuellenHosts und der direkten Verwendung des Server -IP den Standard -Virtual -Host „auslösen“.

Aus der Client -Maschine, wenn wir jetzt zu „www navigieren.Beispiel.Lokal “Wir sollten die minimale Seite sehen, die wir oben eingerichtet haben:

Beispiel VirtualHost Index

Einrichten von SSL

SSL, kurz für Sichern Sie die Steckdosen Es ist die Technologie, mit der wir die an der Verbindung zwischen dem Client und dem Server verbundenen Daten verschlüsseln können. Wenn SSL -Zertifikate verwendet werden, https (Hypertextübertragungsprotokoll sicher) Ersetzt HTTP in der URL.

SSL -Zertifikate werden von einer Zertifikatbehörde ausgestellt, die als vertrauenswürdige Dritte versichert, dass jemand wirklich derjenige ist, der behauptet, im Internet zu sein. SSL -Zertifikate können sehr teuer sein, es gibt jedoch zwei Hauptalternativen, um ein Zertifikat zu erhalten Lassen Sie uns verschlüsseln.

Generieren Sie ein selbstsigniertes SSL-Zertifikat

Obwohl es keine schwierige Aufgabe ist, ein selbstsigniertes Zertifikat zu generieren, kann es nicht nützlich sein, wenn Sie nur Verschlüsselung erreichen möchten, aber in Kontexten, in denen das Zertifikat selbst von einem vertrauenswürdigen Dritten unterzeichnet werden muss, ist es nicht verwendbar. Wir können ein selbstsigniertes Zertifikat erstellen, indem wir die verwenden OpenSSL Dienstprogramm:

$ sudo opensensl req -x509 \ -days 365 \ -SHA256 \ -Newkey RSA: 2048 \ -nodes \ -Keyout Beispiel.TEY \ -out -Beispiel -Zert.Pem 

Mal sehen, was dieser Befehl tut. Die erste Option, die wir begegnen, -x509, Ändert das Verhalten des Befehls so, dass das IT ein selbstsigniertes Zertifikat anstelle einer Zertifikatanforderung generiert.

Mit -Tage, Wir setzen die Gültigkeit in Tagen für das Zertifikat. Die nächste bereitgestellte Option ist -Newkey: damit erstellen wir einen neuen Schlüssel, in diesem Fall eine RSA Schlüssel mit der Größe von 2048 Bits. Für unseren Testfall möchten wir die private Schlüsseldatei nicht verschlüsseln, also haben wir verwendet -Knoten. Wenn diese Option weggelassen wird, wird die Datei, in der der Schlüssel gespeichert wird.

Mit -Keyout Und -aus Wir geben die Datei an, um den generierten Schlüssel bzw. das Zertifikat zu schreiben. Beim Start des Befehls werden wir aufgefordert, einige Fragen zu beantworten, und dann wird der Schlüssel und das Zertifikat generiert.

Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatanfrage aufgenommen werden. Was Sie eingeben möchten, ist der als als angesehene Name oder ein DN bezeichnet. Es gibt einige Felder, aber Sie können einige Felder leer lassen, es gibt einen Standardwert, wenn Sie eingeben. '.', Das Feld wird leer gelassen. ----- Ländername (2 Briefcode) [AU]: IT-Name oder Provinzname (Vollname) [SOND-STATE]: Lokalitätsname (z. B. Stadt) []: Milan-Organisation Name (z. :Schaden inc. Name der Organisationseinheit (z. B. Abschnitt) []: gebräuchlicher Name (e.G. Server FQDN oder Ihr Name) []: www.Beispiel.Lokale E -Mail -Adresse []: 

Der nächste Schritt besteht darin, unseren generierten Schlüssel und unser Zertifikat in die Kopie zu /etc/ssl/privat Und /etc/SSL/SSL-Certs Verzeichnisse jeweils:

$ sudo MV Beispiel-Cert.PEM/etc/ssl/certs

Das Zertifikat ist öffentlich und benötigt daher keine besondere Erlaubnis. Nun der Schlüssel:

$ sudo mv Beispiel.Schlüssel/etc/ssl/privat

Es ist wichtig, dass wir die Schlüsseldateiberechtigungen anpassen. Wenn wir das untersuchen /etc/ssl/privat Ordner können wir sehen, dass er dem gehört Wurzel Benutzer und der SSL-Cert Gruppe, und es hat 710 Als Berechtigungen, was bedeutet, dass der Eigentümer zwar vollständige Berechtigungen hat, kann der Gruppenbesitzer jedoch nur darauf zugreifen und seinen Inhalt auflisten und für andere keine Erlaubnis zulässig ist:

$ ls -ld/etc/ssl/private drwx--x --- 2 root ssl-cert 4096 16. März 11:57/etc/ssl/privat 

Ändern wir unsere wichtigsten Dateiberechtigungen entsprechend, wobei dem Eigentümer die Berechtigungen und das Schreiben von Berechtigungen und schreibgeschützte Berechtigungen für die Gruppe erhalten:

$ sudo chown root: SSL-Cert/etc/ssl/privat/Beispiel.Schlüssel $ sudo chmod 640/etc/ssl/privat/Beispiel.Taste 

Um unser Zertifikat zu verwenden, müssen wir jetzt das SSL Apache -Modul aktivieren. Wir tun es, indem wir die verwenden A2enmod Befehl:

$ sudo a2enmod ssl

Wir sind fast da. Jetzt ist es an der Zeit, unseren virtuellen Host zu ändern und auf diese Weise festzulegen:

 Documentroot/var/www/Beispiel sservername www.Beispiel.Lokal # SSL Engine SSlengine auf SSLCertificateFile/etc/SSL/Certs/Beispiel-Cert aktivieren.PEM SSLCertificateKeyFile/etc/ssl/privat/Beispiel.Taste 
Kopieren

Der Hafen 443 In Zeile 1IS Der Port, der für HTTPS verwendet wird (anstelle von Port 80, der für HTTP verwendet wird). Wir haben auch das hinzugefügt Sslengine on Anweisung in Zeile 6, die ziemlich selbsterklärend ist.

Schließlich in Zeile 8 - 9 haben wir die Pfade für unser Zertifikat- und Schlüsseldateien angegeben, indem wir die SslcertificateFile Und SslcertificateKeyFile Anweisungen.

Folgen Sie nun den Instuktionen, um Firewall -Anschlüsse zu öffnen, die zu Beginn des Tutorials verwendet werden, diesmal jedoch, um das zuzulassen https Service:

$ sudo ufw erlauben https

Schließlich laden Sie die Apache -Konfiguration neu:

$ sudo systemctl laden apache2 neu laden2

Alles erledigt. Wenn vom Kunden nun navigieren, navigieren wir nun zu https: // www.Beispiel.lokal Adresse, wir sollten sehen, dass der Webserver uns darauf aufmerksam macht, dass das gebrauchte Zertifikat nicht sicher ist (da es selbstvertrauen ist). Dies ist jedoch das Zeichen, dass unser Setup funktioniert und der Datenverkehr zwischen dem Client und dem Server verschlüsselt wird (Sie müssen eine Ausnahme für das Zertifikat hinzufügen, um es zu verwenden).

SSL -Browser -Alarm

Einrichten lassen uns verschlüsseln

Die Alternative zu kommerziellen und selbstsignierten Zertifikaten wird durch "Let's Encrypt" dargestellt. Lassen Sie uns eine kostenlose, automatisierte und offene Zertifikatsbehörde für Verschlüsseln. Sein Ziel ist es, automatisch ein vom Browser vertrauenswürdiger Zertifikat ohne menschliche Intervention zu erhalten.

Dies kann durch die Verwendung der erreicht werden GIPFEL Protokoll und a Zertifikatverwaltungsagent das läuft auf dem Server.

Um ein Zertifikat zu erhalten, müssen wir nachweisen, dass wir die Kontrolle über die Domäne haben, die wir für das Zertifikat verwenden möchten. Wenn wir keinen Shell -Zugriff auf dem Server haben, sollten wir uns an unseren Dienstanbieter wenden, um uns in unserem Namen zu aktivieren, aber wahrscheinlich befindet sich im Service -Konfigurationspanel einen speziellen Abschnitt.

Wenn wir stattdessen Shell -Zugriff auf den fraglichen Server haben, müssen wir zunächst die installieren certbot ACME -Client. Installieren Sie Certbot auf Ubuntu 18.04 Es ist nur eine Frage des Laufens:

$ sudo APT-Get-Update && apt-Get Installieren Sie Certbot Python-CertBot-Apache

Das CertBot -Paket ist mit einem ausgestattet Systemd -Timer Einheit, die zweimal täglich Certbot ausführt, um das Zertifikat auf dem neuesten Stand zu halten. Ein Zertifikat zu erhalten ist recht einfach:

$ sudo certbot --apache -m -d 

Damit dies funktioniert. Certbot fordert Sie auf einige Fragen zur Optimierung der Konfiguration auf, und wenn alles gut geht, sollte das Zertifikat und der Schlüssel in die gespeichert werden /etc/letSencrypt/live/ Verzeichnis. Schneiden Sie einfach Ihre virtuelle Host -Datei an, um auf diese zu verweisen, und Sie sind fertig!

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Installieren Sie Arch Linux in VMware Workstation
  • Ubuntu 20.04: WordPress mit Nginx -Installation
  • Dinge zu installieren auf Ubuntu 22.04
  • Aktivieren/deaktivieren Sie die Firewall auf Manjaro Linux
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
  • Ubuntu 20.04 WordPress mit Apache -Installation
  • Setup FTP Server unter Linux einrichten
  • So richten Sie VSFTPD auf Debian ein