Apache AuthType Basic Allow

Crys

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.634
Hallo miteinander,

ich habe einen Webserver mit Apache2, Ubuntu22. Eine Webseite wird per lokalen Proxy gehostet. Der Zugriff zur Webseite soll per "AuthType Basic" eingeschränkt werden.

Die sites-available conf-Datei sieht so aus:
Code:
<VirtualHost *:443>
    ServerName example.com

    ProxyPreserveHost On
    ProxyPass    / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    
    <Proxy *>
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
        ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=401.html\"></html>"
    </Proxy>
    
    <Proxy "*/401.html">
        Order Deny,Allow
        Allow from all
        Satisfy any
    </Proxy>
    
    # SSL etc.
</VirtualHost>
  • Aktuell wird überall nach Zugangsdaten verlangt, das soll so sein.
  • Wenn man etwas Falsches eingibt oder Abbrechen drück, landet man auf der 401-Seite. Das soll so sein.
Probleme:
  1. die 401-Seite soll erreichbar sein. Das ist so nicht der Fall. Wie bekomme ich das hin?
  2. Die root-Seite "example.com/" soll auch erreichbar sein. Also, wenn keinerlei Pfad angegeben ist. Wie kann ich das ergänzen?
Das Proxy hatte ich auch schon testweise durch <Location "/"> ersetzt, ohne erfolgt.

Viele Dank!
 
@Der Funkmeister
Kannst du deinen "Glauben" begründen 😉

Ich habe eben eine Netzwerkanalyse gemacht und festgestellt, dass die 401-Datei auf css- und js-Dateien in weiteren Ordnern zugreift, die natürlich nicht ausgeschlossen wurden ... 🙈
Ergänzung ()

Crys schrieb:
1. die 401-Seite soll erreichbar sein. Das ist so nicht der Fall. Wie bekomme ich das hin?
Man muss wie oben die 401.htm auch die Pfade der Referenzen (css, js, ...) ebenso einbinden. Dann ist die 401-Datei erreichbar.


Crys schrieb:
2. Die root-Seite "example.com/" soll auch erreichbar sein. Also, wenn keinerlei Pfad angegeben ist. Wie kann ich das ergänzen?
Das bekomme ich leider weiterhin nicht hin. Es sollen alle Seiten ausgeschlossen werden, nur die erlaubt, welche explizit erwähnt werden. Das Schema ist sonst umgekehrt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Tanzmusikus
Wenn das hier funktioniert:
Code:
    <Proxy "*/401.html">
        Order Deny,Allow
        Allow from all
        Satisfy any
    </Proxy>

Kann dann folgendes helfen ?
Code:
    <Proxy "*/index.html">
        Order Deny,Allow
        Allow from all
        Satisfy any
    </Proxy>

Oder wie auch immer deine default datei ist auf die weitergeleitet wird. index.php oder default.htm oder sonstwas. Direkt example.com/ wird ja nie gehostet. Das leitet ja immer weiter auf eine default datei.

Nebenbei Satisfy any scheint veraltet zu sein. Also kannst du die jeweilige Zeile komplett entfernen.
 
  • Gefällt mir
Reaktionen: Crys
Danke, funktioniert leider nicht.

Der Funkmeister schrieb:
Oder wie auch immer deine default datei ist auf die weitergeleitet wird. index.php oder default.htm oder sonstwas. Direkt example.com/ wird ja nie gehostet. Das leitet ja immer weiter auf eine default datei.
Bei der 401.htm-Datei funktioniert dies auch nicht, weil diese in der URL auch so genannt wird. Wenn ich eine "/test/index.htm" Datei erstelle, welche durch "/test/" aufgerufen wird, kann ich diese auch nur durch "<Proxy "*/test/"> erreichen und nicht mit Suffix.

Der Funkmeister schrieb:
Nebenbei Satisfy any scheint veraltet zu sein. Also kannst du die jeweilige Zeile komplett entfernen.
Hast du dazu eine Quelle? Wenn ich dies entferne, funktioniert das Allow bei der 401-Datei auch nicht mehr (und auch sonst nirgendwo).
 
Zurück
Oben