Große Probleme mit dem Verzeichnisschutz

  • Für meinen Server hab ich den FQDN mit in meinen Verträgen.


    Für diesen habe im Punkt "Webspache" einen Unterordner mit einem Verzeichnischutz versehen ("User1", "****"). In diesem Ordner befinden sich dann weitere Unterordner, denen die ich auch mit einem Verzeichnisschutz versehen habe ("User2", "****"). Zusätzlich habe ich diesen Verzeichnissen User1 als Login hinzugefügt. Problem: Das wird ignoriert. In den erstellten .conf-File zum Vertrag steht lediglich "Require user User2". Hab den Verzeichnisschutz und die gespeicherten User schon zig mal neu erstellt - nix hat geholfen.


    Der "# password-protected directories:" block steht noch dazu in jedem "<VirtualHost>" Block - tut das Not?


    Als weiteres Problem tritt dabei auf, dass anscheinend bei jeder x-beliebige, nicht zugewiesene Subdomain bei diesem Vertrag und bei weiteren Verträgen nun diesen Verzeichnis-Login für User2 abfragt, obwohl der Unter-Unterordner gar nicht zu diesen Verträgen gehört ...


    Für sachdienliche Hinweise, die zu einer raschen Fehlerbeseitigung führen, bin ich sehr dankbar!

  • Für diesen habe im Punkt "Webspache" einen Unterordner mit einem Verzeichnischutz versehen ("User1", "****"). In diesem Ordner befinden sich dann weitere Unterordner, denen die ich auch mit einem Verzeichnisschutz versehen habe ("User2", "****"). Zusätzlich habe ich diesen Verzeichnissen User1 als Login hinzugefügt. Problem: Das wird ignoriert.


    Habe ich das richtig verstanden, dass Ihre Struktur etwa so aussieht:
    /pfad1/ => User1
    /pfad1/pfad2 => User1, User2


    ?


    Zitat

    Der "# password-protected directories:" block steht noch dazu in jedem "<VirtualHost>" Block - tut das Not?


    Ja, tut es - damit wird verhindert, dass man mit Aliasen, Symlinks, Proxy-Regeln o.ä. in einem anderen VirtualHost einen Passwortschutz umgeht.


    Zitat

    Als weiteres Problem tritt dabei auf, dass anscheinend bei jeder x-beliebige, nicht zugewiesene Subdomain bei diesem Vertrag und bei weiteren Verträgen nun diesen Verzeichnis-Login für User2 abfragt, obwohl der Unter-Unterordner gar nicht zu diesen Verträgen gehört ...


    Bitte bringen Sie ein genaues Beispiel, wie Ihre Verzeichnissstruktur aussieht und geschützt ist - ich verstehe das nicht so ganz (z.B. was Sie mit einer "nicht zugewiesenen Subdomain" meinen). Alternativ schicken Sie uns Screenshots der Passwortschutz-Einstellungen an support@liveconfig.com - wir schauen uns das gerne mal an.


    Viele Grüße


    -Klaus Keppler

  • Richtig verstanden. Folgende Struktur:


    /var/www/web01/htdocs (domain: example.com)
    /var/www/web01/htdocs/unterordner (protected1: User1)
    /var/www/web01/htdocs/unterordner/kundenzugriff1 (protected2: User1, User2) (domain: kunde1.example.com)
    /var/www/web01/htdocs/unterordner/kundenzugriff2 (protected3: User1, User3) (domain: kunde2.example.com)


    /var/www/web02/htdocs (domain: somedifferent.com)


    - server.example.com ist als rDNS der IP zugewiesen
    - hostname -f gibt "server.example.com" aus, hostname nur "server"
    - in der web01.conf ist für das Verzeichnis "/var/www/web01/htdocs/unterordner/kundenzugriff2" lediglich "Require user User3" aufgeführt
    - beim browsen von xyz.example.com sollte eigentlich die liveconfig errorpage angezeigt werden, jetzt bekommt man allerdings die Login-Box von protected3 angezeigt
    - die protected3 Passwort-Abfrage erhält man ebenfalls beim Aufruf der Server IP (server.example.com ist nicht in der Weboberfläche als Subdomain angelegt), beim Aufruf von "xyz.somedifferent.com" (ebenfalls nicht angelegt), usw.


    Was mir heute morgen noch aufgefallen ist:
    In sites-available existiert eine Konfiguration "000-default", die offensichtlich von liveconfig zuletzt bearbeitet wurde, aber nicht aktiviert ist (ich gehe mal davon aus, dass liveconfig diese normalerweise aktivieren würde). Möchte ich diese nun manuell aktivieren, stürzt Apache2 mit der Fehlermeldung ab, dass Port 443 nicht zugewiesen werden konnte.
    Wie ich dieser entnehmen konnte, sind dort alle /.errorFiles Aliase und dergleichen festgelegt


    Infos zum System:
    - LiveConfig 1.8.3-r3577
    - Debian GNU/Linux 8.0 (jessie)
    - Apache 2.4.10

  • Hallo,


    /var/www/web01/htdocs (domain: example.com)
    /var/www/web01/htdocs/unterordner (protected1: User1)
    /var/www/web01/htdocs/unterordner/kundenzugriff1 (protected2: User1, User2) (domain: kunde1.example.com)
    /var/www/web01/htdocs/unterordner/kundenzugriff2 (protected3: User1, User3) (domain: kunde2.example.com)


    Ich habe mal genau diese Struktur auf einem Debian 8 eingerichtet und kann keinerlei Probleme feststellen.
    User1 kann beide Websites (kunde1.example.com, kunde2.example.com) öffnen, die anderen beiden User nur jeweils eine (User2 -> kunde1, User3 -> kunde3).


    Vielleicht hatte Ihr Browser noch irgendwelche Zugangsdaten gespeichert, was zu Fehlern führte? Ggf mal Cache leeren bzw. mit einem Browser im Privat-Modus oder einem anderen Browser testen.
    (wir testen sowas übrigens immer mit curl oder lynx auf der Konsole)


    Zitat

    Was mir heute morgen noch aufgefallen ist:
    In sites-available existiert eine Konfiguration "000-default", die offensichtlich von liveconfig zuletzt bearbeitet wurde, aber nicht aktiviert ist (ich gehe mal davon aus, dass liveconfig diese normalerweise aktivieren würde).


    Das ist definitiv ein Fehler. Diese Datei sollte unter Debian 8 "000-default.conf" heißen und aktiviert sein.
    Haben Sie den Rechner neu aufgesetzt oder von einer früheren Debian-Version aktualisiert?
    Benennen Sie diese Datei bitte um (in 000-default.conf) und aktivieren Sie diese (a2enmod 000-default).


    Zitat

    Möchte ich diese nun manuell aktivieren, stürzt Apache2 mit der Fehlermeldung ab, dass Port 443 nicht zugewiesen werden konnte.


    Dann läuft auf Port 443 wohl noch irgendein anderer Dienst. Was liefert "netstat -tlpn | grep 443"?


    Viele Grüße


    -Klaus Keppler

  • Natürlich heißt die Datei 000-default.conf, klar - hab nur den Dateinamen ausgeschrieben. (000-default.conf befindet sich in "sites-available", nicht in "mods-available", muss ich also mit "a2ensite 000-default" aktivieren)


    Ohne 000-default.conf (netstat -tlpn | grep :443)
    tcp6 0 0 :::443 :::* LISTEN 28568/apache2


    Server läuft seit Debian 6 mittels dist-upgrades mittlerweile unter Debian 8.


    Browser Zwischenspeicher kann nicht sein - hab schon mehrfach anonym/auf unterschiedlichen Rechnern, etc. getestet ...


    Log sagt:
    [mpm_prefork:notice] [pid 28568] AH00171: Graceful restart requested, doing restart
    (98)Address already in use: AH00072: make_sock: could not bind to address MEINE_IP:443
    lclogsplit: got TERM signal
    [mpm_prefork:alert] [pid 28568] no listening sockets available, shutting down
    [:emerg] [pid 28568] AH00019: Unable to open logs, exiting


    Alle Apache2 "443" Referenzen (grep -rnw '/etc/apache2' -e "443")
    /etc/apache2/ports.conf:8: Listen 443
    /etc/apache2/ports.conf:12: Listen 443
    /etc/apache2/sites-available/000-default.conf:15: Listen MEINE_IP:443
    /etc/apache2/sites-available/000-default.conf:57:<VirtualHost MEINE_IP:443>
    /etc/apache2/sites-available/default-ssl.lcbak:2:<VirtualHost _default_:443>
    /etc/apache2/sites-available/default-ssl.conf:2: <VirtualHost _default_:443>
    /etc/apache2/sites-available/web01.conf:371:<VirtualHost MEINE_IP:443>
    /etc/apache2/sites-available/web01.conf:484:<VirtualHost MEINE_IP:443>
    /etc/apache2/ports.conf.lcbak:12: # If you add NameVirtualHost *:443 here, you will also have to change
    /etc/apache2/ports.conf.lcbak:14: # to <VirtualHost *:443>
    /etc/apache2/ports.conf.lcbak:17: Listen 443
    /etc/apache2/ports.conf.lcbak:21: Listen 443


    (in sites-enabled befinden sich lediglich die Kunden-*.conf-Dateien)


    Nimmt LC bei der Installation Änderungen an der ports.conf Datei vor (löscht "LISTEN ...") ??? Wurde vielleicht beim dist-upgrade überschrieben?

  • Hab heute morgen zu meiner letzten Idee noch eine .dpkg-old Datei gefunden, die anscheinend von LC irgendwann man überschrieben wurde. Hab diese nun wieder hergestellt und alle LC errorpages, etc. sind wieder verfügbar. Manchmal braucht es eben nur einen Denkanstoß.


    Allerdings,
    /var/www/web01/htdocs/unterordner/kundenzugriff1 (protected2: User1, User2) (domain: kunde1.example.com)
    /var/www/web01/htdocs/unterordner/kundenzugriff2 (protected3: User1, User3) (domain: kunde2.example.com)


    funktioniert auch weiterhin nicht für User1.


    Die von LC erstellten <Directory> Einträge aus meiner web01.conf:


    # password-protected directories:
    <Directory "/var/www/web01/htdocs/unterordner">
    AuthType Basic
    AuthUserFile /var/www/web01/conf/.htpasswd
    <IfModule mod_authz_groupfile.c>
    AuthGroupFile /dev/null
    </IfModule>
    AuthName "Private Dir"
    Require user "User1"
    </Directory>
    <Directory "/var/www/web01/htdocs/unterordner/kundenzugriff1">
    AuthType Basic
    AuthUserFile /var/www/web01/conf/.htpasswd
    <IfModule mod_authz_groupfile.c>
    AuthGroupFile /dev/null
    </IfModule>
    AuthName "For User2 eyes only"
    Require user "User2"
    </Directory>
    <Directory "/var/www/web01/htdocs/unterordner/kundenzugriff2">
    AuthType Basic
    AuthUserFile /var/www/web01/conf/.htpasswd
    <IfModule mod_authz_groupfile.c>
    AuthGroupFile /dev/null
    </IfModule>
    AuthName "For User3 eyes only"
    Require user "User3"
    </Directory>


    Alle Passwörter sind in der .htpasswd Datei vorhanden. User1 wurde für beide kundenzugriff-Ordnern per "vorhandenen Benutzer hinzufügen" in der Weboberfläche aktiviert.

  • Hab heute morgen zu meiner letzten Idee noch eine .dpkg-old Datei gefunden, die anscheinend von LC irgendwann man überschrieben wurde.


    Eine .dpkg-old wird dann erzeugt, wenn Sie z.B. das Apache-Paket aktualisieren und die von LiveConfig erzeugte Konfiguration mit der vom Debian-Paket überschreiben (also genau anders herum). Wenn es Änderungen an Konfigurationsdateien gibt, wird bei einem Update nachgefragt, ob Sie die bestehende Konfiguration beibehalten oder überschreiben wollen - Standard ist "beibehalten" - Sie haben dann vermutlich "überschreiben" gewählt (so wurde die bestehende (LiveConfig-)Konfiguration in die .dpkg-old weggesichert).


    Zitat

    Allerdings,
    /var/www/web01/htdocs/unterordner/kundenzugriff1 (protected2: User1, User2) (domain: kunde1.example.com)
    /var/www/web01/htdocs/unterordner/kundenzugriff2 (protected3: User1, User3) (domain: kunde2.example.com)


    funktioniert auch weiterhin nicht für User1.


    Die von LC erstellten <Directory> Einträge aus meiner web01.conf:


    Da ist etwas falsch - wenn User1 auch Zugriff auf "kundenzugriff1" bzw "kundenzugriff2" haben soll, dann muss der bei "Require user" auch mit drin stehen.
    Prüfen Sie bitte noch mal in LiveConfig, ob Sie User1 wirklich zum jeweiligen Ordner hinzugefügt haben. Das sollte dann so aussehen:
    forum.liveconfig.com/cms/attachment/13/

  • Zitat

    Eine .dpkg-old wird dann erzeugt, wenn Sie z.B. das Apache-Paket aktualisieren und die von LiveConfig erzeugte Konfiguration mit der vom Debian-Paket überschreiben (also genau anders herum).


    Genau so meinte ich das auch - ich hatte schon bevor ich die Anleitung hier im Forum notiert hatte auf Jessie aktualisiert und zunächst keine Fehler feststellen können. Also, alles gut soweit.


    Zitat

    Prüfen Sie bitte noch mal in LiveConfig, ob Sie User1 wirklich zum jeweiligen Ordner hinzugefügt haben. Das sollte dann so aussehen:


    Jupp, genau so sieht es in meinem Admin aus. Die conf Datei trägt den aktuellen Zeitstempel.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!