LDAP, известный как облегченный протокол доступа к каталогам, — это протокол, используемый для доступа к контейнерам услуг X.500 внутри предприятия, известным из каталога. Те, кто знаком с администрированием Windows Server, могут считать LDAP очень похожим по своей природе на Active Directory. Это даже широко используемая концепция объединения рабочих станций Windows в предприятие OpenLDAP CentOS. С другой стороны, рабочая станция CentOS Linux может совместно использовать ресурсы и участвовать с основными функциями в домене Windows.
Развертывание LDAP в CentOS в качестве агента сервера каталогов, агента системы каталогов или DSA (все эти сокращения одинаковы) аналогично более ранним установкам Novell Netware с использованием структуры дерева каталогов с NDS.
Краткая история LDAP
LDAP был в основном создан как эффективный способ доступа к каталогам X.500 с помощью корпоративных ресурсов. И X.500, и LDAP имеют одинаковые характеристики и настолько похожи, что клиенты LDAP могут обращаться к каталогам X.500 с некоторыми помощниками. Хотя LDAP также имеет свой собственный сервер каталогов под названием slapd . Основное различие между LDAP и DAP состоит в том, что облегченная версия предназначена для работы через TCP.
В то время как DAP использует полную модель OSI. С появлением Интернета, TCP / IP и Ethernet в современных сетях редко можно встретить имплантацию служб каталогов, использующую как DAP, так и собственные корпоративные каталоги X.500, выходящие за рамки конкретных моделей устаревших вычислений.
Основные компоненты, используемые с openldap для CentOS Linux:
OpenLDAP | Библиотеки поддержки LDAP |
---|---|
OpenLDAP-сервер | Сервер LDAP |
OpenLDAP-клиенты | Клиентские возможности LDAP |
OpenLDAP-разви | Библиотеки разработки для OpenLDAP |
Компай-OpenLDAP | Общие библиотеки OpenLDAP |
Slapd | Сервер каталогов демон OpenLDAP |
Slurpd | Используется для репликации LDAP через домен предприятия |
Примечание. При наименовании предприятия рекомендуется использовать домен верхнего уровня .local . Использование .net или .com может вызвать трудности при разделении сетевой инфраструктуры и инфраструктуры внутреннего домена. Представьте себе дополнительную работу для компании, использующей acme.com для внутренних и внутренних операций. Следовательно, может быть целесообразно иметь интернет-ресурсы, называемые acme.com или acme.net . Затем локальные сетевые корпоративные ресурсы отображаются как acme.local . Это повлечет за собой настройку записей DNS, но заплатит за простоту, красноречие и безопасность.
Установите Open LDAP на CentOS
Установите openldap, openldap-серверы, openldap-клиенты и миграционные инструменты из YUM .
[root@localhost]# yum -y install openldap openldap-servers openldap-clients migration tools Loaded plugins: fastestmirror, langpacks updates | 3.4 kB 00:00:00 updates/7/x86_64/primary_db | 2.2 MB 00:00:05 Determining fastest mirrors (1/2): extras/7/x86_64/primary_db | 121 kB 00:00:01 (2/2): base/7/x86_64/primary_db | 5.6 MB 00:00:16 Package openldap-2.4.40-13.el7.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed ---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed --> Finished Dependency Resolution base/7/x86_64/group_gz | 155 kB 00:00:00 Dependencies Resolved =============================================================================== =============================================================================== Package Arch Version Repository Size =============================================================================== =============================================================================== Installing: openldap-clients x86_64 2.4.40-13.el7 base 188 k openldap-servers x86_64 2.4.40-13.el7 base 2.1 M Transaction Summary =============================================================================== =============================================================================== Install 2 Packages Total download size: 2.3 M Installed size: 5.3 M Downloading packages: Installed: openldap-clients.x86_64 0:2.4.40-13.el7 openldap-servers.x86_64 0:2.4.40-13.el7 Complete! [root@localhost]#
Теперь давайте запустим и включим сервис slapd —
[root@centos]# systemctl start slapd [root@centos]# systemctl enable slapd
Теперь давайте убедимся, что у нас есть структура openldap в / etc / openldap .
root@localhost]# ls /etc/openldap/ certs check_password.conf ldap.conf schema slapd.d [root@localhost]#
Затем убедитесь, что наш сервис slapd запущен.
root@centos]# netstat -antup | grep slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1641/slapd tcp6 0 0 :::389 :::* LISTEN 1641/slapd [root@centos]#
Далее, давайте настроим нашу установку Open LDAP .
Убедитесь, что наш системный пользователь ldap создан.
[root@localhost]# id ldap uid=55(ldap) gid=55(ldap) groups=55(ldap) [root@localhost]#
Создайте наши учетные данные LDAP.
[root@localhost]# slappasswd New password: Re-enter new password: {SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10 [root@localhost]#
Нам нужно сохранить вывод из slappasswd.
Настроить Open LDAP
Шаг 1 — Настройте LDAP для домена и добавьте администратора.
Во-первых, мы хотим настроить нашу среду openLDAP. Ниже приведен шаблон для использования с командой ldapmodify .
dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=vmnet,dc=local dn: olcDatabase = {2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=ldapadm,dc=vmnet,dc=local dn: olcDatabase = {2}hdb,cn=config changetype: modify replace: olcRootPW olcRootPW: <output from slap
Внесите изменения в /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif с помощью команды ldapmodify.
[root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif SASL/EXTERNAL authentication started SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase = {2}hdb,cn=config" modifying entry "olcDatabase = {2}hdb,cn=config" modifying entry "olcDatabase = {2}hdb,cn=config" [root@localhost cn=config]#
Давайте проверим измененную конфигурацию LDAP.
root@linux1 ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif [root@centos]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. # CRC32 a163f14c dn: olcDatabase = {2}hdb objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {2}hdb olcDbDirectory: /var/lib/ldap olcDbIndex: objectClass eq,pres olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub structuralObjectClass: olcHdbConfig entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139 creatorsName: cn=config createTimestamp: 20170212022422Z olcSuffix: dc=vmnet,dc=local olcRootDN: cn=ldapadm,dc=vmnet,dc=local olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k = entryCSN: 20170215204423.726622Z#000000#000#000000 modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth modifyTimestamp: 20170215204423Z [root@centos]#
Как вы можете видеть, наши модификации LDAP предприятия были успешными.
Далее мы хотим создать самозаверяющий ssl-сертификат для OpenLDAP. Это защитит связь между корпоративным сервером и клиентами.
Шаг 2 — Создайте самоподписанный сертификат для OpenLDAP.
Мы будем использовать openssl для создания ssl-сертификата с собственной подписью. Перейдите к следующей главе « Создание сертификата SSL LDAP с помощью openssl», чтобы получить инструкции по обеспечению безопасности связи с OpenLDAP. Затем, когда SSL-сертификаты будут настроены, мы завершим нашу корпоративную конфигурацию OpenLDAP.
Шаг 3 — Настройте OpenLDAP для использования безопасной связи с сертификатом.
Создайте файл certs.ldif в vim со следующей информацией —
dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem
Затем снова используйте команду ldapmodify для объединения изменений в конфигурацию OpenLDAP.
[root@centos rdc]# ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif SASL/EXTERNAL authentication started SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=config" [root@centos]#
Наконец, давайте проверим нашу конфигурацию OpenLADP.
[root@centos]# slaptest -u config file testing succeeded [root@centos]#
Шаг 4 — Настройте базу данных slapd.
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && chown ldap:ldap /var/lib/ldap/*
Обновляет схему OpenLDAP.
Добавьте косинус и nis схемы LDAP.
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
Наконец, создайте схему предприятия и добавьте ее в текущую конфигурацию OpenLDAP.
Следующее для домена под названием vmnet. локальный с администратором LDAP под названием ldapadm .
dn: dc=vmnet,dc=local dc: vmnet objectClass: top objectClass: domain dn: cn=ldapadm ,dc=vmnet,dc=local objectClass: organizationalRole cn: ldapadm description: LDAP Manager dn: ou = People,dc=vmnet,dc=local objectClass: organizationalUnit ou: People dn: ou = Group,dc=vmnet,dc=local objectClass: organizationalUnit ou: Group
Наконец, импортируйте это в текущую схему OpenLDAP.
[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif Enter LDAP Password: adding new entry "dc=vmnet,dc=local" adding new entry "cn=ldapadm ,dc=vmnet,dc=local" adding new entry "ou=People,dc=vmnet,dc=local" adding new entry "ou=Group,dc=vmnet,dc=local" [root@centos]#
Шаг 5 — Настройка пользователей OpenLDAP Enterprise.
Откройте vim или ваш любимый текстовый редактор и скопируйте следующий формат. Это настройка для пользователя с именем «entacct» в домене LDAP «vmnet.local».
dn: uid=entacct,ou=People,dc=vmnet,dc=local objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: entacct uid: entacct uidNumber: 9999 gidNumber: 100 homeDirectory: /home/enyacct loginShell: /bin/bash gecos: Enterprise User Account 001 userPassword: {crypt}x shadowLastChange: 17058 shadowMin: 0 shadowMax: 99999 shadowWarning: 7
Теперь импортируйте вышеуказанные файлы, как сохраненные, в схему OpenLdap.
[root @ centos] # ldapadd -x -W -D "cn = ldapadm, dc = vmnet, dc = local" -f entuser.ldif Введите пароль LDAP: добавление новой записи "uid = entacct, ou = People, dc = vmnet, dc = local" [Корень @ CentOS] #
Прежде чем пользователи смогут получить доступ к LDAP Enterprise, нам нужно назначить пароль следующим образом:
ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct ,ou=People,dc=vmnet,dc=local"
-s указывает пароль для пользователя
-x — имя пользователя, к которому применяется обновленный пароль
-D — это * отличительное имя для аутентификации по схеме LDAP.
Наконец, прежде чем войти в учетную запись Enterprise, давайте проверим нашу запись OpenLDAP .
[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local # extended LDIF # # LDAPv3 # base <dc=vmnet,dc=local> with scope subtree # filter: cn=entacct # requesting: ALL # # entacct, People, vmnet.local dn: uid=entacct,ou=People,dc=vmnet,dc=local objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: entacct uid: entacct uidNumber: 9999 gidNumber: 100 homeDirectory: /home/enyacct loginShell: /bin/bash gecos: Enterprise User Account 001 userPassword:: e2NyeXB0fXg= shadowLastChange: 17058 shadowMin: 0 shadowMax: 99999 shadowWarning: 7
Преобразование таких вещей, как / etc / passwd и / etc / groups в аутентификацию OpenLDAP, требует использования инструментов миграции. Они включены в пакет migtools. Затем устанавливается в / usr / share /igrationtools .
[root@centos openldap-servers]# ls -l /usr/share/migrationtools/ total 128 -rwxr-xr-x. 1 root root 2652 Jun 9 2014 migrate_aliases.pl -rwxr-xr-x. 1 root root 2950 Jun 9 2014 migrate_all_netinfo_offline.sh -rwxr-xr-x. 1 root root 2946 Jun 9 2014 migrate_all_netinfo_online.sh -rwxr-xr-x. 1 root root 3011 Jun 9 2014 migrate_all_nis_offline.sh -rwxr-xr-x. 1 root root 3006 Jun 9 2014 migrate_all_nis_online.sh -rwxr-xr-x. 1 root root 3164 Jun 9 2014 migrate_all_nisplus_offline.sh -rwxr-xr-x. 1 root root 3146 Jun 9 2014 migrate_all_nisplus_online.sh -rwxr-xr-x. 1 root root 5267 Jun 9 2014 migrate_all_offline.sh -rwxr-xr-x. 1 root root 7468 Jun 9 2014 migrate_all_online.sh -rwxr-xr-x. 1 root root 3278 Jun 9 2014 migrate_automount.pl -rwxr-xr-x. 1 root root 2608 Jun 9 2014 migrate_base.pl
Шаг 6 — Наконец, нам нужно разрешить доступ к сервису slapd, чтобы он мог обслуживать запросы.
firewall-cmd --permanent --add-service=ldap firewall-cmd --reload
Настройте клиентский доступ LDAP
Настройка клиентского доступа LDAP требует наличия следующих пакетов на клиенте: клиенты openldap, open-ldap и nss_ldap.
Настройка аутентификации LDAP для клиентских систем немного проще.
Шаг 1 — Установите зависимые пакеты —
# yum install -y openldap-clients nss-pam-ldapd
Шаг 2 — Настройте аутентификацию LDAP с помощью authconfig .
authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 -- ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update
Шаг 3 — Перезапустите службу nslcd.