Usługa katalogowa z LDAP [5]: OpenLDAP (II)

Kontynuujmy, nie bez uprzedniej konsultacji:

W tym poście zobaczymy:

Uwierzytelnianie użytkownika lokalnego

Po uruchomieniu serwera OpenLDAP, jeśli chcemy przetestować lub lokalnie uwierzytelnić zarejestrowanych użytkowników - lub że zarejestrujemy - w Katalogu, musimy zainstalować i skonfigurować niezbędne pakiety.

W Squeeze zaangażowane pakiety to:

libnss-ldap: Zapewnia usługę wymiany nazw (Przełącznik usługi nazw NSS), która pozwala serwerowi LDAP działać jako serwer nazw.

Oznacza to dostarczanie informacji o kontach użytkowników, identyfikatorach grup, informacji o hoście, aliasach, grupach sieciowych i zasadniczo wszelkich innych danych, które są zwykle uzyskiwane ze zwykłych plików tekstowych, takich jak / Etc / passwd/ etc / groupitp. lub usługa NIS.

libpam- ldap"Wtykowy moduł uwierzytelniania dla LDAP”Lub Module WFP dla LDAP. Zapewnia interfejs między serwerem LDAP a systemem uwierzytelniania WFP.

nscd"Nazwij demona pamięci podręcznej usługi„Lub demon dla pamięci podręcznej usługi nazw. Obsługuje wyszukiwanie haseł, grup i hostów oraz przechowuje wyniki wyszukiwania w pamięci podręcznej do wykorzystania w przyszłości.

: ~ # aptitude install libnss-ldap finger

Instalowanie pakietu libnss-ldap, który jest również instalowany jako zależności libpam- ldap już diabeł nscdprzeprowadzi nas przez kreatora konfiguracji, na którego pytania musimy odpowiedzieć poprawnie:

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

libpam-01

libpam-02

libpam-03

libpam-04

Jeśli chcemy ponownie skonfigurować pakiety libnss-ldap i / lub libpam- ldapmusimy wykonać:

: ~ # dpkg-reconfigure libnss-ldap
: ~ # dpkg-reconfigure libpam-ldap

Później modyfikujemy plik /etc/nsswitch.conf i zostawiamy to z następującą treścią:

: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Przykładowa konfiguracja funkcji GNU Name Service Switch. # Jeśli masz zainstalowane pakiety `glibc-doc-reference 'i` info', spróbuj: #` info libc "Name Service Switch" 'w celu uzyskania informacji o tym pliku. passwd: kompatybil grupa ldap: kompatybil ldap shadow: kompatybil ldap hosty: pliki dns sieci: pliki protokoły: db pliki usługi: db pliki ethers: db pliki rpc: db pliki netgroup: nis

Za zmiany wprowadzone w pliku /etc/nsswitch.conf zaczną obowiązywać, ponownie uruchomimy usługę nscd:

: ~ # usługa nscd restart

Ważnym szczegółem jest modyfikacja pliku /etc/pam.d/wspólna sesja aby folder użytkownika został utworzony na serwerze lokalnym podczas logowania się do niego, użytkownik zarejestrowany w Katalogu:

: ~ # nano /etc/pam.d/common-session
[----]
wymagana sesja pam_mkhomedir.so skel = / etc / skel / umask = 0022
### Powyższa linia musi być zawarta PRZED # tutaj są moduły na pakiet (blok "Primary") [----]

Wypełnij bazę danych

Aby zapełnić bazę danych katalogu lub ją uruchomić, musimy dodać główne jednostki organizacyjne, zarejestrować przynajmniej jedną grupę użytkowników i dodać użytkownika. Aby to zrobić, tworzymy plik w formacie LDIF, który później dodamy do katalogu, z następującą zawartością:

: ~ # nano content.ldif
dn: ou = People, dc = friends, dc = cu objectClass: organizationUnit ou: People dn: ou = grupy, dc = przyjaciele, dc = cu objectClass: organizationUnit ou: Grupy dn: cn = pierścienie, ou = Grupy, dc = przyjaciele, dc = cu objectClass: posixGroup cn: rings gidNumber: 10000 dn: uid = frodo, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins dane Imię: Frodo cn : Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidNumber: 10000 userPassword: frodo mail: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo

Dodajemy zawartość pliku do katalogu:

: ~ # ldapadd -x -D cn = admin, dc = friends, dc = cu -W -f content.ldif
Wprowadź hasło LDAP: dodawanie nowego wpisu "ou = People, dc = friends, dc = cu" dodawanie nowego wpisu "ou = Groups, dc = friends, dc = cu" dodawanie nowego wpisu "cn = rings, ou = Groups, dc = przyjaciele, dc = cu "dodawanie nowego wpisu" uid = frodo, ou = People, dc = friends, dc = cu "

Przeprowadzamy odpowiednie kontrole:

: ~ # id frodo
uid = 10000 (frodo) gid = 10000 (pierścienie) grupy = 10000 (pierścienie)

: ~ # getent passwd | grep frodo
frodo: x: 10000: 10000: Frodo Bagins: / home / frodo: / bin / bas

: ~ # finger frodo
Login: frodo Imię: Frodo Bagins Katalog: / home / frodo Shell: / bin / bash Nigdy nie zalogowany. Bez poczty. Brak planu.

: ~ # ldapsearch -Y ZEWNĘTRZNE -H ldapi: /// -b uid = frodo, ou = Ludzie, dc = przyjaciele, dc = cu

Teraz mamy usługę katalogową, którą musimy zarządzać !!! Opracujemy dwa sposoby: pierwszy poprzez pakiet ldapscripts, a drugi, do którego zajmiemy się w następnym artykule, będzie dotyczyłMenedżer konta Ldap.

Powinniśmy również powiedzieć, że pakiet narzędzia ldapzawiera szereg przydatnych poleceń do zarządzania katalogiem. Aby dowiedzieć się, jakie to polecenia, wykonujemy:

: ~ # dpkg -L ldap-utils | grep / bin
/ usr / bin / usr / bin / ldapmodrdn / usr / bin / ldapurl / usr / bin / ldapdelete / usr / bin / ldapwhoami / usr / bin / ldapexop / usr / bin / ldappasswd / usr / bin / ldapcompare / usr / bin / ldapsearch / usr / bin / ldapmodify / usr / bin / ldapadd

Aby dowiedzieć się więcej o każdym poleceniu, zalecamy uruchomienie mężczyzna. Objaśnienie każdego z nich spowodowałoby, że artykuł byłby bardzo długi.

Zarządzaj bazą danych za pomocą narzędzi konsoli

Wybieramy pakiet ldapscripts za takie zadanie. Procedura instalacji i konfiguracji jest następująca:

: ~ # aptitude install ldapscripts

: ~ # cp /etc/ldapscripts/ldapscripts.conf \ /etc/ldapscripts/ldapscripts.conf.original

: ~ # cp / dev / null /etc/ldapscripts/ldapscripts.conf

: ~ # nano /etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN = 'cn = admin, dc = friends, dc = cu' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = friends, dc = cu' GSUFFIX = 'ou = Groups' USUFFIX = 'ou = People' # MSUFFIX = 'ou = Computers' GIDSTART = 10001 UIDSTART = 10001 # MIDSTART = 10000 # Polecenia klienta OpenLDAP LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEBIN = " / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posix / etc / etc " . /ldapadduser.template "PASSWORDGEN =" echo% u "

### Zwróć uwagę, że skrypty używają poleceń rozszerzenia
Pakiet ### ldap-utils

: ~ # sh -c "echo -n 'tupassowrd'> \ /etc/ldapscripts/ldapscripts.passwd"

: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd

: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.template

: ~ # nano /etc/ldapscripts/ldapadduser.template
dn: uid = , , objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: sn: nadane imię: wyświetlana nazwa: uid: uidNumber: numer gid: katalog domowy: loginShell: Poczta: gekony: opis: Konto użytkownika

: ~ # nano /etc/ldapscripts/ldapscripts.conf
## usuwamy komentarz UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Spróbujmy dodać użytkownika Strider The King do grupy użytkowników Pierścienie i sprawdźmy wprowadzone dane:

: ~ # ldapadduser kroczy pierścienie
[dn: uid = strides, ou = People, dc = friends, dc = cu] Wpisz wartość „sn”: The King [dn: uid = strides, ou = People, dc = friends, dc = cu] Wpisz wartość dla „givenName”: Strides [dn: uid = strides, ou = People, dc = friends, dc = cu] Wprowadź wartość dla „displayName”: Strides El Rey [dn: uid = strides, ou = People, dc = friends, dc = cu] Wprowadź wartość dla „mail”: trancos@amigos.cu Pomyślnie dodano użytkownika trancos do LDAP Pomyślnie ustawiono hasło dla użytkownika trancos

root @ mildap: ~ # ldapfinger strides
dn: uid = strides, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: strides sn: El Rey danyName: Strides displayName: Strides El Rey uid: strides uidNumber: 10002 gidNumber: 10000 homeDirectory: / home / trancos loginShell: / bin / bash mail: trancos@amigos.cu gecos: trancos description: User Account userPassword :: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm8 =

Zadeklarujmy hasło użytkownikowi Frodo, wymieńmy „DN”Z zarejestrowanych użytkowników i usuń nowo utworzonego użytkownika Striders:

: ~ # ldapsetpasswd frodo
Zmiana hasła użytkownika uid = frodo, ou = People, dc = friends, dc = cu Nowe hasło: Wpisz ponownie nowe hasło: Pomyślnie ustawiono hasło dla użytkownika uid = frodo, ou = People, dc = friends, dc = cu

: ~ # lsldap -u | grep dn
dn: uid = frodo, ou = ludzie, dc = przyjaciele, dc = cu dn: uid = strides, ou = ludzie, dc = przyjaciele, dc = cu

: ~ # ldapfinger frodo
dn: uid = frodo, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins givenName: Frodo cn: Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 mailNumber: 10000 mailNumber: : 1 mail: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo userPassword :: e9NTSEF4TnI3ZXN1YXA1VnplK1ZIZXZzbFZKaWF5SVdWeUXNUMXoVjA =

: ~ # ldapdeleteuser strides
Pomyślnie usunięto użytkownika uid = strides, ou = People, dc = friends, dc = cu z LDAP

: ~ # lsldap -u | grep dn
dn: uid = frodo, ou = ludzie, dc = przyjaciele, dc = cu

Sprawdźmy, czy uwierzytelnianie lokalne działa poprawnie:

: ~ # ssh frodo @ mildap
hasło frodo @ mildap: Linux mildap 2.6.32-5-686 # 1 SMP pt. 10 maja 08:33:48 UTC 2013 i686 [---] Debian GNU / Linux jest objęty ABSOLUTNIE ŻADNYM ŻADNYM GWARANCJĄ, w zakresie dozwolonym przez obowiązujące prawo . Ostatnie logowanie: wt., 18 lutego, 18:54:01 2014, z adresu mildap.amigos.cu
frodo @ mildap: ~ $ pwd
/ home / frodo
frodo @ mildap: ~ $ 

Przykładów, które możemy napisać jest wiele, ale niestety artykuł byłby bardzo długi. Zawsze mówimy, że dajemy punkt wejścia do kwestii usług w ogóle. Niemożliwe jest zastąpienie obszernej dokumentacji w jednym poście.

Aby dowiedzieć się więcej o pakiecie ldapscripts i jego poleceń, proszę i skonsultuj się człowiek ldapscripts.

Jak dotąd nasza prosta usługa katalogowa oparta na OpenLDAP działa dobrze.

Dotychczasowe podsumowanie ...

Wiele osób odpowiedzialnych za usługi w sieciach biznesowych, gdy przejmują kontrolę nad usługami opartymi na produktach Microsoft, jeśli chcą przejść na Linuksa, rozważają migrację kontrolerów domeny wśród innych usług.

Jeśli nie wybiorą produktu innej firmy, takiego jak ClearOS lub Zentyal, lub z innych powodów chcą się uniezależnić, podejmują żmudne zadanie stania się własnym kontrolerem domeny lub od Samby 4 własnym Active Directory.

Wtedy zaczynają się problemy i inne rozczarowania. Błędy obsługi. Nie znajdują lokalizacji problemów, aby móc je rozwiązać. Wielokrotne próby instalacji. Częściowe operacje usług. I długa lista problemów.

Podstawa dowolnego kontrolera domeny lub Active Directory w systemie Linux, oparta na OpenLDAP plus Samba, obejmuje podstawową wiedzę o Co to jest serwer LDAP, jak jest instalowany, konfigurowany i zarządzany itd.?. Ci, którzy przeczytali obszerną dokumentację Samby, dobrze wiedzą, co mamy na myśli.

Właśnie po to, aby odpowiedzieć na to pytanie, napisaliśmy całą serię artykułów aż do tego artykułu i będziemy kontynuować te, które są konieczne. Mamy nadzieję, że są dla Ciebie przydatne.


2 komentarzy, zostaw swoje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   widok powiedział

    Doskonały post Fico, zapytanie, z OpenLDAP, czy można tworzyć zasady domeny? aby zastosować je do podłączonych użytkowników, np. wygaszacz ekranu uruchamiany po 5 minutach braku aktywności, konfigurowanie tapety, blokowanie uruchamiania niektórych aplikacji, konfigurowanie skryptów startowych itp.

    Pozdrawiam,
    Oscar

    1.    Federico powiedział

      Dzięki za komentarz !!!. Oscar, pamiętaj, że te zasady w Linuksie są implementowane inaczej w przypadku klientów Linuksa. GNOME oferuje narzędzie do osiągnięcia tego celu, którego teraz nie pamiętam. Tak, wiem, że możemy ustalić zasady kont użytkowników bezpośrednio w OpenLDAP. Wielu zadaje mi to samo pytanie, a ja zawsze odpowiadam mniej więcej tak samo. 🙂 Te zasady bezpieczeństwa dotyczą tylko klientów firmy Microsoft, a NIE klientów systemu Linux. To dwie różne filozofie. Active Directory to zastrzeżona aplikacja oparta na OpenLDAP, osobistym Kerberosie firmy Microsft i Administratorze sieci, którego nie wiem, jak teraz to nazywają. Wcześniej było to w Lan Managerze. Nie możemy myśleć o emulacji Active Directory tylko z LDAP. Musielibyśmy zintegrować Sambę lub użyć Samby 4, aby zobaczyć, czy da się to osiągnąć. I mój przyjacielu, nawet nie spojrzałem na Sambę 4. 🙂 Nie wiem też, czy Zentyal z Active Directory może je zastosować ... ale to oprogramowanie to nie tylko OpenLDAP. To OpenLDAP + Samba + Kerberos + inne rzeczy, których dobrze nie znam. 🙂 W tej serii zajmuję się tylko OpenLDAP, a jeśli będziesz go śledzić, zobaczysz, że w kompendium, które piszę, dotyczy całej serii, plus inne niezbędne usługi, wszystko opiera się na uwierzytelnianiu w katalogu OpenLDAP.

      pozdrowienia