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

Nastavimo, ne bez prvog savjetovanja:

U ovom postu ćemo vidjeti:

Lokalna autentifikacija korisnika

Nakon što pokrenemo OpenLDAP poslužitelj, ako želimo testirati ili imati lokalnu provjeru identiteta 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 informacija o korisničkim računima, ID-ovima grupa, informacijama o hostu, pseudonimima, NetGroup-ima i u osnovi bilo kojim drugim podacima koji se obično dobijaju iz datoteka s običnim tekstom, kao / etc / passwd/ etc / groupitd. ili uslugu NIS.

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

nscd: "Daemon Service Cache usluge“, Ili Daemon za predmemoriju usluga imena. Obrađuje pretraživanje lozinki, grupa i hostova i pohranjuje rezultate pretraživanja u predmemoriju za buduću referencu.

: ~ # aptitude instalirajte libnss-ldap prst

Instaliranje paketa libnss-ldap, koji se također instalira kao zavisnosti libpam-ldap već đavo 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-rekonfiguracija libnss-ldap
: ~ # dpkg-rekonfiguracija 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č usluge imena "za informacije o ovoj datoteci. passwd: compat ldap grupa: compat ldap shadow: 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 stupi na snagu, ponovo pokrećemo uslugu nscd:

: ~ # ponovno pokretanje usluge nscd

Važan detalj je izmjena datoteke /etc/pam.d/common-session da bi se korisnička mapa kreirala 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 gidBroj: 10000 dn: uid = frodo, ou = Ljudi, dc = prijatelji, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Porez sa imenom: : Frodo Bagins displayName: Frodo Bagins uidBroj: 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, o kojem ćemo se pozabaviti u sljedećem članku, bit će krozLdap Account Manager.

Treba reći i da je paket ldap-utils, pruža niz korisnih naredbi za upravljanje direktorijom. 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 čoveče. Davanje objašnjenja svake od njih učinilo bi članak vrlo dugim.

Upravljajte bazom podataka pomoću uslužnih programa konzole

Mi 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 =" eho% u "

### Primijetite da skripte koriste naredbe
### ldap-utils paket

: ~ # 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: dato ime: displayName: uid: uidNumber: gidNumber: homeDirektorij: loginShell: mail: gekoni: opis: Korisnički račun

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

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

: ~ # ldapadduser korača zvonima
[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": Koraci [dn: uid = koraci, ou = Ljudi, dc = prijatelji, dc = cu] Unesite vrijednost za "displayName": Koraci El Rey [dn: uid = koraci, ou = Ljudi, dc = prijatelji, 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, hajde da navedemo "DN”Registriranih korisnika i izbrišite novostvorenog korisnika Striders:

: ~ # ldapsetpasswd frodo
Promjena lozinke za korisnika uid = frodo, ou = Ljudi, dc = prijatelji, dc = cu Nova lozinka: Ponovo unesite 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. : 10000 mail: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo userPassword :: e1NTSEF9TnI4ZXN3YXA1VnplK1ZIZXZzbFZKaWF1SVdWeU5oVjA =

: ~ # ldapdeleteuser koraci
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 da lokalna provjera autentičnosti ispravno radi:

: ~ # ssh frodo @ mildap
lozinka frodo @ mildap: Linux mildap 2.6.32-5-686 # 1 SMP Fri May 10 08:33:48 UTC 2013 i686 [---] Debian GNU / Linux dolazi s APSOLUTNO BEZ JAMSTVA, u mjeri u kojoj je to dozvoljeno važećim zakonom . Posljednja prijava: Tue Feb 18 18:54:01 2014 s mildap.amigos.cu
frodo @ mildap: ~ $ pwd
/ home / frodo
frodo @ mildap: ~ $ 

Postoji mnogo primjera koje možemo napisati, ali nažalost članak bi bio vrlo dugačak. Uvijek kažemo da dajemo ulazna tačka na pitanja usluga uopšte. 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 ldapscripts.

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

Sažetak do sada ...

Mnogi ljudi zaduženi za usluge u poslovnim mrežama, kada preuzmu odgovornost za jednu uslugu zasnovanu na Microsoftovim proizvodima, ako žele migrirati na Linux, među ostalim uslugama uzimaju u obzir migraciju Upravljača domena.

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. Operativne greške. Ne pronalaze lokaciju problema da bi ih mogli riješiti. Ponovljeni pokušaji instalacije. Djelomično poslovanje službi. I duga lista problema.

Osnova 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 da 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.


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

2 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   vidagnu rekao je

    Odličan je vaš post Fico, upit s OpenLDAP-om, mogu li se kreirati politike 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 rekao je

      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. Ako znam, možemo uspostaviti politike korisničkog računa direktno u OpenLDAP-u. Mnogi me pitaju isto, a ja uvijek odgovorim manje-više isto. 🙂 Te se sigurnosne politike odnose samo na klijente Microsofta, NE i na klijente Linuxa. To su dvije različite filozofije. Active Directory je vlasnička aplikacija zasnovana na OpenLDAP-u, ličnom 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 koristiti Sambu 4 da vidimo može li se to postići. A moj prijatelju, nisam ni jednom pogledao Sambu 4. 🙂 Niti znam da li ih Zentyal s Active Directory može primijeniti ... ali taj softver nije samo OpenLDAP. To su OpenLDAP + Samba + Kerberos + druge stvari koje ne znam dobro. 🙂 U ovoj seriji bavim se samo OpenLDAP-om, a ako ga slijedite, vidjet ćete da u prilogu koji pišem cijelu seriju, plus ostale osnovne usluge, sve se zasniva na provjeri autentičnosti protiv OpenLDAP direktorija.

      Saludos