Kif Tinstalla OpenLDAP Server għall-Awtentikazzjoni Ċentralizzata


Protokoll ta 'Aċċess għad-Direttorju ħafif (LDAP fil-qosor) huwa sett ta' protokolli standard industrijali, ħafif u użat ħafna għall-aċċess għas-servizzi tad-direttorju. Servizz tad-direttorju huwa infrastruttura ta’ informazzjoni kondiviża għall-aċċess, il-ġestjoni, l-organizzazzjoni u l-aġġornament ta’ oġġetti ta’ kuljum u riżorsi tan-netwerk, bħal utenti, gruppi, tagħmir, indirizzi tal-email, numri tat-telefon, volumi u ħafna oġġetti oħra.

Il-mudell ta' informazzjoni LDAP huwa bbażat fuq l-entrati. Entrata f'direttorju LDAP tirrappreżenta unità jew informazzjoni waħda u hija identifikata b'mod uniku b'dak li jissejjaħ Isem Distint (DN). Kull wieħed mill-attributi tad-dħul għandu tip u valur wieħed jew aktar.

Attribut huwa biċċa informazzjoni assoċjata ma' dħul. It-tipi huma tipikament kordi mnemoniċi, bħal cn għal isem komuni, jew posta għall-indirizz elettroniku. Kull attribut huwa assenjat valur wieħed jew aktar li jikkonsistu f'lista separata bi spazju.

Dan li ġej huwa eżempju ta' kif l-informazzjoni hija rranġata fid-direttorju LDAP.

F'dan l-artikolu, ser nuru kif tinstalla u tikkonfigura server OpenLDAP għal awtentikazzjoni ċentralizzata f'Ubuntu 16.04/18.04 u CentOS 7.

Pass 1: Installazzjoni ta' LDAP Server

1. L-ewwel ibda billi tinstalla OpenLDAP, implimentazzjoni ta 'sors miftuħ ta' LDAP u xi utilitajiet tradizzjonali ta 'ġestjoni LDAP billi tuża l-kmandi li ġejjin.

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

Fuq Ubuntu, waqt l-installazzjoni tal-pakkett, tkun imħeġġeġ biex iddaħħal il-password għad-dħul tal-amministratur fid-direttorju LDAP tiegħek, issettja password sigura u tikkonfermaha.

Meta l-installazzjoni tkun kompluta, tista 'tibda s-servizz kif spjegat li jmiss.

2. Fuq CentOS 7, mexxi l-kmandi li ġejjin biex tibda d-daemon tas-server openldap, ppermettih li jibda awtomatikament fil-ħin tal-ibbutjar u ċċekkja jekk hux qed jaħdem (fuq Ubuntu is-servizz għandu jinbeda awtomatikament taħt systemd, tista 'sempliċement tiċċekkja l-istatus tiegħu):

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

3. Sussegwentement, ħalli t-talbiet lid-daemon tas-server LDAP permezz tal-firewall kif muri.

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

Pass 2: Konfigurazzjoni tas-Server LDAP

Nota: Mhux rakkomandat li teditja manwalment il-konfigurazzjoni LDAP, għandek bżonn iżżid il-konfigurazzjonijiet f'fajl u tuża l-kmand ldapadd jew ldapmodify biex tgħabbihom fid-direttorju LDAP kif muri hawn taħt.

4. Issa oħloq utent amministrattiv OpenLDAP u assenja password għal dak l-utent. Fil-kmand ta 'hawn taħt, jinħoloq valur hashed għall-password mogħtija, ħu nota tiegħu, se tużah fil-fajl tal-konfigurazzjoni LDAP.

$ slappasswd

5. Imbagħad oħloq fajl LDIF (ldaprootpasswd.ldif) li jintuża biex iżżid dħul fid-direttorju LDAP.

$ sudo vim ldaprootpasswd.ldif

Żid il-kontenut li ġej fih:

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

tispjega l-pari attribut-valur hawn fuq:

  • olcDatabase: jindika isem ta' istanza tad-database speċifika u tipikament jista' jinstab ġewwa /etc/openldap/slapd.d/cn=config.
  • cn=config: tindika għażliet ta' konfigurazzjoni globali.
  • PASSWORD: hija s-sekwenza hashed miksuba waqt li jinħoloq l-utent amministrattiv.

6. Sussegwentement, żid l-entrata LDAP korrispondenti billi tispeċifika l-URI li tirreferi għas-server ldap u l-fajl ta 'hawn fuq.

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

Pass 3: Konfigurazzjoni tad-Database LDAP

7. Issa kkopja l-fajl tal-konfigurazzjoni tad-database tal-kampjun għal slapd fid-direttorju /var/lib/ldap, u waqqaf il-permessi korretti fuq il-fajl.

$ 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. Sussegwentement, importazzjoni xi skemi bażiċi LDAP mid-direttorju /etc/openldap/schema kif ġej.

$ 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. Issa żid id-dominju tiegħek fid-database LDAP u oħloq fajl imsejjaħ ldapdomain.ldif għad-dominju tiegħek.

$ sudo vim ldapdomain.ldif 

Żid il-kontenut li ġej fih (issostitwixxi l-eżempju mad-dominju tiegħek u l-PASSWORD bil-valur hashed miksub qabel):

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. Imbagħad żid il-konfigurazzjoni ta 'hawn fuq fid-database LDAP bil-kmand li ġej.

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

11. F'dan il-pass, għandna bżonn inżidu xi entrati fid-direttorju LDAP tagħna. Oħloq fajl ieħor imsejjaħ baseldapdomain.ldif bil-kontenut li ġej.

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 

Issejvja l-fajl u mbagħad żid l-entrati fid-direttorju LDAP.

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

12. Il-pass li jmiss huwa li toħloq utent LDAP pereżempju, tecmint, u ssettja password għal dan l-utent kif ġej.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Imbagħad oħloq id-definizzjonijiet għal grupp LDAP f'fajl imsejjaħ ldapgroup.ldif bil-kontenut li ġej.

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

Fil-konfigurazzjoni ta 'hawn fuq, gidNumber huwa l-GID f'/etc/group għal tecmint u żidha mad-direttorju OpenLDAP.

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

14. Sussegwentement, oħloq fajl LDIF ieħor imsejjaħ ldapuser.ldif u żid id-definizzjonijiet għall-utent tecmint.

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

imbagħad tagħbija l-konfigurazzjoni fid-direttorju LDAP.

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

Ladarba tkun issettjajt server ċentrali għall-awtentikazzjoni, il-parti finali hija li tippermetti lill-klijent biex jawtentika bl-użu ta 'LDAP kif spjegat f'din il-gwida:

  1. Kif tikkonfigura l-Klijent LDAP biex tikkonnettja l-Awtentikazzjoni Esterna

Għal aktar informazzjoni, ara d-dokumentazzjoni xierqa mill-gwida tas-server OpenLDAP.

OpenLDAP hija implimentazzjoni ta' sors miftuħ ta' LDAP fil-Linux. F'dan l-artikolu, wrejna kif tinstalla u tikkonfigura server OpenLDAP għal awtentikazzjoni ċentralizzata, f'Ubuntu 16.04/18.04 u CentOS 7. Jekk għandek mistoqsija jew ħsibijiet x'taqsam, toqgħodx lura milli tilħaqna permezz tal-formola tal-kumment hawn taħt.