ຊຸດ RHCSA: ການຕັ້ງຄ່າການກວດສອບຄວາມຖືກຕ້ອງຕາມ LDAP ໃນ RHEL 7 - ພາກ 14


ພວກເຮົາຈະເລີ່ມຕົ້ນບົດຄວາມນີ້ໂດຍການ ກຳ ນົດບາງພື້ນຖານຂອງ LDAP (ມັນແມ່ນຫຍັງ, ບ່ອນໃດທີ່ມັນຖືກໃຊ້ແລະເປັນຫຍັງ) ແລະສະແດງວິທີການຕັ້ງຄ່າ server LDAP ແລະ ກຳ ນົດລູກຄ້າເພື່ອກວດສອບຄວາມຖືກຕ້ອງກັບມັນໂດຍໃຊ້ Red Hat Enterprise Linux 7 ລະບົບ.

ດັ່ງທີ່ພວກເຮົາຈະເຫັນ, ມີຫລາຍໆສະຖານະການການ ນຳ ໃຊ້ທີ່ເປັນໄປໄດ້, ແຕ່ໃນຄູ່ມືນີ້ພວກເຮົາຈະສຸມໃສ່ການກວດສອບຄວາມຖືກຕ້ອງໂດຍອີງໃສ່ LDAP. ນອກຈາກນັ້ນ, ກະລຸນາຈື່ໄວ້ວ່າເນື່ອງຈາກຄວາມກວ້າງໃຫຍ່ຂອງຫົວຂໍ້ດັ່ງກ່າວ, ພວກເຮົາພຽງແຕ່ຈະເວົ້າເຖິງພື້ນຖານຂອງມັນຢູ່ນີ້, ແຕ່ທ່ານສາມາດອ້າງອີງເຖິງເອກະສານທີ່ໄດ້ລະບຸໄວ້ໃນບົດສະຫຼຸບ ສຳ ລັບລາຍລະອຽດທີ່ເລິກເຊິ່ງກວ່າ.

ດ້ວຍເຫດຜົນດຽວກັນນີ້, ທ່ານຈະສັງເກດວ່າຂ້ອຍໄດ້ຕັດສິນໃຈອອກຈາກເອກະສານອ້າງອີງຫຼາຍໆ ໜ້າ ກ່ຽວກັບ ໜ້າ ຜູ້ຊາຍຂອງເຄື່ອງມື LDAP ເພື່ອຈຸດປະສົງຂອງຄວາມແຕກຕ່າງ, ແຕ່ ຄຳ ອະທິບາຍທີ່ສອດຄ້ອງກັນແມ່ນຢູ່ໃນໄລຍະຫ່າງຂອງນິ້ວມື (ຕົວຢ່າງ ldapadd, ຕົວຢ່າງ).

ທີ່ເວົ້າວ່າ, ໃຫ້ເລີ່ມຕົ້ນ.

ສະພາບແວດລ້ອມການທົດສອບຂອງພວກເຮົາປະກອບມີສອງກ່ອງ RHEL 7:

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

ຖ້າທ່ານຕ້ອງການ, ທ່ານສາມາດໃຊ້ເຄື່ອງທີ່ຕິດຕັ້ງຢູ່ໃນພາກທີ 12: ການຕິດຕັ້ງແບບອັດຕະໂນມັດ RHEL 7 ໂດຍໃຊ້ Kickstart ເປັນລູກຄ້າ.

LDAP ແມ່ນສັນຍາລັກ ສຳ ລັບ Lightweight Directory Access Protocol ແລະປະກອບດ້ວຍຊຸດໂປແກຼມທີ່ຊ່ວຍໃຫ້ລູກຄ້າສາມາດເຂົ້າເຖິງ, ຜ່ານເຄືອຂ່າຍ, ຂໍ້ມູນທີ່ເກັບໄວ້ເປັນໃຈກາງ (ເຊັ່ນ: ເສັ້ນທາງຂອງຫອຍເຂົ້າສູ່ລະບົບ, ເສັ້ນທາງຢ່າງແທ້ຈິງກັບລາຍການເຮືອນ, ແລະຂໍ້ມູນຜູ້ໃຊ້ລະບົບປົກກະຕິອື່ນໆ, ຕົວຢ່າງ) ທີ່ສາມາດເຂົ້າເຖິງໄດ້ຈາກສະຖານທີ່ຕ່າງໆຫລືສາມາດເຂົ້າເຖິງໄດ້ ສຳ ລັບຜູ້ ນຳ ໃຊ້ທີ່ສຸດ (ຕົວຢ່າງອື່ນຈະເປັນໄດເລກະທໍລີທີ່ຢູ່ເຮືອນແລະເບີໂທລະສັບຂອງພະນັກງານທັງ ໝົດ ໃນບໍລິສັດ).

ການຮັກສາຂໍ້ມູນດັ່ງກ່າວ (ແລະອື່ນໆ) ເປັນໃຈກາງ ໝາຍ ຄວາມວ່າມັນສາມາດຮັກສາແລະເຂົ້າເຖິງໄດ້ງ່າຍຂຶ້ນໂດຍທຸກໆຄົນທີ່ໄດ້ຮັບອະນຸຍາດໃຫ້ ນຳ ໃຊ້ມັນ.

ແຜນວາດດັ່ງຕໍ່ໄປນີ້ສະ ເໜີ ແຜນວາດແບບງ່າຍດາຍຂອງ LDAP, ແລະມີການອະທິບາຍລຸ່ມນີ້:

ການອະທິບາຍແຜນວາດຂ້າງເທິງໃນລາຍລະອຽດ.

<

  • ການປ້ອນຂໍ້ມູນເຂົ້າໃນໄດເລກະທໍລີ LDAP ເປັນຕົວແທນໃຫ້ແກ່ຫົວ ໜ່ວຍ ຫຼືຂໍ້ມູນຂ່າວສານແລະຖືກລະບຸຢ່າງເປັນເອກະລັກໂດຍສິ່ງທີ່ເອີ້ນວ່າຊື່ຕ່າງ.
  • ຄຸນລັກສະນະແມ່ນຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບການເຂົ້າ (ຕົວຢ່າງ, ທີ່ຢູ່, ເບີໂທລະສັບຕິດຕໍ່ທີ່ມີຢູ່ແລະທີ່ຢູ່ອີເມວ).
  • ແຕ່ລະຄຸນລັກສະນະໄດ້ຖືກມອບ ໝາຍ ໜຶ່ງ ຫຼືຫຼາຍຄຸນຄ່າທີ່ປະກອບດ້ວຍບັນຊີລາຍຊື່ທີ່ແຍກອອກຈາກພື້ນທີ່. ຄຸນຄ່າທີ່ເປັນເອກະລັກສະເພາະຕໍ່ການເຂົ້າແມ່ນຖືກເອີ້ນວ່າຊື່ທີ່ມີຊື່ສຽງທີ່ກ່ຽວຂ້ອງ.
  • ທີ່ຖືກກ່າວເຖິງ, ໃຫ້ ດຳ ເນີນການກັບການຕິດຕັ້ງເຊີບເວີແລະລູກຄ້າ.

    ການຕິດຕັ້ງແລະ ກຳ ຫນົດຄ່າ LDAP Server ແລະ Client

    ໃນ 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 ບໍ່ໄດ້ຮັບການຕອບສະ ໜອງ ໂດຍການເຮັດໃຫ້ booleans ຕໍ່ໄປນີ້ຢ່າງຕໍ່ເນື່ອງ, ທັງໃນ server ແລະລູກຄ້າ:

    # setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0
    

    ບ່ອນທີ່ຕ້ອງການການອະນຸຍາດໃຫ້ໃຊ້ ສຳ ລັບການກວດສອບຄວາມຖືກຕ້ອງຂອງ LDAP, ແລະ 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, comm | grep slapd), ຜູ້ໃຊ້ດັ່ງກ່າວຄວນເປັນເຈົ້າຂອງໄດເລກະທໍລີ/var/lib/ldap ເພື່ອໃຫ້ເຄື່ອງແມ່ຂ່າຍສາມາດ ສາມາດດັດແກ້ການອອກສຽງທີ່ຖືກສ້າງຂື້ນໂດຍເຄື່ອງມືການບໍລິຫານເຊິ່ງສາມາດ ດຳ ເນີນການເປັນຮາກເທົ່ານັ້ນ (ຫຼາຍກວ່ານີ້ໃນນາທີ).

    ກ່ອນທີ່ຈະປ່ຽນແປງຄວາມເປັນເຈົ້າຂອງຂອງໄດເລກະທໍລີນີ້, ສືບຕໍ່, ຄັດລອກເອກະສານການຕັ້ງຄ່າຖານຂໍ້ມູນຕົວຢ່າງ ສຳ ລັບລົງໃນ:

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

    4. ຕັ້ງຜູ້ໃຊ້ບໍລິຫານ OpenLDAP ແລະແຕ່ງຕັ້ງລະຫັດຜ່ານ:

    # slappasswd
    

    ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບຕໍ່ໄປ:

    ແລະສ້າງເອກະສານ LDIF (ldaprootpasswd.ldif) ໂດຍມີເນື້ອໃນຕໍ່ໄປນີ້:

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

    ບ່ອນທີ່:

    <

  • PASSWORD ແມ່ນສະຕິງທີ່ໄດ້ຮັບກ່ອນ ໜ້າ ນີ້.
  • cn = config ສະແດງຕົວເລືອກການຕັ້ງຄ່າທົ່ວໂລກ.
  • olcDatabase ສະແດງຊື່ຕົວຢ່າງຖານຂໍ້ມູນສະເພາະແລະສາມາດພົບເຫັນຢູ່ພາຍໃນ /etc/openldap/slapd.d/cn=config.
  • ໂດຍອ້າງອີງໃສ່ພື້ນຖານທາງທິດສະດີທີ່ໄດ້ໃຫ້ໄວ້ກ່ອນ ໜ້າ ນີ້, ເອກະສານ ldaprootpasswd.ldif ຈະເພີ່ມການເຂົ້າສູ່ລະບົບ LDAP. ໃນການເຂົ້ານັ້ນ, ແຕ່ລະເສັ້ນສະແດງເຖິງຄຸນລັກສະນະ: ຄູ່ມູນຄ່າ (ບ່ອນທີ່ dn, changetype, add, ແລະ olcRootPW ແມ່ນຄຸນລັກສະນະແລະສາຍທີ່ຢູ່ເບື້ອງຂວາຂອງແຕ່ລະຈໍ້າແມ່ນຄ່າທີ່ສອດຄ້ອງກັນ).

    ທ່ານອາດຕ້ອງການໃຫ້ສິ່ງນີ້ຈື່ໄວ້ໃນຂະນະທີ່ພວກເຮົາ ດຳ ເນີນການຕໍ່ໄປ, ແລະກະລຸນາສັງເກດວ່າພວກເຮົາ ກຳ ລັງໃຊ້ຊື່ສາມັນທົ່ວໄປ (cn =) ຕະຫຼອດສ່ວນທີ່ເຫຼືອຂອງບົດນີ້, ເຊິ່ງແຕ່ລະບາດກ້າວແມ່ນຂື້ນກັບຊື່ເກົ່າ .

    5. ດຽວນີ້, ຕື່ມການເຂົ້າ LDAP ທີ່ສອດຄ້ອງກັນໂດຍການລະບຸ URI ໂດຍອ້າງອີງໃສ່ server ldap, ເຊິ່ງມີພຽງແຕ່ອະນຸຍາດໃຫ້ອະນຸຍາດ/ຊ່ອງ host/port ເທົ່ານັ້ນ.

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

    ຜົນໄດ້ຮັບຄວນຈະຄ້າຍຄືກັບ:

    ແລະ ນຳ ເຂົ້າບາງນິຍາມ LDAP ພື້ນຖານຈາກໄດເລກະທໍລີ /etc/openldap/schema :

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

    6. ມີ LDAP ໃຊ້ໂດເມນຂອງທ່ານໃນຖານຂໍ້ມູນຂອງມັນ.

    ສ້າງເອກະສານ LDIF ອື່ນ, ເຊິ່ງພວກເຮົາຈະເອີ້ນ ldapdomain.ldif , ໂດຍມີເນື້ອໃນຕໍ່ໄປນີ້, ແທນທີ່ໂດເມນຂອງທ່ານ (ໃນ Domain Component dc =) ແລະລະຫັດຜ່ານຕາມຄວາມ ເໝາະ ສົມ:

    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 ຂອງພວກເຮົາ. ຄຸນລັກສະນະແລະຄຸນຄ່າຕ່າງໆຈະຖືກແຍກອອກໂດຍໃຊ້ລະຫັດຈໍ້າສອງເມັດ (:) ໃນເອກະສານຕໍ່ໄປນີ້, ເຊິ່ງພວກເຮົາຈະໃສ່ຊື່ວ່າ 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. ສ້າງຜູ້ໃຊ້ LDAP ທີ່ມີຊື່ວ່າ ldapuser (adduser ldapuser), ຈາກນັ້ນສ້າງ ຄຳ ນິຍາມ ສຳ ລັບກຸ່ມ LDAP ໃນ ldapgroup.ldif .

    # adduser ldapuser
    # vi ldapgroup.ldif
    

    ເພີ່ມເນື້ອຫາຕໍ່ໄປນີ້.

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

    ບ່ອນທີ່ gidNumber ແມ່ນ GID ໃນ/etc/ກຸ່ມ ສຳ ລັບ ldapuser) ແລະໂຫລດມັນ:

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

    9. ເພີ່ມເອກະສານ LDIF ທີ່ມີ ຄຳ ນິຍາມ ສຳ ລັບຜູ້ ນຳ ໃຊ້ ldapuser ( ldapuser.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 server ສຳ ເລັດ:

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

    ບົດສະຫຼຸບ

    ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ອະທິບາຍວິທີການຕັ້ງຄ່າການກວດສອບຂັ້ນພື້ນຖານຕໍ່ກັບ server LDAP. ເພື່ອ ກຳ ນົດການຕັ້ງຄ່າທີ່ໄດ້ອະທິບາຍໄວ້ໃນຄູ່ມືປະຈຸບັນ, ກະລຸນາເບິ່ງບົດທີ 13 - ການຕັ້ງຄ່າ LDAP ໃນຄູ່ມືຂອງຜູ້ບໍລິຫານລະບົບ RHEL 7, ໃຫ້ຄວາມສົນໃຈເປັນພິເສດຕໍ່ການຕັ້ງຄ່າຄວາມປອດໄພໂດຍໃຊ້ TLS.

    ຮູ້ສຶກວ່າບໍ່ເສຍຄ່າທີ່ຈະອອກ ຄຳ ຖາມທີ່ທ່ານອາດຈະໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.