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:
- lokalne, czyli zastąpić /etc/passwd i /etc/shadow;
- Samby, czyli userów i maszyn w sieci Windows.
Kilka myśli:
- Poradników w sieci troszkę jest – żaden nie rozwiązuje sprawy od A do Z.
- Instalacja i wstępna konfiguracja OpenLDAP i modułów pam_ldap/nss_ldap jest prosta.
- 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).
- phpldapadmin działa znakomicie (spora zmiana w stosunku do wczesnych wersji 0.9) – polecam.
- 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.
- Ś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.
- Debugowanie lepiej LDAP-a nie przez logi, ale poprzez uruchomienie jego procesu w terminalu, np.:
/usr/lib/openldap/slapd -f /etc/openldap/slapd.conf \Przy czym jak zapomnisz o ustawieniu UID/GID procesu, to pewnie skopie się część uprawnień bazy OpenLDAP.
-u ldap -g ldap \
-h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock' \
-d 256 - 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ę.
- 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).
- Backupu, replikacji i optymalizacji indeksów katalogu jeszcze nie ruszałem…
- 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).
- 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.
- 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:
kozik

Wrzesień 15th, 2008 at 14:06
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ę.
Wrzesień 15th, 2008 at 14:14
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
.
Wrzesień 15th, 2008 at 15:41
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”?
Wrzesień 15th, 2008 at 15:53
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)
Wrzesień 16th, 2008 at 9:23
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ć) ?
Wrzesień 16th, 2008 at 9:41
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?
Wrzesień 16th, 2008 at 9:49
ok sam sobie odpowiem, juz znalazlem: nazwe pobiera w pliku smb.conf ze zmiennej netbios name
Wrzesień 16th, 2008 at 9:30
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.
Kwiecień 3rd, 2009 at 19:58
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.
Czerwiec 8th, 2009 at 12:46
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
Czerwiec 8th, 2009 at 13:46
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
.