hueron: Apache2 Auth. über LDAP

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>

Eintrag für LDAP

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"

Zugriff auf SVN

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

  1. 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.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. 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 ?

      1. 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.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|