Samba jako kontroler domeny (PDC) z LDAP

15 kwiecień 2008, autorstwa: kozik

Z racji pewnych zmian organizacyjnych nastał czas przebudowy sieci windowsowej w naszym labo (dotychczas siedziało to na zwykłej Sambie z lokalną bazą kont) - w końcu trzeba zrobić to w pełni profesjonalnie. Docelową strukturą ma być kontroler domeny (PDC) na Sambie z bazą użytkowników w LDAP. Cały dzień walenia się z tym i w końcu z dumą mogę uznać - działa. Ale babrania się (i nauki) co nie miara. Usługi katalogowe (OpenLDAP) mają przechowywać konta:

  1. lokalne, czyli zastąpić /etc/passwd i /etc/shadow;
  2. Samby, czyli userów i maszyn w sieci Windows.

Kilka myśli:

  1. Poradników w sieci troszkę jest - żaden nie rozwiązuje sprawy od A do Z.
  2. Instalacja i wstępna konfiguracja OpenLDAP i modułów pam_ldap/nss_ldap jest prosta.
  3. Jak w /etc/nsswitch.conf dyrektywa dla serwisu z grupami zawierała files przed ldap - podstawowe polecenia (np. id) się wywalały (”failed to get groups for user root: No such file or directory“). Dopiero przestawienie kolejności (czyli group: ldap files) zamyka problem. Chyba natknąłem się na ten problem jako pierwszy (Google nic nie wie).
  4. phpldapadmin działa znakomicie (spora zmiana w stosunku do wczesnych wersji 0.9) - polecam.
  5. Ręczna próba zbudowania katalogu dla Samby to jakiś hard-core. Bez smbldap-tools (i jego smbldap-populate) nie da rady, bo samemu SID-ów nie wymyślisz. Narzędzia obejmują ponadto tworzenie/modyfikację/usuwanie użytkowników i grup oraz zmianę haseł - ręczne grzebanie w katalogu daje ograniczone rezultaty.
  6. Świat Windows (Samba) i Uniksa (POSIX) to dwa różne światy. Jak się o tym zapomni, to dupa. Użytkownik (dodany przez smbldap-useradd) musi mieć ustawioną jakąś podstawową grupę windowsową (np. Domain Users), tzn. nie zwykłą posixGroup. Dopiero później można tego usera dodać do innych grup (już “zwykłych”), aby członkostwem w grupach dokonywać autoryzacji.
  7. Debugowanie lepiej LDAP-a nie przez logi, ale poprzez uruchomienie jego procesu w terminalu, np.: /usr/lib/openldap/slapd -f /etc/openldap/slapd.conf \
    -u ldap -g ldap \
    -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock' \
    -d 256
    Przy czym jak zapomnisz o ustawieniu UID/GID procesu, to pewnie skopie się część uprawnień bazy OpenLDAP.
  8. Konta maszyn (wbrew HOWTO i dokumentacji Samby) muszą być w tej samej gałęzi co konta użytkowników. Nie można mieć ou=Hosts (czy ou=Computers) dla maszyn i obok ou=People dla użytkowników - wszystko ma być w jednej gałęzi (np. ou=People). Problemem jest sama Samba, która mimo ustawienia “ldap machine suffix” na właściwą gałąź, szuka maszyn w gałęzi “ldap user suffix“. Nie powinna tak robić, ale robi… durne zwierzę.
  9. Wszystko jest rozproszone i wcale nie uproszczone. W pliku konfiguracyjnym serwera OpenLDAP (slapd.conf) siedzą dane uwierzytelniające Managera (taki root dla katalogu). Samba musi mieć swojego admina w katalogu, który posłuży do łączenia się po protokole LDAP - jego hasło trzyma w secrets.tdb. smbldap-tools potrzebują zapisania hasła do takiego konta w pliku tekstowym w /etc/smbldap-tools. W katalogu każde konto ma hasła w 3 atrybutach (hasło uniksowe, LM i NT).
  10. Backupu, replikacji i optymalizacji indeksów katalogu jeszcze nie ruszałem…
  11. Domena jest typu NT4, więc do zarządzania stacjami roboczymi musi wystarczyć skrypt logowania oraz edytor polis systemowych poledit.exe (z adminpak.msi z plików Service Pack 4 dla Windows 2000). Nie ma grup polis (”Group Policy“), ale i tak co nieco się da zrobić (patrz linki na dole).
  12. Jeśli używa się wędrujących profili (”roaming profiles“), to nie wolno zapomnieć o rozszerzonych atrybutach systemu plików (user_xattr) i odpowiednich ustawień Samby (”store dos attributes” oraz “map acl inherit” na “yes“). O ile przy zwykłych zasobach sieciowych atrybuty DOS-we i ACL-owe nie mają specjalnego znaczenia, to ich brak potrafi rozjechać profil użytkownika.
  13. Bardzo łatwo (i warto) jest wykorzystać LDAP do uwierzytelniania w MediaWiki.

Całość jest całkiem skomplikowana do ogarnięcia, ale da radę. Korzyści ogromne - w końcu jedno miejsce z kontami i grupami, bez dublowania się na świat Uniksa i Samby. Jedno miejsce kontroli uprawnień użytkowników oraz zarządzania stacjami roboczymi. Możliwość rozwoju i wykorzystania danych w katalogu do innych celów (innych systemów). W końcu jest to spójne. Skomplikowane, ale spójne i profesjonalne.

Materiały:

Wysłano w Blog - Linux i Unix, Koty | Tags: , , , , , |

Adres dla trackback. RSS dla komentarzy w tym wpisie.
Dodaj komentarz




Uwaga: Włączona jest moderacja komentarzy, więc nowy komentarz nie ukaże się bezpośrednio po jego wysłaniu.

Uwaga: Działa filtr antyspamowy. Jeśli umieścisz w komentarzu odnośniki, to może on zostać błędnie zakwalifikowany jako spam.