lighttpd hinter apache-proxy mit Kennwortschutz

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Diese Anleitung richtet sich an Nutzer, die sich mit der grundsätzichen Konfiguration eines Apache-Web-Servers auskennen!
    Ich betreibe ein kleines Netzwerk mit einigen Windowsrechnern, einer Fritz!Box als Router, einem Debian-Server (zwei Domains) und einem Raspberry als Monitor für die Heizungsanlage.
    Anfragen aus dem Internet (Port 80 und 443) erfolgen an die reale Domain http://www.example.dyndns.org, solche aus dem Heimnetzwerk (nur Port 80) an die fiktive Domain myServer.xx.

    Code
    #~# ls /etc/apache2/sites-enabled/
    010-example.dyndns.conf -> /etc/apache2/sites-available/example.dyndns.org
    020-myserver.conf -> ../sites-available/myserver.xx

    - Die Fritz!Box (192.168.x.1) leitet alle Anfragen aus dem Internet für die Ports 80 und 443 am den Server (192.168.x.113) weiter.
    - Die Windows-Datei hosts regelt das Routing im Heimnetzwerk.
    - Alle Anfragen für http://www.example.dyndns.org auf Port 80 (HTTP) werden durch den Server auf HTTPS (Port 443) umgeleitet.
    - Alle Anfragen für myServer.xx werden über den Port 80 abgewickel.
    - Die Zugangsberechtigung für die Webseiten wird - wie bei Apache üblich - über die .htaccess geregelt


    Aus dem Heimnetzwerk lassen sich die Seiten des Raspberry leicht über http://192.168.x.130 erreichen. Etwas komplizerter ist das aus dem Internet wenn man gleichzeitig zum Datenschutz eine Kennwort-abfrage möchte. Da alle Anfragen aus dem Internet - dank Frizt!Box - auf dem ApacheSever (192.168.x.113) landen muss dieser sie an den Raspberry (192.168.x.130) weiterleiten.


    Die Webseiten des Raspberry sind jetzt - ungeschützt - aus dem Internet erreichbar! Das Programm lighttpd kennt zwar eine .htpasswd, daber keine .htaccess. Hier kommt die Datei /etc/lighttpd/conf-available/05-auth.conf als Muster ins Spiel. Sie ist die Vorlagen für meine Eigenkreation 06-my_auth.conf.


    Für den Pi gilt für alle Anfragen aus dem Internet der Debian-Server (192.168.x.113) als Quelle und genau für diese eine IP-Adresse wird eine Kennwort-Abfrage vorgeschrieben.

    Die Datei /home/pi/.passwd/.htpasswd_hzg wir - wie auch bei Apache - so erstellt:

    Code
    #~# printf "BENUTZERNAME:$(openssl passwd -1 KENNWORT )\n" >> /home/pi/.passwd/.htpasswd_hzg


    Die Begriffe BENUTZER und KENNWORT sind natürlich entsprechend zu ändern.
    Nicht vergessen die Eigenkreation zu "enablen" und ggf. die Datei 05-auth.conf zu "unablen"!

    Code
    #~# ls /etc/lighttpd/conf-enabled/
      06-my_auth.conf -> ../conf-available/06-my_auth.conf
      10-cgi.conf -> ../conf-available/10-cgi.conf
      10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
      10-ssl.conf -> ../conf-available/10-ssl.conf
      10-userdir.conf -> ../conf-available/10-userdir.conf
      15-fastcgi-php.conf -> /etc/lighttpd/conf-available/15-fastcgi-php.conf


    Vielleicht habe ich euch ja nichts neues erzählt, aber ich habe nach einer Lösung vergeblich gesucht.

    Gruß aus der Stadt der CeBIT
    Jochen

    Einmal editiert, zuletzt von RasPi-Jo (9. November 2016 um 10:23)

  • Meine Entscheidung für die Apache - Lighttpd - Kombination:

    • Den Apache-Server (... 113) betreibe ich schon fast 10 Jahre.
    • Der Raspberry (... 130) kam vor ziemlich 2 Jahren dazu.
    • Auf dem Raspberry ist der Web-Server lighttpd bereits vorinstalliert.
    • Lighttpd ist für die Aufgabe des Heizungsmonitoring vollkommen ausreichend (RRDTool, DS18B20, Python).
    • Für das gekapselte Monitoring auf dem Raspberry spricht:

      • Das klappt auch bei Netzwerkstörungen.
      • Minimierung des Datenverkehrs zwischen Server und Raspberry.
    • Der Zugriff aus dem Internet kam erst jetzt dazu.

    Gruß aus der Stadt der CeBIT
    Jochen

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!