Zum Inhalt springen

Apache2 gemischte Autorisierung File/LDAP


Empfohlene Beiträge

Hallo Zusammen,

Ich habe die Aufgabe die Autorisierung auf einem Apache 2 umzustellen.

Momentan läuft die Autoriesierung über generierte User und Gruppen Files.

Zukünftig sollen User über LDAP authentifiziert werden und anschließend in einem Gruppen File nach der Berechtigung gesehen werden.

Die ganze Geschichte geschieht in .htacces Files.

Ich Copy+Paste mal Teile einer Email die ich einem Kollegen geschrieben, also nicht wunders falls manche Informationen nun doppelt gennant wurden.

Bestes Ergebnis dass ich bisher erzielen konnte war folgendes:

User gibt richtigen Benutzernamen + Passwort ein und ist in der Gruppe -> Zugang

User gibt richtigen Benutzernamen + Passwort ein ist aber _nicht_ in der Gruppe -> 'Internal Server Error'

User gibt falschen Benutzernamen ein (Passwort egal) -> 'Internal Server Error'

Ich kann die Fehler alle nachvollziehen, doch erstmal die .htaccess-Datei:

AuthLDAPEnabled On

AuthLDAPURL ldap://XXXXX

AuthLDAPBindDN "XXXXX"

AuthLDAPBindPassword XXXXX

AuthLDAPAuthoritative Off


AuthUserFile /XXXX/user-leer (<- leeres Userfile )

AuthGroupFile /XXXXX/groups.new

AuthAuthoritative Off


AuthName "XXXXXX"

AuthType Basic

<Limit GET POST PUT>

require group Group1

</Limit>
Der 'Internal Server Error' kommt wohl daher, dass bei beiden Modulen 'Authoritative Off' angegeben ist und er dann am Ende, falls User+Gruppe nicht korrekt sind, an ein weiteres Modul weitergeben will welches aber nicht existiert. Soweit so gut. Da aber 'mod_auth' anscheinend eine höhere Priorität als 'mod_auth_ldap' hat ist es nicht möglich eines der Authoritativen auf On zu stellen. (Die Reihenfolge in der wir die Module laden, hatte keinen Einfluss) Würde ich 'AuthAuthoritative On' stellen, so würde man den User nicht im leeren Userfile finden und hier beenden. Stelle ich 'AuthLDAPAuthoritative On', so kann er zwar den User identifizieren aber es wird nicht weiter auf die Gruppe im File geprüft - Allerdings wird geprüft ob er in der Gruppe im LDAP ist. Ich denke wenn man die Reihenfolge ändern würde, zuerst soll im LDAP gesucht werden dann im File, könnt man AuthAuthoritative On stellen: User wird im LDAP gesucht, falls vorhanden wird nach der Gruppezugehörigkeit in LDAP gesucht. Kein erfolg -> nächstes Modul: mod_auth Nun wird im Gruppenfile gesucht. Sollte nichts matchen, ist die Authentifizierung fehlgeschlagen. Nach meinen Recherchen könnte man die Reihenfolge durch 'AuthBasicProvider' bestimmen, dazu braucht man allerdings ein extra Modul 'mod_auth_basic' welches wir nicht haben. Die .htaccess-Datei würde dann in etwa so aussehen:
AuthBasicProvider ldap file

AuthLDAPEnabled On

AuthLDAPURL ldap://XXXXX

AuthLDAPBindDN "XXXXX"

AuthLDAPBindPassword XXXXX

AuthLDAPAuthoritative Off


AuthUserFile /XXXXX/user-leer (<- leeres Userfile )

AuthGroupFile /XXXXX/groups.new

AuthAuthoritative On


AuthName "XXXXXX"

AuthType Basic

<Limit GET POST PUT>

require group group1

</Limit>

Also folgende Fragen habe ich:

1. Ist meine Vermutung richtig, dass ein Tauschen der Reihenfolge zum gewünshten Ergebnis führt?

2. Stimmt es, dass ich das Module 'mod_auth_basic' brauche und anschließend das Kommando 'AuthBasicProvider ldap file' verwenden kann um die Reihenfolge zu ändern?

PS: Um dieses Modul zu implementieren würde das über mehrere Instanzen laufen, daher will ich zuerst sicher gehen.

Ich freue mich auf Antworten, Vielen Dank schonmal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

Hallo,

ich habe leider keine direkte Antwort auf dein Problem aber um eine Authentifizierung über LDAP zu bewerkstelligen wäre es noch interessant zu wissen, ob die Benutzer im "System" angelegt werden sollen oder nicht.

Es gibt die Möglichkeit mit Hilfe von libpam_ldap und libnss_ldap (soweit ich weiß beides bei padl.org zu beziehen) die Anfragen an das System auf ein LDAP Verzeichnis "umzulenken". Dabei kannst du auch die genannten Reihenfolgen konfigurieren (erst shadow/file dann ldap). Das Problem ist, dass du dann "echte" Nutzer im LDAP Verzeichnis anlegst, die sich aber nicht zwangsläufig anmelden können. Ein Sicherheitsrisiko sollte dementsprechend nicht bestehen (shell auf /bin/false setzen, home auf /dev/null).

Änderst du bei der Direktive in deiner Apache Konfiguration die Reihenfolge der Abfrage, so SOLLTE es funktionieren. Wenn dafür das entsprechende Modul installiert werden muss, führt wohl kein Weg dran vorbei ;-) Wenn du es nicht direkt auf einem Live System testen willst, rate ich dir dringend das vorher auf einem Testsystem (VirtualBox, VMWare) zu überprüfen. Andererseits sollte es nicht kritisch sein das Modul zu installieren, den Apache mit einem "graceful restart" neu zu laden und zu gucken ob es geht. Wenn es nicht geht einfach das Modul deaktivieren - kann ja installiert bleiben...

Darüber hinaus solltest du in jedem Fall die entsprechenden Logdateien einsehen (i. d. R. /var/log/apache/*.log), um festzustellen, ob er Probleme mit den LDAP Abfragen hat (LDAP kann ziemlich nerven...).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, vielen Dank für deine Antwort.

Die User sollen sich nicht im system anmelden können.

Mittlerweilen hab ich dann auch mitgekriegt, dass mod_auth_basic erst ab Apache 2.1 verfügbar ist, wir betreiben aber einen 2.0.x.

Also die Frage ist nun ganz einfach:

Wie kann man die Reihenfolge der Authentifizierungsmodule beim Apache 2.0.x ändern, vergleichbar mit AuthBasicProvider beim Apache 2.2.x.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, jetzt hab ich das Problem auch richtig erfasst. Ich denke, dass es nicht ohne weiteres möglich ist, das so einzurichten. Die einzige Möglichkeit die ich kenne, bei der das Verzeichnis nach dem Nutzer und danach die Gruppendatei nach der zugehörigen Gruppe durchsucht wird ist mod_auth_pam.

Das Problem (wie schon oben beschrieben) ist, dass auch die Nutzer am System sich dann anmelden können und es sich bei der Gruppendatei dann um /etc/group handelt. Insgesamt nicht sehr empfehlenswert, weshalb ich es auch lassen würde ;-)

Unter den Umständen muss ich aber gestehen, dass ich mir sogar unsicher bin, ob das in der Form mit mod_auth_basic geht. Die Konfiguration ist schon sehr "eigen".

Entschuldige, dass ich dir da nicht helfen kann. Falls du das Problem aber umgehen willst, kannst du die Inhalte der Gruppendatei mit Hilfe eines scripts das als cronjob ausgeführt wird in das LDAP-Verzeichnis schreiben. Dafür müsstest du dann die ldap-utils (Befehlzeilenprogramme) nutzen um den Dateiinhalt in das Verzeichnis zu schreiben und die Apache Konfiguration anpassen.

Also falls es irgendwie möglich ist, würde ich versuchen die Nutzung der Gruppendateien zu umgehen - zur Not auch wie gerade beschrieben (obwohl es sehr unschön ist).

Ich wünsche weiterhin viel Erfolg bei der Sache!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Unter den Umständen muss ich aber gestehen, dass ich mir sogar unsicher bin, ob das in der Form mit mod_auth_basic geht. Die Konfiguration ist schon sehr "eigen".

Jo, "eigen" ist das richtige Wort :>

Der Grund für das Vorgehen ist ganz einfach, auf LDAP hab ich nur lesenden Zugriff, daher müssen die Gruppen über File realisiert werden. Mit mod_auth_basic würde es aber funktionieren, habe das mal auf einem 2.2.x getestet.

Die Sache liegt nun erstmal auf Eis:(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Meinung

Schreibe jetzt und erstelle anschließend ein Benutzerkonto. Wenn Du ein Benutzerkonto hast, melde Dich bitte an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

Fachinformatiker.de, 2021 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung