Samba jako kontroler domeny (PDC) z LDAP

15 kwietnia 2008, by: 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 | Tagi: , , , , , | 11 komentarzy »

Adres dla trackback. RSS dla komentarzy w tym wpisie.

11 komentarzy

  1. Adrian Says:

    Witam, widzę ze Panu zajęło to 1 dzień a ja już walcze z tym tydzień i nie chce działać jak należy. Zgadzam się zupełnie ze zdaniem „Poradników w sieci troszkę jest – żaden nie rozwiązuje sprawy od A do Z.” – większość dotyczy wersji 2.x a aktualna wersja to 3.x Mam pytanie czy można o kilka drobnym wskazówek w konfiguracji tego całego bajeru? Samba jako PDC i logowanie sie userów z W2k działa OK ale już podpięcie pod LDAP to jeszcze ani razu mi się nie udało i walcze z tym od tygodnia. Widzę, że Pan tak jak ja uzywa FreeBSD to już połowa sukcesu choć ja w wersji 7.0. Proszę o odpowiedź czy można by liczyć na Pana pomoc, lub w najgorszym wypadku zapłacę za wiedzę.

  2. kozik Says:

    Powyżej w notce jest trochę wskazówek :) . Jeśli potrzeba konkretnych informacji, to potrzebne jest konkretne pytanie. Tak czy inaczej podstawą przy próbie spięcia Samby i usług katalogowych jest patrzenie w logi. Domyślne loglevel OpenLDAP-u wystarczy by widzieć zapytania i ich wyniki (domyślnie loguje do local4).

    Co do mojej konfiguracji – to było Gentoo, nie BSD :) .

  3. Adrian Says:

    obawiam się ze pytań będzie dość sporo więc chyba sobie odpuszczę z zawracaniem Ci głowy. Jedno takie proste pytanie:
    net groupmap add ntgroup=”Domain Admins” unixgroup=ntadmin rid=512 type=d

    czy jezeli uzywam polskiej wersji językowej Windowsa 2000 to za ntgroup wpisuje „Administratorzy” czy „Domain Admins”?

  4. kozik Says:

    Jeśli chodzi o administratorów domeny, to „Domain Admins” i to niezależnie czy to Win2k czy XP czy Win2k3 oraz jaki język – to są już domyślne ustawienia domeny NT4/Active Directory (pełna lista dla AD)

  5. Adrian Says:

    1) czy jezeli hostname na ktorym stoi samba i ldap to students.domena.pl to jako domene w sambie tez musze ustawiac students.domena.pl czy moze to byc zupelnie inna nazwa?
    2) czy jak phpLDAPadmin wykrył mi sambe i utworzyl gałązkę z domeną to muszę budować wszystko w tej gałęzi (tak wnioskuje z Twojego opisu, ale wole sie upewnić) ?

  6. Adrian Says:

    smbldap-tools zainstalowałem, skonfigurowałem, choć zdziwiła mnie jedna rzecz, po wydaniu polecenia net getlocalsid pokazuje mi SID-a dla domeny FREEBSD, a w konfigu samby jak i smbldap.conf mam inną, nie wiem skąd on to bierze?

  7. Adrian Says:

    ok sam sobie odpowiem, juz znalazlem: nazwe pobiera w pliku smb.conf ze zmiennej netbios name

  8. kozik Says:

    1. Domena Samby (tudzież Windowsowa grupa robocza) mogą być dowolne i w żaden sposób niezwiązane z fizyczną nazwą maszyny.

    2. Do swojego katalogu LDAP musisz wprowadzić strukturę i dane potrzebne Sambie – ona tego nie zrobi. Stąd wymagana jest instalacja/konfiguracja smbldap-tools i później użycie smbldap-populate.

  9. Andrzejkm Says:

    Witam Panie Kolego. Ja tak sie wlasnie przygladam Twoim osiagnieciom i przyznam, ze chyle czoło.. Jestem po parunastu godzinach walki z Samba jako PDC w Openbsd 4.4 i opadly mi rece. A Tobie mimo wszystko gratuluje. Moze wkoncu Samba 4 cos zmieni na lepsze dla szarych ludzi..
    Pozdrawiam.

  10. KosMar Says:

    Szkoda że komentarz nie jest bardziej szczegółowy. :(
    Mam tylko jedno pytanie dotyczace phpldapadmin :
    do czego używasz go ( poza podglądem )?

    PS
    Testuje LAM ( lam.sourceforge.net ) i wydaje się, że jest bardziej funkcjonalny

  11. kozik Says:

    phpLDAPadmina używam do wszystkiego, poza tym czym się zajmuje smbldaptools :) . Spokojnie można zarządzać strukturą katalogu (do katalogu mam podpięte również Wiki, jabbera, Dovecota, SVN-a, Apache’a, inne aplikacje webowe), dodawać nowe konta (np. niezwiązane z Sambą) i modyfikować istniejące (np. zarządzanie uprawnieniami użytkowników w różnych innych aplikacjach poprzez przynależność do grup). Wyszukiwanie mogłoby być wygodniejsze, ale daje radę.

    LAM-a sprawdzałem i wydał mi się zdecydowanie mniej funkcjonalny od konkurenta… może coś tu się jednak zmieniło skoro tak piszesz :) .

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.