Usluga direktorija s LDAP-om [5]: OpenLDAP (II)

Nastavimo, ne bez prvog savjetovanja:

U ovom postu vidjet ćemo:

Lokalna autentifikacija korisnika

Nakon što pokrenemo OpenLDAP poslužitelj, ako želimo testirati ili imati lokalnu provjeru autentičnosti registriranih korisnika - ili ćemo se registrirati - u direktoriju, moramo instalirati i konfigurirati potrebne pakete.

U Squeeze su uključeni paketi:

libnss-ldap: Pruža uslugu razmjene imena (Prekidač usluge NSS imena) koji omogućuje LDAP poslužitelju da djeluje kao poslužitelj imena.

To znači pružanje podataka o korisničkim računima, ID-ovima grupa, podacima o hostu, pseudonimima, NetGroupima i u osnovi svim ostalim podacima koji se obično dobivaju iz datoteka s običnim tekstom, kao što su / Etc / passwd/ etc / groupitd. ili uslugu NIS.

libpam-ldap: "Priključni modul za provjeru autentičnosti za LDAP", Ili modul PAM za LDAP. Pruža sučelje između LDAP poslužitelja i sustava za provjeru autentičnosti putem PAM.

nscd: "Daemon uslužne memorije imena“, Ili Daemon za predmemoriju usluga imena. Rukuje pretraživanjem lozinki, grupa i hostova te predmemorira rezultate pretraživanja za buduću referencu.

: ~ # aptitude instaliraj libnss-ldap prst

Instaliranje paketa libnss-ldap, koji se također instalira kao ovisnosti libpam-ldap već vrag nscd, vodit će nas kroz čarobnjaka za konfiguraciju, na čija pitanja moramo odgovarajuće odgovoriti:

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

libpam-01

libpam-02

libpam-03

libpam-04

Ako želimo rekonfigurirati pakete libnss-ldap i / ili libpam-ldap, moramo izvršiti:

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

Kasnije modificiramo datoteku /etc/nsswitch.conf i ostavljamo ga sa sljedećim sadržajem:

: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Primjer konfiguracije funkcionalnosti GNU Name Service Switch. # Ako imate instalirane pakete `glibc-doc-reference 'i` info', pokušajte: # `info libc" Prekidač imenske usluge "'za informacije o ovoj datoteci. passwd: compat ldap grupa: compat ldap sjena: compat ldap domaćini: datoteke dns mreže: datoteke protokoli: db datoteke usluge: db datoteke eteri: db datoteke rpc: db datoteke netgroup: nis

Za promjene u datoteci /etc/nsswitch.conf stupaju na snagu, ponovno pokrećemo uslugu nscd:

: ~ # ponovno pokretanje usluge nscd

Važan detalj je izmjena datoteke /etc/pam.d/common-session za stvaranje mape korisnika na lokalnom poslužitelju prilikom prijave na nju, korisnik registriran u direktoriju:

: ~ # nano /etc/pam.d/common-session
[----]
potrebna sesija pam_mkhomedir.so skel = / etc / skel / umask = 0022
### Gornji redak mora biti PRIJE # ovdje su moduli po paketu (blok "Primarni") [----]

Popunite bazu podataka

Da bismo popunili bazu podataka direktorija ili je pokrenuli, moramo dodati glavne organizacijske jedinice, registrirati barem jednu korisničku grupu i dodati korisnika. Da bismo to učinili, kreiramo datoteku u LDIF formatu, koju ćemo kasnije dodati u Direktorij, sa sljedećim sadržajem:

: ~ # nano content.ldif
dn: ou = Ljudi, dc = prijatelji, dc = cu objectClass: organizationUnit ou: People dn: ou = Grupe, dc = prijatelji, dc = cu objectClass: organizationUnit ou: Grupe dn: cn = prstenovi, ou = Grupe, dc = prijatelji, dc = cu objectClass: posixGroup cn: prstenovi gidNumber: 10000 dn: uid = frodo, ou = People, dc = prijatelji, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins givenName: Frodo givenNn: Frodo givenNn: : Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidBroj: 10000 userPassword: frodo mail: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo

Sadržaj datoteke dodajemo u Direktorij:

: ~ # ldapadd -x -D cn = admin, dc = prijatelji, dc = cu -W -f content.ldif
Unesite LDAP lozinku: dodavanje novog unosa "ou = Ljudi, dc = prijatelji, dc = cu" dodavanje novog unosa "ou = Grupe, dc = prijatelji, dc = cu" dodavanje novog unosa "cn = prstenovi, ou = Grupe, dc = prijatelji, dc = cu "dodavanje novog unosa" uid = frodo, ou = ljudi, dc = prijatelji, dc = cu "

Provodimo relevantne provjere:

: ~ # id frodo
uid = 10000 (frodo) gid = 10000 (prstenovi) grupe = 10000 (prstenovi)

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

: ~ # prst frodo
Prijava: frodo Ime: Frodo Bagins direktorij: / home / frodo Shell: / bin / bash Nikada se niste prijavili. Nema pošte. Nema plana.

: ~ # ldapsearch -Y EXTERNAL -H ldapi: /// -b uid = frodo, ou = Ljudi, dc = prijatelji, dc = cu

Sada imamo Uslugu direktorija kojom moramo upravljati !!!. Razvit ćemo dva načina: prvi kroz paket ldapscripts, a drugi, kojemu ćemo se pozabaviti u sljedećem članku, bit će krozLdap upravitelj računa.

Također bismo trebali reći da je paket ldap-utils, pruža niz korisnih naredbi za upravljanje Imenikom. Da bismo znali koje su to naredbe, izvršavamo:

: ~ # 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 / ldapinpare / usr / ldapsearch / usr / bin / ldapmodify / usr / bin / ldapadd

Da biste saznali više o svakoj naredbi, preporučujemo pokretanje čovjek. Davanje objašnjenja svake od njih učinilo bi članak vrlo dugim.

Upravljajte bazom podataka pomoću uslužnih programa konzole

Odabiremo paket ldapscripts za takav zadatak. Postupak instalacije i konfiguracije je sljedeći:

: ~ # aptitude instaliraj 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 = prijatelji, dc = cu' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = prijatelji, dc = cu' GSUFFIX = 'ou = Grupe' USUFFIX = 'ou = People' # MSUFFIX = 'ou = Computers' GIDSTART = 10001 UIDSTART = 10001 # MIDSTART = 10000 # OpenLDAP naredbe klijenta LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEIN / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posixTEMPL = /ldapadduser.template "PASSWORDGEN =" echo% u "

### Primijetite da skripte koriste naredbe
### paket 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: s n: givenName: displayName: uid: uidNumber: gidNumber: homeDirektorij: loginShell: pošta: gekoni: opis: Korisnički račun

: ~ # nano /etc/ldapscripts/ldapscripts.conf
## uklanjamo komentar UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Pokušajmo dodati korisnika Strider Kralj grupi korisnika prstenje i provjerimo unesene podatke:

: ~ # ldapadduser korača prstenovima
[dn: uid = koraci, ou = Ljudi, dc = prijatelji, dc = cu] Unesite vrijednost za "sn": Kralj [dn: uid = koraci, ou = Ljudi, dc = prijatelji, dc = cu] Unesite vrijednost za "givenName": Strides [dn: uid = strides, ou = People, dc = friends, dc = cu] Unesite vrijednost za "displayName": Koraci El Rey [dn: uid = strides, ou = People, dc = friends, dc = cu] Unesite vrijednost za "mail": trancos@amigos.cu Uspješno dodani trancos korisnika u LDAP Uspješno postavljena lozinka za korisničke trancose

root @ mildap: ~ # ldapfinger koraci
dn: uid = strides, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: strides sn: El Rey givenName: Strides displayName: Strides El Rey uid: strides uidNumber: 10002 gidNumber: 10000 homeDirectory: / home / trancos loginShell: / bin / bash mail: trancos@amigos.cu gecos: trancos opis: Korisnički račun userPassword :: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm8 =

Proglasimo korisnika lozinkom Frodo, navedimo "DN”Registriranih korisnika i izbrišite novostvorenog korisnika Koraci:

: ~ # ldapsetpasswd frodo
Promjena lozinke za korisnika uid = frodo, ou = Ljudi, dc = prijatelji, dc = cu Nova lozinka: Ponovno upišite novu lozinku: Uspješno postavljena lozinka za korisnika uid = frodo, ou = Ljudi, dc = prijatelji, dc = cu

: ~ # lsldap -u | grep dn
dn: uid = frodo, ou = Ljudi, dc = prijatelji, dc = cu dn: uid = koraci, ou = Ljudi, dc = prijatelji, 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 g. broj: 10000 g. : frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo userPassword :: e1NTSEF9TnI4ZXN3YXA1VnplK1ZIZXZzbFZKaWF1SVdWeU5oVjA =

: ~ # ldapdeleteuser iskorači
Korisnik uid = iskorači, ou = Ljudi, dc = prijatelji, dc = cu iz LDAP-a

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

Provjerimo radi li lokalna provjera autentičnosti ispravno:

: ~ # ssh frodo @ mildap
lozinka frodo @ mildap: Linux mildap 2.6.32-5-686 # 1 SMP pet 10. svibnja 08:33:48 UTC 2013 i686 [---] Debian GNU / Linux dolazi s APSOLUTNO BEZ JAMSTVA, u mjeri u kojoj to dopušta važeći zakon . Posljednja prijava: utorak, 18. veljače 18:54:01 2014. s mildap.amigos.cu
frodo @ mildap: ~ $ pwd
/ home / frodo
frodo @ mildap: ~ $ 

Mnogo je primjera koje možemo napisati, ali nažalost članak bi bio vrlo dugačak. Uvijek kažemo da dajemo ulazna točka na pitanja usluga općenito. Nemoguće je zamijeniti opsežnu dokumentaciju u jednom postu.

Da biste saznali više o paketu ldapscripts i njegove naredbe, molim vas i konzultirajte se čovjekov ldapskripti.

Za sada naša Jednostavna usluga direktorija temeljena na OpenLDAP-u dobro funkcionira.

Sažetak do sada ...

Mnogi upravitelji usluga u poslovnim mrežama, kada preuzmu jednu sa uslugama temeljenim na Microsoftovim proizvodima, ako žele migrirati na Linux, među ostalim uslugama uzimaju u obzir migraciju Upravitelja domene.

Ako ne odaberu proizvod treće strane kao što je ClearOS ili Zentyal, ili ako se iz drugih razloga žele osamostaliti, poduzimaju mukotrpan zadatak da postanu vlastiti kontrolor domene ili Samba 4 svoj vlastiti Active Directory.

Tada počinju problemi i neka druga razočaranja. Pogreške u radu. Ne nalaze mjesto problema da bi ih mogli riješiti. Ponovljeni pokušaji instalacije. Djelomično poslovanje službi. I dugačak popis problema.

Baza bilo kojeg kontrolera domene ili Active Directory u Linuxu, zasnovana na OpenLDAP-u i Sambi, prolazi kroz osnovno znanje Što je LDAP poslužitelj, kako se instalira, kako se konfigurira i upravlja, i tako dalje?. Oni koji su pročitali opsežnu dokumentaciju Sambe, dobro će znati na što mislimo.

Upravo kako bismo odgovorili na to pitanje, napisali smo čitav niz članaka do ovog, a mi ćemo nastaviti s onima koji su neophodni. Nadamo se da su vam korisni.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   vidagnu dijo

    Odličan je vaš post Fico, upit s OpenLDAP-om, mogu li se kreirati pravila domene? da ih primijene na povezane korisnike, kao što je čuvar zaslona koji se aktivira nakon 5 minuta bez aktivnosti, konfiguriranje pozadine, sprečavanje pokretanja određenih aplikacija, konfiguriranje skripti za pokretanje itd.

    pozdrav,
    Oscar

    1.    Federico dijo

      Hvala na komentaru !!!. Oscar, ne zaboravite da se te politike na Linuxu različito primjenjuju kada su u pitanju Linux klijenti. GNOME donosi alat za njegovo postizanje, a sada se ne sjećam njegovog imena. Da, znam da možemo uspostaviti pravila korisničkih računa izravno u OpenLDAP-u. Mnogi me pitaju isto, a ja uvijek odgovorim više-manje isto. 🙂 Ta se sigurnosna pravila primjenjuju samo na Microsoftove klijente, A NE na Linux klijente. To su dvije različite filozofije. Active Directory je vlasnička aplikacija koja se temelji na OpenLDAP-u, osobnom Kerberosu iz Microsfta i mrežnom administratoru, koji ne znam kako ga sada zovu. Prije je to bilo u Lan Manageru. Ne možemo razmišljati o oponašanju Active Directory samo s LDAP-om. Morali bismo integrirati Sambu ili upotrijebiti Sambu 4 da vidimo može li se to postići. A moj prijatelju, nisam niti jedanput pogledao Sambu 4. 🙂 Niti znam mogu li ih Zentyal s Active Directoryom primijeniti ... ali taj softver nije samo OpenLDAP. To su OpenLDAP + Samba + Kerberos + druge stvari koje ne znam dobro. 🙂 U ovoj se seriji bavim samo OpenLDAP-om, a ako je slijedite, vidjet ćete da u prilogu koji pišem za cijelu seriju, plus ostale osnovne usluge, sve se temelji na provjeri autentičnosti protiv direktorija OpenLDAP.

      pozdravi