ProFTPD gegen LDAP authentifizieren

Der ProFTPD hat sich etwas zickig, wenn es um eine Authentifizierung via PAM und LDAP geht. Auch wenn pamtester bestätigt, dass die PAM-Konfiguration funktioniert, meint ProFTPD nur lapidar: “no such user found”. Aber ProFTPD bietet erfreulicherweise noch einen anderen Weg, eine Authentifizierung via LDAP vorzunehmen: mod_ldap.

Die Konfiguration von mod_ldap ist denkbar trivial. Zunächst wird mod_ldap.c als einziges Modul für die Anweisung AuthOrder eingetragen. Mit LoadModule mod_ldap.c wird das Modul geladen und wie folgt konfiguriert:

  • LDAPServer HOSTNAME - der Server, gegen den die Authentifizierung erfolgen soll
  • LDAPAuthBinds on - die Authentifizierung erfolgt durch einen Aufruf von bind mit dem Passwort
  • LDAPDoAuth on BASE FILTER - Basis für die Suche nach Nutzern und Filter
  • LDAPAliasDereference always - Aliase immer auflösen, empfehlenswert, wenn man Aliase verwendet, sonst nicht nötig
  • LDAPDoUIDLookups on BASE - Basis für die Suche nach Nutzern
  • LDAPDoGIDLookups on BASE - Basis für die Suche nach Gruppen

Hier noch eine Beispielkonfiguration:

<Global>
# ...
  AuthOrder mod_ldap.c
# ...
</Global>
 
LoadModule mod_ldap.c
 
<IfModule mod_ldap.c>
  LDAPServer localhost
  LDAPAuthBinds on
  LDAPDoAuth on "ou=people,ou=ahost,ou=hosts,dc=my-domain,dc=com" "(&(uid=%v)(objectclass=posixAccount))"
  LDAPAliasDereference always
  LDAPDoUIDLookups on "ou=people,ou=ahost,ou=hosts,dc=my-domain,dc=com"
  LDAPDoGIDLookups on "ou=group,ou=ahost,ou=hosts,dc=my-domain,dc=com"
</IfModule>