RHCSA സീരീസ്: RHEL 7-ൽ LDAP അടിസ്ഥാനമാക്കിയുള്ള പ്രാമാണീകരണം സജ്ജീകരിക്കുന്നു - ഭാഗം 14


ചില എൽഡിഎപി അടിസ്ഥാനകാര്യങ്ങൾ (അത് എന്താണ്, എവിടെയാണ് ഉപയോഗിക്കുന്നത്, എന്തുകൊണ്ട്) എന്നിവ വിശദീകരിച്ചുകൊണ്ട് ഞങ്ങൾ ഈ ലേഖനം ആരംഭിക്കും കൂടാതെ Red Hat Enterprise Linux 7 സിസ്റ്റങ്ങൾ ഉപയോഗിച്ച് ഒരു LDAP സെർവർ എങ്ങനെ സജ്ജീകരിക്കാമെന്നും അതിനെതിരെ ആധികാരികത ഉറപ്പാക്കാൻ ഒരു ക്ലയന്റ് കോൺഫിഗർ ചെയ്യാമെന്നും കാണിക്കും.

നമുക്ക് കാണാനാകുന്നതുപോലെ, മറ്റ് നിരവധി ആപ്ലിക്കേഷൻ സാഹചര്യങ്ങൾ ഉണ്ട്, എന്നാൽ ഈ ഗൈഡിൽ ഞങ്ങൾ പൂർണ്ണമായും LDAP അടിസ്ഥാനമാക്കിയുള്ള പ്രാമാണീകരണത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും. കൂടാതെ, വിഷയത്തിന്റെ വിശാലത കാരണം, ഞങ്ങൾ അതിന്റെ അടിസ്ഥാനകാര്യങ്ങൾ മാത്രമേ ഇവിടെ ഉൾപ്പെടുത്തൂ, എന്നാൽ കൂടുതൽ ആഴത്തിലുള്ള വിശദാംശങ്ങൾക്കായി നിങ്ങൾക്ക് സംഗ്രഹത്തിൽ വിവരിച്ചിരിക്കുന്ന ഡോക്യുമെന്റേഷൻ പരിശോധിക്കാം.

അതേ കാരണത്താൽ, സംക്ഷിപ്uതതയ്uക്കായി എൽuഡിuഎuപി ടൂളുകളുടെ മാൻ പേജുകളിലേക്ക് നിരവധി റഫറൻസുകൾ ഉപേക്ഷിക്കാൻ ഞാൻ തീരുമാനിച്ചതായി നിങ്ങൾ ശ്രദ്ധിക്കും, എന്നാൽ അനുബന്ധ വിശദീകരണങ്ങൾ വിരൽത്തുമ്പിൽ മാത്രമാണ് (ഉദാഹരണത്തിന് man ldapadd).

നമുക്ക് തുടങ്ങാം എന്ന് പറഞ്ഞു.

ഞങ്ങളുടെ ടെസ്റ്റ് പരിതസ്ഥിതിയിൽ രണ്ട് RHEL 7 ബോക്സുകൾ അടങ്ങിയിരിക്കുന്നു:

Server: 192.168.0.18. FQDN: rhel7.mydomain.com
Client: 192.168.0.20. FQDN: ldapclient.mydomain.com

നിങ്ങൾക്ക് വേണമെങ്കിൽ, ഭാഗം 12-ൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന മെഷീൻ ഉപയോഗിക്കാം: കിക്ക്സ്റ്റാർട്ട് ക്ലയന്റ് ആയി ഉപയോഗിച്ച് RHEL 7 ഇൻസ്റ്റാളേഷനുകൾ ഓട്ടോമേറ്റ് ചെയ്യുക.

LDAP എന്നത് ലൈറ്റ്uവെയ്റ്റ് ഡയറക്uടറി ആക്uസസ് പ്രോട്ടോക്കോളിനെ സൂചിപ്പിക്കുന്നു, കൂടാതെ ഒരു നെറ്റ്uവർക്കിലൂടെ കേന്ദ്രീകൃതമായി സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങൾ ആക്uസസ് ചെയ്യാൻ ക്ലയന്റിനെ അനുവദിക്കുന്ന ഒരു കൂട്ടം പ്രോട്ടോക്കോളുകൾ ഉൾക്കൊള്ളുന്നു (ലോഗിൻ ഷെല്ലുകളുടെ ഡയറക്uടറി, ഹോം ഡയറക്uടറികളിലേക്കുള്ള സമ്പൂർണ്ണ പാതകൾ, മറ്റ് സാധാരണ സിസ്റ്റം ഉപയോക്തൃ വിവരങ്ങൾ, ഉദാഹരണത്തിന്) അത് വിവിധ സ്ഥലങ്ങളിൽ നിന്ന് ആക്uസസ് ചെയ്യാവുന്നതോ വലിയൊരു വിഭാഗം അന്തിമ ഉപയോക്താക്കൾക്ക് ലഭ്യമായതോ ആയിരിക്കണം (മറ്റൊരു ഉദാഹരണം ഒരു കമ്പനിയിലെ എല്ലാ ജീവനക്കാരുടെയും വീട്ടുവിലാസങ്ങളുടെയും ഫോൺ നമ്പറുകളുടെയും ഡയറക്uടറിയാണ്).

അത്തരം (കൂടുതൽ) വിവരങ്ങൾ കേന്ദ്രീകൃതമായി സൂക്ഷിക്കുക എന്നതിനർത്ഥം, അത് ഉപയോഗിക്കാൻ അനുമതി ലഭിച്ച എല്ലാവർക്കും അത് കൂടുതൽ എളുപ്പത്തിൽ പരിപാലിക്കാനും ആക്uസസ് ചെയ്യാനും കഴിയും എന്നാണ്.

ഇനിപ്പറയുന്ന ഡയഗ്രം എൽഡിഎപിയുടെ ലളിതമായ ഒരു ഡയഗ്രം വാഗ്ദാനം ചെയ്യുന്നു, കൂടുതൽ വിശദമായി താഴെ വിവരിച്ചിരിക്കുന്നു:

മുകളിലുള്ള ഡയഗ്രാമിന്റെ വിശദമായ വിശദീകരണം.

  1. ഒരു LDAP ഡയറക്uടറിയിലെ ഒരു എൻട്രി ഒരൊറ്റ യൂണിറ്റിനെയോ വിവരത്തെയോ പ്രതിനിധീകരിക്കുന്നു, അത് ഒരു വിശിഷ്ട നാമം എന്ന് വിളിക്കപ്പെടുന്ന അദ്വിതീയമായി തിരിച്ചറിയുന്നു.
  2. ഒരു എൻട്രിയുമായി ബന്ധപ്പെട്ട വിവരങ്ങളുടെ ഒരു ഭാഗമാണ് ആട്രിബ്യൂട്ട് (ഉദാഹരണത്തിന്, വിലാസങ്ങൾ, ലഭ്യമായ കോൺടാക്റ്റ് ഫോൺ നമ്പറുകൾ, ഇമെയിൽ വിലാസങ്ങൾ).
  3. ഓരോ ആട്രിബ്യൂട്ടിനും സ്uപെയ്uസ് വേർതിരിക്കുന്ന ലിസ്റ്റിൽ അടങ്ങിയിരിക്കുന്ന ഒന്നോ അതിലധികമോ മൂല്യങ്ങൾ നൽകിയിട്ടുണ്ട്. ഓരോ എൻട്രിയിലും അദ്വിതീയമായ മൂല്യത്തെ ആപേക്ഷിക വിശിഷ്ട നാമം എന്ന് വിളിക്കുന്നു.

അങ്ങനെ പറഞ്ഞാൽ, നമുക്ക് സെർവറും ക്ലയന്റ് ഇൻസ്റ്റാളേഷനുമായി മുന്നോട്ട് പോകാം.

ഒരു LDAP സെർവറും ക്ലയന്റും ഇൻസ്റ്റോൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുന്നു

RHEL 7-ൽ, LDAP നടപ്പിലാക്കുന്നത് OpenLDAP ആണ്. സെർവറും ക്ലയന്റും ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന്, യഥാക്രമം ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിക്കുക:

# yum update && yum install openldap openldap-clients openldap-servers
# yum update && yum install openldap openldap-clients nss-pam-ldapd

ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, ഞങ്ങൾ നോക്കുന്ന ചില കാര്യങ്ങളുണ്ട്. വ്യക്തമായി സൂചിപ്പിച്ചിട്ടില്ലെങ്കിൽ, ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ സെർവറിൽ മാത്രം നടപ്പിലാക്കണം:

1. സെർവറിലും ക്ലയന്റിലും ഇനിപ്പറയുന്ന ബൂലിയൻസ് സ്ഥിരമായി പ്രവർത്തനക്ഷമമാക്കുന്നതിലൂടെ SELinux വഴിയിൽ വരുന്നില്ലെന്ന് ഉറപ്പാക്കുക:

# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0

LDAP-അടിസ്ഥാനത്തിലുള്ള പ്രാമാണീകരണത്തിന് allow_ypbind ആവശ്യമുള്ളിടത്ത്, ചില ആപ്ലിക്കേഷനുകൾക്ക് authlogin_nsswitch_use_ldap ആവശ്യമായി വന്നേക്കാം.

2. സേവനം പ്രവർത്തനക്ഷമമാക്കുകയും ആരംഭിക്കുകയും ചെയ്യുക:

# systemctl enable slapd.service
# systemctl start slapd.service

systemctl ഉപയോഗിച്ചും നിങ്ങൾക്ക് സേവനം അപ്രാപ്തമാക്കാനോ പുനരാരംഭിക്കാനോ നിർത്താനോ കഴിയുമെന്ന് ഓർമ്മിക്കുക:

# systemctl disable slapd.service
# systemctl restart slapd.service
# systemctl stop slapd.service

3. slapd സേവനം ldap ഉപയോക്താവായി പ്രവർത്തിക്കുന്നതിനാൽ (ഇത് നിങ്ങൾക്ക് ps -e -o pid,uname,com റൂട്ട് ആയി മാത്രം പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന അഡ്uമിനിസ്uട്രേറ്റീവ് ടൂളുകൾ സൃഷ്uടിച്ച എൻട്രികൾ പരിഷ്uക്കരിക്കാൻ കഴിയും (ഇതിനെ കുറിച്ച് ഒരു മിനിറ്റിനുള്ളിൽ കൂടുതൽ).

ഈ ഡയറക്uടറിയുടെ ഉടമസ്ഥാവകാശം ആവർത്തിച്ച് മാറ്റുന്നതിന് മുമ്പ്, അതിലേക്ക് സ്ലാപ്പിനുള്ള സാമ്പിൾ ഡാറ്റാബേസ് കോൺഫിഗറേഷൻ ഫയൽ പകർത്തുക:

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown -R ldap:ldap /var/lib/ldap

4. ഒരു OpenLDAP അഡ്uമിനിസ്uട്രേറ്റീവ് ഉപയോക്താവിനെ സജ്ജമാക്കി ഒരു പാസ്uവേഡ് നൽകുക:

# slappasswd

അടുത്ത ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നത് പോലെ:

ഇനിപ്പറയുന്ന ഉള്ളടക്കങ്ങളുള്ള ഒരു LDIF ഫയൽ (ldaprootpasswd.ldif) സൃഷ്ടിക്കുക:

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

എവിടെ:

  1. മുമ്പ് ലഭിച്ച ഹാഷ്ഡ് സ്uട്രിംഗാണ് പാസ്uവേഡ്.
  2. cn=config ആഗോള കോൺഫിഗറേഷൻ ഓപ്ഷനുകളെ സൂചിപ്പിക്കുന്നു.
  3. olcDatabase ഒരു നിർദ്ദിഷ്uട ഡാറ്റാബേസ് ഉദാഹരണ നാമം സൂചിപ്പിക്കുന്നു, അത് സാധാരണയായി /etc/openldap/slapd.d/cn=config എന്നതിനുള്ളിൽ കാണാവുന്നതാണ്.

നേരത്തെ നൽകിയ സൈദ്ധാന്തിക പശ്ചാത്തലം പരാമർശിച്ച്, ldaprootpasswd.ldif ഫയൽ LDAP ഡയറക്uടറിയിലേക്ക് ഒരു എൻട്രി ചേർക്കും. ആ എൻട്രിയിൽ, ഓരോ വരിയും ഒരു ആട്രിബ്യൂട്ടിനെ പ്രതിനിധീകരിക്കുന്നു: മൂല്യ ജോടി (ഇവിടെ dn, changetype, add, olcRootPW എന്നിവ ആട്രിബ്യൂട്ടുകളും ഓരോ കോളന്റെയും വലതുവശത്തുള്ള സ്ട്രിംഗുകൾ അവയുടെ അനുബന്ധ മൂല്യങ്ങളുമാണ്).

ഞങ്ങൾ മുന്നോട്ട് പോകുമ്പോൾ നിങ്ങൾ ഇത് മനസ്സിൽ വയ്ക്കാൻ താൽപ്പര്യപ്പെട്ടേക്കാം, കൂടാതെ ഈ ലേഖനത്തിന്റെ ബാക്കി ഭാഗങ്ങളിൽ ഞങ്ങൾ ഒരേ പൊതുനാമങ്ങൾ (cn=) ഉപയോഗിക്കുന്നു എന്നത് ശ്രദ്ധിക്കുക, ഇവിടെ ഓരോ ഘട്ടവും മുമ്പത്തേതിനെ ആശ്രയിച്ചിരിക്കുന്നു. .

5. ഇപ്പോൾ, പ്രോട്ടോക്കോൾ/ഹോസ്റ്റ്/പോർട്ട് ഫീൽഡുകൾ മാത്രം അനുവദനീയമായ ldap സെർവറിനെ പരാമർശിക്കുന്ന URI വ്യക്തമാക്കിയുകൊണ്ട് അനുബന്ധ LDAP എൻട്രി ചേർക്കുക.

# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif 

ഔട്ട്പുട്ട് ഇതുപോലെ ആയിരിക്കണം:

കൂടാതെ /etc/openldap/schema ഡയറക്ടറിയിൽ നിന്ന് ചില അടിസ്ഥാന LDAP നിർവചനങ്ങൾ ഇറക്കുമതി ചെയ്യുക:

# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done

6. LDAP നിങ്ങളുടെ ഡൊമെയ്uൻ അതിന്റെ ഡാറ്റാബേസിൽ ഉപയോഗിക്കട്ടെ.

മറ്റൊരു LDIF ഫയൽ സൃഷ്uടിക്കുക, അതിനെ ഞങ്ങൾ ldapdomain.ldif എന്ന് വിളിക്കും, ഇനിപ്പറയുന്ന ഉള്ളടക്കങ്ങൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ഡൊമെയ്uനും (ഡൊമെയ്uൻ ഘടകത്തിൽ dc=) ഉചിതമായ പാസ്uവേഡും മാറ്റിസ്ഥാപിക്കുന്നു:

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=mydomain,dc=com" read by * none

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

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=mydomain,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=mydomain,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=mydomain,dc=com" write by * read

തുടർന്ന് ഇനിപ്പറയുന്ന രീതിയിൽ ലോഡ് ചെയ്യുക:

# ldapmodify -H ldapi:/// -f ldapdomain.ldif

7. ഇപ്പോൾ ഞങ്ങളുടെ LDAP ഡയറക്uടറിയിലേക്ക് ചില എൻട്രികൾ ചേർക്കാനുള്ള സമയമായി. ആട്രിബ്യൂട്ടുകളും മൂല്യങ്ങളും ഇനിപ്പറയുന്ന ഫയലിലെ ഒരു കോളൻ (:) കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു, അതിന് ഞങ്ങൾ baseldapdomain.ldif എന്ന് പേരിടും:

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

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

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

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

LDAP ഡയറക്ടറിയിലേക്ക് എൻട്രികൾ ചേർക്കുക:

# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif

8. ldapuser (adduser ldapuser) എന്ന പേരിൽ ഒരു LDAP ഉപയോക്താവിനെ സൃഷ്ടിക്കുക, തുടർന്ന് ഒരു LDAP ഗ്രൂപ്പിനായി ldapgroup.ldif എന്നതിൽ നിർവചനങ്ങൾ സൃഷ്ടിക്കുക.

# adduser ldapuser
# vi ldapgroup.ldif

ഇനിപ്പറയുന്ന ഉള്ളടക്കം ചേർക്കുക.

dn: cn=Manager,ou=Group,dc=mydomain,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1004

ldapuser-നുള്ള /etc/group-ലെ gidNumber ആണ് GID) അത് ലോഡ് ചെയ്യുക:

# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif

9. ഉപയോക്തൃ ldapuser (ldapuser.ldif) എന്നതിനായുള്ള നിർവചനങ്ങളുള്ള ഒരു LDIF ഫയൽ ചേർക്കുക:

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

അത് ലോഡ് ചെയ്യുക:

# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif

അതുപോലെ, നിങ്ങൾ ഇപ്പോൾ സൃഷ്ടിച്ച ഉപയോക്തൃ എൻട്രി ഇല്ലാതാക്കാൻ കഴിയും:

# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"

10. ഫയർവാളിലൂടെ ആശയവിനിമയം അനുവദിക്കുക:

# firewall-cmd --add-service=ldap

11. അവസാനത്തേത്, എന്നാൽ ഏറ്റവും കുറഞ്ഞത്, LDAP ഉപയോഗിച്ച് ആധികാരികമാക്കാൻ ക്ലയന്റിനെ പ്രാപ്തമാക്കുക.

ഈ അവസാന ഘട്ടത്തിൽ ഞങ്ങളെ സഹായിക്കുന്നതിന്, ഞങ്ങൾ authconfig യൂട്ടിലിറ്റി (സിസ്റ്റം പ്രാമാണീകരണ ഉറവിടങ്ങൾ ക്രമീകരിക്കുന്നതിനുള്ള ഒരു ഇന്റർഫേസ്) ഉപയോഗിക്കും.

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച്, LDAP സെർവറിനെതിരായ പ്രാമാണീകരണം വിജയിച്ചതിന് ശേഷം അത് നിലവിലില്ലെങ്കിൽ അഭ്യർത്ഥിച്ച ഉപയോക്താവിനായി ഹോം ഡയറക്ടറി സൃഷ്ടിക്കപ്പെടുന്നു:

# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update

സംഗ്രഹം

ഒരു LDAP സെർവറിനെതിരെ അടിസ്ഥാന പ്രാമാണീകരണം എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഈ ലേഖനത്തിൽ ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. നിലവിലെ ഗൈഡിൽ വിവരിച്ചിരിക്കുന്ന സജ്ജീകരണം കൂടുതൽ കോൺഫിഗർ ചെയ്യുന്നതിന്, TLS ഉപയോഗിച്ചുള്ള സുരക്ഷാ ക്രമീകരണങ്ങളിൽ പ്രത്യേക ശ്രദ്ധ ചെലുത്തി, RHEL 7 സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററുടെ ഗൈഡിലെ പാഠം 13 - LDAP കോൺഫിഗറേഷൻ പരിശോധിക്കുക.

ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിച്ച് നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടാകാൻ മടിക്കേണ്ടതില്ല.