lighttpd hinter apache-proxy mit Kennwortschutz

  • 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

    Edited once, last by RasPi-Jo (November 9, 2016 at 10:23 AM).

  • 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

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!