Apache2 Auth. über LDAP
hueron
- datenbank
Liebes Forum,
nach nun etwas längerer Recherche bin ich nun zum Entschluss gelangt euch im Hilfe zu fragen.
Ausgangspunkt ist eine Studienarbeit auf einem Suse10.1 Rechner worauf eine Versionsverwaltung mit Subversion läuft. Diese soll nun durch eine Benutzername &Passwortabfrage(abgleich) mit einem LDAP(win2003) geschehen. Die Versionsverwaltung funktioniert bereits nur bei der Auth. des Testnutzers komme ich einfach nicht mehr weiter.
Als erstes möchte ich mal die svn.conf Datei vorstellen, welche im vhosts.d Order liegt.
<VirtualHost 192.168.1.17:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName lnxc-servs.infma-labor.local
DocumentRoot "/srv/www/svn/"
CustomLog /var/log/apache2/svn-access_log combined
HostnameLookups Off
UseCanonicalName Off
ServerSignature On
#Module für Subversion
LoadModule dav_module /usr/lib/apache2/mod_dav.so
LoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/mod_authz_svn.so
#Module für Ldap
LoadModule ldap_module /usr/lib/apache2/mod_ldap.so
Loadmodule authnz_ldap_module /usr/lib/apache2/mod_authnz_ldap.so
#-----------LDAP Parameter Start --------------
LDAPCacheEntries 1024
LDAPCacheTTL 60
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 60
LDAPSharedCacheSize 200000
#-----------LDAP Parameter Ende -------------- s to
<IfModule mod_dav_svn.c>
<Directory /srv/www/svn>
AuthType Basic
AuthName "Subversion Autorisierung"
AuthBasicAuthoritative on
AuthLDAPGroupAttribute memberUid
AuthLDAPBindDN "cn=ronny,ou=Domaenen-Subversion,ou=Global,cn=Groups,dc=infma-labor,dc=local"
AuthLDAPBindPassword "ronny"
AuthLDAPURL "ldap://win-servf/cn=ronny,ou=Domaenen-Subversion,ou=Global,cn=Groups,dc=infma-labor,dc=local?uid"
require group "cn=Domaenen-Subversion,ou=Global,o=infma-labor.local"
Options +Indexes +Multiviews -FollowSymLinks
IndexOptions FancyIndexing \
ScanHTMLTitles \
NameWidth=* \
DescriptionWidth=* \
SuppressLastModified \
SuppressSize
AllowOverride All
order allow,deny
allow from all
</Directory>
<Location /svn>
DAV svn
SVNPath /srv/svn/repos/new
</Location>
</IfModule>
</VirtualHost>
Diese svn.conf habe ich mit Hilfe folgendes HowTo´s vervollständigt.
http://www.linux-club.de/ftopic66803.html
Ich erhalte folgende Fehlermeldungen:
#Fehlermeldung im Browser (nach Eingabe von BN & PW)
Server error!
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.
If you think this is a server error, please contact the webmaster.
Error 500
svn
Wed Dec 13 10:50:49 2006
Apache/2.2.0 (Linux/SUSE)
#Fehlermeldung im error_log
[Wed Dec 13 10:50:49 2006] [error] [client 192.168.1.17] (9)Bad file descriptor: Could not open password file: (null)
#Meldung im Access_log
192.168.1.17 - - [13/Dec/2006:10:50:49 +0100] "GET / HTTP/1.1" 500 1070 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060911 SUSE/1.5.0.7-1.5 Firefox/1.5.0.7"
Für jeden Sachdienlichen Hinweis bin ich sehr Dankbar.
MfG
Ronny
hallo,
wenn du dir die Apache-Doku gründlich anschaust, wirst du finden, daß du "LoadModule" nicht in einem virthost-Container notieren kannst.
Grüße aus Berlin
Christoph S.
hallo,
wenn du dir die Apache-Doku gründlich anschaust, wirst du finden, daß du "LoadModule" nicht in einem virthost-Container notieren kannst.
Grüße aus Berlin
Christoph S.
Danke für deine schnelle Antwort.
,wenn ich allerdings die LoadModule entferne und wie in dem HowTo in die /etc/sysconfig/apache2 die ldap auth_ldap zeile einfüge dann kann er die LDAP Befehle nicht mehr ausführen und den apche2 starten.
rcapache2 restart
Module "auth_ldap" is not installed, ignoring.
Check the APACHE_MODULES setting in /etc/sysconfig/apache2.
Syntax error on line 48 of /etc/apache2/vhosts.d/svn.conf:
Invalid command 'AuthLDAPGroupAttribute', perhaps misspelled or defined by a module not included in the server configuration
meine /etc/sysconfig/apache2:
APACHE_MODULES="authz_host actions alias auth_basic authz_groupfile authn_file authz_user autoindex cgi dir include log_config mime negotiation setenvif status userdir asis imagemap php5 authz_default ldap auth_ldap"
Ausserdem funktionieren doch die SVN Module mit LoadModule einwandfrei. Was mich selber wundert ist das egal was ich eingebe an BN + PW die gleiche Fehlermeldung im error_log erscheint
[error] [client] (9)Bad file descriptor: Could not open password file: (null)
und wenn ich bewusst fehler einbaue wie z.B.
AuthLDAPURL ldap://win-servfer-bla-test:389/dc=infma-labor,dc=local?uid?sub"
das die gar nicht zum tragen kommen.
Mein erfolg bei Google lässt auch zu wünschen übrig.
Bei dem Suchbegriff "(9)Bad file descriptor: Could not open password file: (null)"
Rät man AuthBasicAuthoritative auf Off zu stellen.
Infolge dessen erhalte ich noch eine weitere Fehlermeldung
[error] [client] (9)Bad file descriptor: Could not open password file: (null)
[crit] [client] configuration error: couldn't check user. No user file?: /
also alles kontraproduktiv, oder ?
hallo,
wenn ich allerdings die LoadModule entferne und wie in dem HowTo in die /etc/sysconfig/apache2 die ldap auth_ldap zeile einfüge dann kann er die LDAP Befehle nicht mehr ausführen und den apche2 starten.
Du sollst die "LoadModule"-Anweisung nicht vollständig entfernen, sondern an der richtigen Stelle notieren.
Module "auth_ldap" is not installed, ignoring.
Check the APACHE_MODULES setting in /etc/sysconfig/apache2.
Ich habe im Moment keine lauffähige SUSE hier und weiß nicht genau, ob der Pfad /etc/sysconfig/apache2 korrekt ist - müßte aber eigentlich.
Syntax error on line 48 of /etc/apache2/vhosts.d/svn.conf:
Invalid command 'AuthLDAPGroupAttribute'
Das ist ein Folgefehler.
meine /etc/sysconfig/apache2:
APACHE_MODULES="authz_host actions alias auth_basic authz_groupfile authn_file authz_user autoindex cgi dir include log_config mime negotiation setenvif status userdir asis imagemap php5 authz_default ldap auth_ldap"
Hm. Die SUSE stellt ein paar Sachen leider über YaST zusammen. YaST erstellt dann diese Scripts in /etc/sysconfig. Ich bin mir im Moment, weil ich es nicht überprüfen kann, nicht ganz sicher, ob die manuelle Nachbearbeitung dieses Scripts ausreicht. Du könntest zumindest nachsehen, ob denn die LoadModule-Anweisungen in /etc/apache2/sysconfig.d/loadmodule.conf (das ist die Datei, die der Apache tatsächlich benutzt, aber sie wird von der SUSE automatisch generiert auf der Grundlage des Scripts /etc/sysconfig/apache2) drinstehen.
Ausserdem funktionieren doch die SVN Module mit LoadModule einwandfrei.
Da bin ich mir auch nicht sicher. Nach deiner Fehlerbeschreibung kommt dein System gar nicht so weit, sondern hört bereits bei der Paßwortabfrage auf.
[error] [client] (9)Bad file descriptor: Could not open password file: (null)
[crit] [client] configuration error: couldn't check user. No user file?: /
also alles kontraproduktiv, oder ?
Naja, kontraproduktiv vielleicht nicht. Du könntest noch folgendes tun: aktiviere die Anzeige für "server-info" und rufe das dann im Browser auf. Die entsprechenden Listen zeigen dir sehr genau, welches Modul aktiv ist und wie die Konfiguration dafür lautet. "server-info" ist bei Fragen, wie du sie hast, ein sehr gutes Diagnosemittel.
Grüße aus Berlin
Christoph S.