Kā instalēt OpenLDAP serveri centralizētai autentifikācijai


Vieglais direktoriju piekļuves protokols (īsi sakot, LDAP) ir nozares standarta, viegls, plaši izmantots protokolu kopums, lai piekļūtu direktoriju pakalpojumiem. Direktorija pakalpojums ir koplietojama informācijas infrastruktūra, lai piekļūtu ikdienas lietojumiem un tīkla resursiem, piemēram, lietotājiem, grupām, ierīcēm, e-pasta adresēm, tālruņu numuriem, sējumiem un daudziem citiem objektiem, tos pārvaldītu, kārtotu un atjauninātu.

LDAP informācijas modelis ir balstīts uz ierakstiem. Ieraksts LDAP direktorijā apzīmē vienu vienību vai informāciju, un to unikāli identificē ar tā dēvēto atšķirīgo vārdu (DN). Katram ieraksta atribūtam ir tips un viena vai vairākas vērtības.

Atribūts ir informācija, kas saistīta ar ierakstu. Šie tipi parasti ir mnemotiskas virknes, piemēram, “cn” parastajam nosaukumam vai “pasts” e-pasta adresei. Katram atribūtam tiek piešķirta viena vai vairākas vērtības, kas sastāv no atstarpēm atdalītā sarakstā.

Tālāk ir parādīts, kā informācija tiek kārtota LDAP direktorijā.

Šajā rakstā mēs parādīsim, kā instalēt un konfigurēt OpenLDAP serveri centralizētai autentifikācijai Ubuntu 16.04/18.04 un CentOS 7.

1. darbība: LDAP servera instalēšana

1. Vispirms sāciet instalēt OpenLDAP, LDAP atvērtā pirmkoda ieviešanu un dažas tradicionālās LDAP pārvaldības utilītas, izmantojot šādas komandas.

# yum install openldap openldap-servers	    #CentOS 7
$ sudo apt install slapd ldap-utils	    #Ubuntu 16.04/18.04

Ubuntu pakotnes instalēšanas laikā jums tiks lūgts ievadīt administratora ieraksta paroli LDAP direktorijā, iestatīt drošu paroli un to apstiprināt.

Kad instalēšana ir pabeigta, varat sākt pakalpojumu, kā paskaidrots tālāk.

2. CentOS 7 palaidiet šādas komandas, lai palaistu openldap servera dēmonu, ļaujiet tam automātiski startēt sāknēšanas laikā un pārbaudiet, vai tas darbojas un darbojas (Ubuntu pakalpojums ir jāaktivizē automātiski zem systemd, jūs varat vienkārši pārbaudīt tās statuss):

$ sudo systemctl start slapd
$ sudo systemctl enable slapd
$ sudo systemctl status slapd

3. Pēc tam atļaujiet pieprasījumus LDAP servera dēmonam, izmantojot ugunsmūri, kā parādīts.

# firewall-cmd --add-service=ldap    #CentOS 7
$ sudo ufw allow ldap                #Ubuntu 16.04/18.04

2. darbība: LDAP servera konfigurēšana

Piezīme. Nav ieteicams manuāli rediģēt LDAP konfigurāciju, jums jāpievieno konfigurācijas failā un jāizmanto ldapadd vai ldapmodify komanda, lai tās ielādētu LDAP direktorijā, kā parādīts zemāk.

4. Tagad izveidojiet OpenLDAP administratīvo lietotāju un piešķiriet šim lietotājam paroli. Zemāk esošajā komandā šai parolei tiek izveidota jaukta vērtība, ņemiet to vērā, jūs to izmantosiet LDAP konfigurācijas failā.

$ slappasswd

5. Pēc tam izveidojiet LDIF failu (ldaprootpasswd.ldif), ko izmanto, lai pievienotu ierakstu LDAP direktorijā.

$ sudo vim ldaprootpasswd.ldif

Pievienojiet tajā šādu saturu:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD_CREATED

paskaidrojot iepriekš minētos atribūtu un vērtību pārus:

  • olcDatabase: norāda konkrētu datu bāzes instances nosaukumu, un to parasti var atrast mapē /etc/openldap/slapd.d/cn=config.
  • cn = config: norāda globālās konfigurācijas opcijas.
  • PASSWORD: ir jaukta virkne, kas iegūta, izveidojot administratīvo lietotāju.

6. Pēc tam pievienojiet atbilstošo LDAP ierakstu, norādot URI, atsaucoties uz ldap serveri un iepriekš minēto failu.

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif  

3. darbība: konfigurējiet LDAP datu bāzi

7. Tagad nokopējiet slapd datu bāzes konfigurācijas faila paraugu direktorijā/var/lib/ldap un iestatiet pareizās faila atļaujas.

$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
$ sudo chown -R ldap:ldap /var/lib/ldap/DB_CONFIG
$ sudo systemctl restart slapd

8. Pēc tam importējiet dažas pamata LDAP shēmas no direktorija/etc/openldap/schema šādi.

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif 
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

9. Tagad pievienojiet savu domēnu LDAP datu bāzē un izveidojiet savam domēnam failu ar nosaukumu ldapdomain.ldif.

$ sudo vim ldapdomain.ldif 

Pievienojiet tajā šādu saturu (aizstājiet piemēru ar savu domēnu un PASSWORD ar iepriekš iegūto jaukto vērtību):

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=example,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read

10. Pēc tam pievienojiet iepriekš minēto konfigurāciju LDAP datu bāzei, izmantojot šādu komandu.

$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif

11. Šajā solī mums jāpievieno daži ieraksti mūsu LDAP direktorijā. Izveidojiet citu failu ar nosaukumu baseldapdomain.ldif ar šādu saturu.

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: example com
dc: example

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group 

Saglabājiet failu un pēc tam pievienojiet ierakstus LDAP direktorijā.

$ sudo ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f baseldapdomain.ldif

12. Nākamais solis ir izveidot LDAP lietotāju, piemēram, tecmint, un šim lietotājam iestatīt paroli šādi.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Pēc tam izveidojiet LDAP grupas definīcijas failā ar nosaukumu ldapgroup.ldif ar šādu saturu.

dn: cn=Manager,ou=Group,dc=example,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1005

Iepriekšminētajā konfigurācijā gidNumber ir GID failā/etc/tecmint grupā un pievienojiet to OpenLDAP direktorijai.

$ sudo ldapadd -Y EXTERNAL -x  -W -D "cn=Manager,dc=example,dc=com" -f ldapgroup.ldif

14. Pēc tam izveidojiet citu LDIF failu ar nosaukumu ldapuser.ldif un pievienojiet lietotāja tecmint definīcijas.

dn: uid=tecmint,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tecmint
uid: tecmint
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/tecmint
userPassword: {SSHA}PASSWORD_HERE
loginShell: /bin/bash
gecos: tecmint
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

pēc tam ielādējiet konfigurāciju LDAP direktorijā.

$ ldapadd -Y EXTERNAL  -x -D cn=Manager,dc=example,dc=com -W -f  ldapuser.ldif

Kad esat iestatījis centrālo serveri autentifikācijai, pēdējā daļa ir ļaut klientam autentificēties, izmantojot LDAP, kā paskaidrots šajā rokasgrāmatā:

  1. Kā konfigurēt LDAP klientu ārējās autentifikācijas savienošanai

Lai iegūtu papildinformāciju, skatiet atbilstošo dokumentāciju no OpenLDAP servera rokasgrāmatas.

OpenLDAP ir atvērtā koda LDAP ieviešana Linux. Šajā rakstā mēs esam parādījuši, kā instalēt un konfigurēt OpenLDAP serveri centralizētai autentifikācijai, Ubuntu 16.04/18.04 un CentOS 7. Ja jums ir jautājums vai domas, ko dalīties, nevilcinieties sazināties ar mums, izmantojot zemāk esošo komentāru veidlapu.