PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit .htaccess und Satisfy



dingeling
22.04.09, 14:00
Hi,

ich hab grad ein kniffliges Problem mit meinem Apache2 auf Lenny und bekomms einfach nicht hin.
Folgendes:
Ich hab in einer .htaccess folgende Einträge gemacht:

AuthType Basic
AuthName "Passwort-Bereich"
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
AuthLDAPURL "ldap://ip/dc=SLD,dc=FLD?Query?sub"
AuthLDAPBindDN "user"
AuthLDAPBindPassword "geheim"
AuthUserFile htusers
Require valid-user
Deny from all
Allow from 123.123.123 123.123.124
Satisfy Any

Damit sind von bestimmten IP-Adressbereichen Zugriffe ohne Anmeldung möglich; Bei Zugriffen außerhalb dieser Adressbereiche bekommen anhand einer Abfrage auf einer ADS mittels LDAP Benutzer, die in der Datei "htusers" eingetragen sind, Zugriff auf die Seiten.
Das funktioniert auch wunderbar, genau so wie es sein soll.
Problem dabei ist aber, das jetzt jeder Benutzer, der sich per LDAP authentifiziert hat, auch die .htaccess lesen kann.
Und nebenbei auch noch sämtliche Dateien meiner Unterordner (also auch config.php usw), obwohl die ja nochmal per .htaccess geschützt sind.
Da ja .htaccess auf Unterordner vererbt wird, kann ich das noch nachvollziehen - aber warum kann ich überhaupt die .htaccess lesen?

Natürlich hab ich in der apache2.conf den Zugriff darauf gesperrt:

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

Wenn ich die "Satisfy Any" aus der .htaccess entferne, ist auch wieder kein Zugriff darauf mehr möglich (access denied), aber auch keine Anmeldung mehr so wie ich das will...

Kann mir da vielleicht einer weiterhelfen?
Danke schon mal, dingeling

dingeling
23.04.09, 07:10
Es ist zum Haare ausreißen.
Sobald ich die Option "Satisfy Any" mit ins Spiel bringe, werden alle anderen Regeln einfach ignoriert, nachdem ich mich angemeldet hab.
Jetzt habs schon mit Alias versucht, die Optionen direkt in http-Konfiguration des Ordners gelegt, einen anderen Apache-Server versucht - immer mit dem gleichen Effekt.
Ich seh den Wald vor lauter Bäumen nicht mehr:ugly:
Das kann doch so nicht gewollt sein...

Stormbringer
23.04.09, 08:41
Liegt es vllt. wegen der Override-Geschichte?


Satisfy Directive
Description: Interaction between host-level access control and user authentication
Syntax: Satisfy Any|All
Default: Satisfy All
Context: directory, .htaccess
Override: AuthConfig
Status: Core
Module: core
Compatibility: Influenced by <Limit> and <LimitExcept> in version 2.0.51 and later

dingeling
23.04.09, 09:44
Ist das nicht die Option, die in der AllowOverride-Direktive gesetzt sein muss?
Also zb.
<Directory>
AllowOverride AuthConfig
</Directory>
So versteh ich das zumindest.

dingeling
24.04.09, 07:55
Ich bin ja schon fast soweit, BUG zu rufen.
Selbst mit <Limit> oder <LimitExcept> -Anweisungen bekomm ichs nicht hin.
Entweder bin ich auf einem völlig falschen Dampfer oder ich weis auch nicht mehr....

Es kann doch nicht sein, das nach einem Satisy Any alle anderen Anweisungen schlichtweg ignoriert werden....

Sam Fisher
24.04.09, 08:45
Hallo!
Ich weiß nicht ganz genau ob es daran liegt, aber ich verwende ein gleiches Setup und ich habe im Gegensatz zu dir folgenden Code in der .htaccess:

Du:

Require valid-user
Deny from all
Allow from 123.123.123 123.123.124
Satisfy Any

Ich:

Require valid-user
Order allow,deny
Allow from 192.168.1
Satisfy any


Ich weiß nicht ob es daran liegt, aber mit dieser Schreibweise funktioniert es und das Problem das du hast trittt bei mir nicht auf.
Viele Grüße
Sam

dingeling
24.04.09, 09:32
Danke für die Antwort.
Ich habe gerade deine Einträge so übernommen, aber das Problem besteht immer noch.

Zumindest weis ich jetzt, das bei Dir der Effekt nicht auftritt - also muss bei mir wohl irgendwo der Wurm drin sein.

Ich werd mal ein nicht-debian-system versuchen und schnell einen Apachen aufsetzen.
Was anderes fällt mir nicht mehr ein:ugly:

dingeling
24.04.09, 10:12
Das gleiche Problem mit openSuse 11.
Ich hab den Apache frisch installiert und lediglich in der <Directory "/srv/www/htdocs"> den Eintrag "AllowOverride AuthConfig Limit" geändert und dann eine .htaccess im Verzeichnis abgelegt.

AuthType Basic
AuthName "Passwort"
AuthUserFile /srv/www/htdocs/.htusers
Require valid-user
Order allow,deny
Allow from 123.123
Satisfy Any

Aber auch da kann ich die .htaccess nach Eingabe der Benutzerkennung angucken.
Einfach verrückt:confused:

Sam Fisher
24.04.09, 12:01
Hi, ich habe es auf dem Server folgendes laufen:

apache2 -v
Server version: Apache/2.2.9 (Debian)
Server built: Jan 21 2009 00:10:51

Viele Grüße
Sam

sebezahn
28.09.09, 22:44
Hi,

lang lang ist es her, aber habt ihr eine Lösung für das Problem gefunden? Ich stehe nämlich gerade vor selbigem. Die Konfiguration ist ein Debian Lenny, Apache 2 und ein aktiviertes mod_auth_mysql. Entweder wird über die interne IP des Büros oder über eine MySQL berechtigt. Das funktioniert, nur kommst du halt von außen an die .htaccess

Any ideas?
Sebezahn

stefaan
29.09.09, 10:36
Servus!

So läufts hier:
.htaccess, AllowOverride auf All.


AuthBasicProvider ldap
AuthType Basic

AuthzLDAPAuthoritative On

AuthName "Win-Account"
AuthLDAPURL "ldap://server:389/OU=blabla,DC=server,DC=local?sAMAccountName?sub?(o bjectClass=*)"
AuthLDAPBindDN apache@server.local
AuthLDAPBindPassword :)
require valid-user

Order deny,allow
Deny from all
Allow from 10
Satisfy any


Ubuntu 8.04, siehe unten, ging aber auch schon in 6.06


Server version: Apache/2.2.8 (Ubuntu)
Server built: Aug 18 2009 14:18:10


Grüße, Stefan