🌐 Pi Webserver: Statisches Hosting mit NGINX

Abgeschlossenes Projekt: Übergangs-Webserver auf einem Raspberry Pi 1 B mit NGINX.

← Zurück zur Projektübersicht

1. Zielsetzung und Hardware

Um die Domain **tshrz.de** sofort online zu bringen, wurde ein älterer Raspberry Pi 1 B als minimalistischer, stromsparender Übergangs-Webserver genutzt. Lighttpd wurde aufgrund seiner extrem geringen Ressourcenanforderungen gewählt.

Bild des Raspberry Pi 1 B Boards

Hardware-Basis

2. NGINX Software-Installation

Wegen anfänglicher Schwierigkeiten bei der HTTPS-Weiterleitung mit Lighttpd wurde auf den ressourcenschonenden **NGINX** Webserver umgestellt, was die Konfigurationsprobleme sofort löste.

Installation und Konfiguration

# NGINX installieren
sudo apt update
sudo apt install nginx -y

# Standard-Konfiguration des NGINX Web-Root anpassen (z.B. nach /var/www/tshrz.de)
# sudo nano /etc/nginx/sites-available/default

# NGINX neustarten
sudo systemctl restart nginx

Der NGINX-Service sollte automatisch starten. Die finale Konfiguration beinhaltet die Weiterleitung von HTTP auf HTTPS, die über NGINX problemlos eingerichtet werden konnte.

3. FritzBox Port-Weiterleitung

Zielsetzung

Um den Webserver vom Internet aus erreichbar zu machen, muss der Traffic auf Port 80 vom WAN zum internen Webserver (dem Raspberry Pi) weitergeleitet werden. Für HTTPS muss zusätzlich Port 443 weitergeleitet werden.

Umsetzungsschritte

4. Projekt-Bereitstellung und Fazit

Test im lokalen Netz

Vor dem Test über das Internet sollte die Erreichbarkeit lokal über die statische IP des Pi getestet werden.

# Zugriff über Browser im lokalen Netz
http://[Statische IP des Pi]/
https://[Statische IP des Pi]/ (Nach Certbot-Installation)

Abschließender Test über die Domain

Nachdem die Port-Weiterleitungen aktiviert sind, kann die Website über die öffentliche Domain abgerufen werden. **Beachten Sie das potenzielle NAT-Loopback-Problem:** Viele Router können die öffentliche Domain von intern nicht korrekt auflösen. Ein Test sollte daher von einem **externen Netzwerk** (z. B. Smartphone-Hotspot) erfolgen.

# Zugriff über das Internet
https://tshrz.de/ (Sichere Verbindung)

**Fazit:** Dieses Projekt demonstriert, dass selbst ältere Hardware, wenn sie mit der richtigen, ressourcenschonenden Software (**NGINX**) kombiniert wird, für spezialisierte Aufgaben wie statisches Web-Hosting im Home-Lab eingesetzt werden kann. Die Implementierung von HTTPS und Härtung ist für einen sicheren Betrieb unerlässlich.

5. Let's Encrypt (HTTPS-Verschlüsselung)

Um eine sichere Verbindung zu gewährleisten und moderne Browser-Anforderungen zu erfüllen, wurde ein **SSL/TLS-Zertifikat** von Let's Encrypt über **Certbot** implementiert. Dies ermöglicht die verschlüsselte Kommunikation über HTTPS auf Port 443.

Certbot Installation und Zertifikatsanforderung

# Certbot und NGINX-Plugin installieren
sudo apt install certbot python3-certbot-nginx -y

# Zertifikat anfordern und NGINX-Konfiguration automatisch anpassen (für tshrz.de)
# Dieser Befehl übernimmt die Weiterleitung von HTTP (Port 80) auf HTTPS (Port 443)
sudo certbot --nginx -d tshrz.de

# Prüfen, ob der automatische Erneuerungs-Cronjob funktioniert
sudo certbot renew --dry-run

Die Installation passt die NGINX-Konfiguration automatisch an und konfiguriert die Domain für HTTPS. Es ist wichtig, die FritzBox-Weiterleitung für **Port 443** (HTTPS) zusätzlich zu Port 80 (für die Zertifikatsanforderung/Erneuerung) einzurichten.

6. Struktur- und Systemhärtung

Die Sicherheit des Webservers wurde durch grundlegende Härtungsmaßnahmen erhöht. Dies reduziert die Angriffsfläche des Systems, das direkt über das Internet erreichbar ist.

Maßnahmen im Detail