Учебники

Установите и настройте Open LDAP

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.