Jak połączyć LDAP-a i Proftpd? Dowiesz się z tego wpisu!
Instalacja
Debian
W Debianie Etch wystarczy zainstalować pakiet proftpd-ldap.
apt-get install proftpd-ldap
Podstawowa konfiguracja
LDAPServer localhost LDAPDNInfo cn=admin,dc=linuxexpert,dc=pl 123456 LDAPDoAuth on "ou=users,dc=linuxexpert,dc=pl" LDAPNegativeCache off
W przypadku korzystania z serwera OpenLDAP dla użytkowników należy skorzystać z schematu PosixUserAccount w którym mamy zawarte takie dane jak: UID, GID, homeDirectory, loginShell które są niezbędne dla poprawnego działania Proftpd. Należy również pamiętać aby katalog domowy istniał i miał poprawne ustawione prawa dostępu.
Wyjaśnienie powyższych ustawień:
LDAPServer – serwer LDAP, do którego należy się podłączyć, poszczególne serwery oddzielane są spacją, port podajemy po dwukropku („:”), domyślnie to 389.
(sprwadzić port 😉 ).
LDAPDNInfo – Ustawienie informacji DN, na których odbędzie się inicjujące połączenie do serwera LDAP, np. LDAPDNInfo „” „” oznacz anonimowe połączenie, jeżeli nie jest podane, połączenie będzie wykonane jako anonimowy użytkownik.
LDAPDoAuth – aktywuje lub deaktywuje autoryzację z użyciem serwera LDAP, pierwszy argument włącza lub wyłącza autoryzację, drugi wskazuje gałąź, w której nastąpi wyszukanie użytkownika pragnącego się autoryzować, trzeci argument (opcjonalny) wygląda domyślnie tak: „(&(uid=%v)(objectclass=posixAccount))”. Jak się można z tego domyśleć jest to filtr na podstawie którego następuje wyszukanie użytkownika, gdzie %v będzie zastąpione nazwą użytkwonika. Tutaj widać dlaczego wymaga się domyślnie korzystanie z schematu PosixUserAccount.
LDAPNegativeCache – określa czy włączyć czy wyłączyć cachowanie negatywnych zapytań do serwera LDAP.
Rozszerzona konfiguracja
LDAPAttr Pozwala zmapować (zamienić) jeden atrybut na inny.
LDAPAuthBinds – Jeżeli jest ustawione, działa w następujący sposób: wszystkie dane są pobierane z LDAPa bez hasła użytkownika, następnie następuje połączenie z serwerem jako użytkownik który się probuje zalogować by sprawdzić hasło, sposób ten jest stworzony by korzystać z wielu metod autoryzacji, jakie oferują serwery LDAP.
LDAPDefaultAuthScheme – domyślny sposób kodowania haseł w bazie LDAP. Zauważ że w przypadku trzymania hasła zakodowanego w bazie danych na początku hasła jest podana metoda kodowania hasła, np:
{MD5}4QrcOUm6Wau+VuBX8g+IPg==
Tutaj jest to MD5. Dyrektywa ta pozwala określić jakim sposobem jest kodowane hasło (domyślnie MD5 lub czysty tekst) jeżeli nie ma na początku zdefiniowanego sposobu kodowania haseł.
LDAPDefaultGID – domyślny GID (numer identyfikacyjny grupy), wykorzystywane w dużych środowiskach providerskich,
LDAPDefaultUID – domyślny GID (numer identyfikacyjny użytkownika), wykorzystywane w dużych środowiskach providerskich,
LDAPDoGIDLookups –
LDAPDoQuotaLookups – sprawdzanie quoty użytkownika,
LDAPDoUIDLookups
LDAPForceDefaultGID – dla wszystkich użytkowników, dla których informacje przechowywane są na serwerze LDAP ustawia wartość GID, jest to wykorzystywane, gdy korzystamy z konfiguracji używającej wirtualnych użytkowników mapowanych na jednego realnego użytkownika,
LDAPForceDefaultUID – dla wszystkich użytkowników, dla których informacje przechowywane są na serwerze LDAP ustawia wartość UID, jest to wykorzystywane, gdy
korzystamy z konfiguracji używającej wirtualnych użytkowników mapowanych na jednego realnego użytkownika,
LDAPForceGeneratedHomedir – określenie domyślnego katalogu domowego użytkowników (sprawdzić),
LDAPGenerateHomedir – pozwala na tworzenie domowego katalogu użytkownika, gdy nastąpi taka potrzeba, dzięki czemu nie musimy ręcznie go tworzyć,
LDAPGenerateHomedirPrefix – prefix to tworzonych na rządanie (on deamond) katalogów domowych użytkownika. Przydatne, gdy serwer nie wspiera atrybutu lub gdy nie chcemy rozszerzać atrybutów serwera LDAP.
LDAPProtocolVersion – określa wersje protokołu, której klient użyje do połączenia, domyślnie 3.
LDAPQueryTimeout – czas, po którym klient (proftpd) stwierdzi, że upłynął czas po którym powinien uzyskać odpowiedź od serwera
LDAPSearchScope – jak głęboko powinien serwer szukać (albo cała gałąź albo jeden poziom), domyślnie cała gałąź
LDAPUseTLS – czy używać szyfrowanego połączenia TLS (domyślnie nie), uwaga: serwer przypadku ustawienia „yes”, jeżeli się nie połączy, nie przełączy się w trym nieszyfrowanego połączenia.
W sieci
- http://horde.net/~jwm/software/mod_ldap/ – strona domowa modułu ldap dla serwera Proftpd.
- http://www.proftpd.org/docs/directives/linked/config_ref_mod_ldap.html – strona poświęcona dyrektywom konfiguracyjnym modułu LDAP serwera Proftpd.