Veröffentlicht am
22. April 2024
In der komplexen Welt der Webserver-Administration hat Sicherheit höchste Priorität. Da die Datenübertragung zwischen Clients und Servern immer wichtiger wird, ist deren Schutz unerlässlich. Die Einrichtung eines Webservers unter Linux ist daher mit einer grundlegenden Aufgabe verbunden: der Gewährleistung der Sicherheit der übertragenen Daten. An vorderster Front steht dabei die Implementierung der Transport Layer Security (TLS)-Verschlüsselung. Für alle, die in der Webentwicklung oder im Webhosting tätig sind, ist die Beherrschung der TLS-Verschlüsselung nicht nur eine bewährte Methode, sondern eine grundlegende Fähigkeit zum Schutz sensibler, über das Web ausgetauschter Informationen.
Im zweiten Artikel unserer Reihe „Installation von Webservern auf verschiedenen Linux-Distributionen“ werden wir uns mit der Installation und Konfiguration eines leistungsstarken, ressourcenschonenden Reverse-Proxy-/Webservers namens „NGINX“ befassen, um die TLS-Verschlüsselung auf gängigen Betriebssystemen wie Red Hat Enterprise Linux (RHEL), Debian und OpenSUSE zu ermöglichen.
Dieser detaillierte Leitfaden bietet klare und praktische Schritte zur Implementierung einer zusätzlichen Sicherheitsebene auf Ihren NGINX-Webservern und gewährleistet somit die Vertraulichkeit und Integrität der Kommunikation.
Installation und Konfiguration von NGINX für TLS-Verschlüsselung unter RHEL/Debian/OpenSUSE
Bevor Sie jedoch mit der Konfiguration beginnen, müssen Sie unbedingt sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:
Voraussetzungen:
Aktualisierung bereits vorhandener Pakete. Für bestimmte Vorgänge im Verlauf des Verfahrens sind spezielle Berechtigungen erforderlich:
RHEL
dnf update -y
Hinweis: Verwenden Sie yum, falls dnf nicht auf dem Rechner vorhanden ist.
Ubuntu
apt update -y
Hinweis: Verwenden Sie apt-get, falls apt nicht auf dem Rechner installiert ist.
OpenSUSE
zypper refresh
Blockierender NGINX-Prozess:
Schreiben Sie die verschiedenen Befehle für jedes System auf:
RHEL
dnf install -y nginx
Ubuntu
sudo apt install nginx
OpenSUSE
zypper install -y nginx
Hinweis : Der Dienst sollte noch nicht gestartet sein. Er kann mit dem systemctl start nginx` und lauscht anschließend standardmäßig auf Port 80. Dies ist unsicher; es wird dringend empfohlen, HTTPS (Port 443) anstelle von HTTP (Port 80) zu verwenden.
Möchten Sie diese PKI-Praktiken implementieren?
Lassen Sie sich von Experten bei der Implementierung sicherer PKI-Lösungen für Ihr Unternehmen beraten.
Holen Sie sich Expertenhilfe2. Wenn eine Firewall konfiguriert ist, muss die Kommunikation über Port 443 zugelassen werden. Zum Beispiel mit folgendem Befehl für die Firewall:
firewall-cmd --permanent --add-port={443/tcp}
3. Zum Schluss den Firewall-Dienst neu laden:
firewall-cmd --reload
NGINX für die TLS-Verschlüsselung konfigurieren:
Zur Konfiguration von NGINX kann entweder die Datei `/etc/nginx/nginx.conf` .conf- Dateien im `/etc/nginx/conf.d` erstellt werden `conf.d` ein symbolischer Link erstellt werden, der auf die Konfigurationsdatei verweist.
In der gewählten Konfigurationsdatei kann ein virtueller Server erstellt werden, der umfassend konfiguriert werden kann.
server { listen 443 ssl; server_name www.hostname.com; ssl_certificate www.hostname.com.crt; ssl_certificate_key www.hostname.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; }
Anmerkungen:
Der Server sollte auf Port 443 lauschen und SSL sollte aktiviert sein.
Server_name ist der Hostname, der verwendet wird und unter dem der virtuelle Server erreichbar ist.
Der Pfad zum Serverzertifikat und dessen privatem Schlüssel muss angegeben werden. Über die Stream- und Horizon- Plattformen von Evertrust lassen sich Zertifikate problemlos ausstellen und verwalten.
Die SSL-Protokolle können konfiguriert werden. Aus Sicherheitsgründen wird dringend empfohlen, nur TLSv1.2 und TLSv1.3 oder ausschließlich TLSv1.3 zu aktivieren.
Der ssl_session_cache ermöglicht das Zwischenspeichern von SSL-Sitzungen und deren gemeinsame Nutzung durch mehrere Worker. In der vorherigen Konfiguration waren 10 Megabyte zulässig, was etwa 4000 Sitzungen entspricht.
Der Parameter ssl_session_timeout definiert, wie lange die Sitzung laufen kann, bevor ein Timeout auftritt.
Die www.hostname.com.key sollte aus Sicherheitsgründen so konfiguriert werden, dass nur der Root-Benutzer darauf zugreifen kann:
chown root:root /path/www.hostname.com.key
chmod 600 /Pfad/www.hostname.com.key
Um die Änderungen an der NGINX-Konfiguration anzuwenden, starten Sie den Dienst neu:
Testen Sie Ihre NGINX-Konfiguration:
nginx -t
Dann
systemctl restart nginx
Abschluss:
Zusammenfassend lässt sich sagen, dass die Installation eines Webservers auf einer Linux-Distribution ein entscheidender Schritt beim Einrichten einer Webhosting-Umgebung ist. Die Wahl der Distribution hängt von Ihren individuellen Anforderungen und Präferenzen ab. Alle Linux-Distributionen bieten robuste Funktionen und Leistungsoptimierungen für die effiziente Bereitstellung von Webinhalten. Indem Sie die entsprechenden Installationsanweisungen für Ihre gewählte Linux-Distribution befolgen, können Sie schnell einen zuverlässigen Webserver einrichten und Ihre Websites oder Anwendungen weltweit zugänglich machen.