Поиск по сайту:

Как установить и настроить OpenLDAP и phpLDAPadmin в Ubuntu 20.04


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установка и настройка сервера OpenLDAP
  4. Создание учетных записей пользователей OpenLDAP
  5. Создать DN привязки OpenLDAP
  6. Установка и настройка phpLDAPadmin
  7. Настройка Apache для phpLDAPadmin
  8. Доступ к веб-интерфейсу phpLDAPadmin
  9. Заключение

LDAP — это упрощенный протокол доступа к каталогам, используемый для доступа и обслуживания распределенного каталога по интернет-протоколу. phpLDAPadmin — это веб-клиент LDAP, используемый для управления и администрирования сервера LDAP. Мощные функции поиска и иерархическое древовидное представление облегчают управление сервером LDAP через веб-браузер. Вы можете добавлять и удалять записи, просматривать и редактировать атрибуты изображений, управлять хэшами паролей пользователей и многое другое с помощью phpLDAPadmin.

В этом руководстве мы объясним, как установить phpLDAPadmin в Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • Пароль root настраивается на сервере.

Начиная

Перед запуском всегда рекомендуется обновить вашу систему до последней версии пакетов. Вы можете обновить его с помощью следующей команды:

apt-get update -y

Как только все пакеты будут обновлены, вы можете перейти к следующему шагу.

Установка и настройка сервера OpenLDAP

Во-первых, вам нужно будет установить Slapd и другие утилиты LDAP на ваш сервер. Вы можете установить их, выполнив следующую команду:

apt-get install slapd ldap-utils

Во время установки вам будет предложено установить пароль администратора, как показано ниже:

Введите безопасный пароль и нажмите Enter, чтобы продолжить. После завершения установки вам нужно будет перенастроить пакет SLAPD, чтобы установить информацию о вашем домене.

Вы можете перенастроить его с помощью следующей команды:

dpkg-reconfigure slapd

Вам будет предложено пропустить конфигурацию сервера OpenLDAP, как показано ниже:

Выберите Нет и нажмите Enter, чтобы продолжить. Вам будет предложено указать доменное имя DNS, как показано ниже:

Укажите свое доменное имя и нажмите Enter, чтобы продолжить. Вам будет предложено указать название организации, как показано ниже:

Укажите желаемое название организации и нажмите Enter, чтобы продолжить. Вам будет предложено ввести пароль администратора, как показано ниже:

Введите пароль администратора и нажмите Enter, чтобы продолжить. Вам будет предложено удалить базу данных, как показано ниже:

Выберите Да и нажмите Enter, чтобы завершить настройку.

Теперь вы можете проверить свою информацию LDAP, используя следующую команду:

slapcat

Вы должны получить следующий результат:

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.com
dc: example
structuralObjectClass: organization
entryUUID: 971829cc-ac5f-103a-8e42-9f8486ff5685
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20201027051828Z
entryCSN: 20201027051828.103064Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20201027051828Z

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9Tm5OYlpSMktkYjVnUUprb284MHFPTEVkMjQrQXpQWEk=
structuralObjectClass: organizationalRole
entryUUID: 9718c198-ac5f-103a-8e43-9f8486ff5685
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20201027051828Z
entryCSN: 20201027051828.107057Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20201027051828Z

Создание учетных записей пользователей OpenLDAP

Во-первых, вам нужно будет создать контейнеры организационных единиц для хранения информации о пользователях и группах. Вы можете создать его с помощью следующей команды:

nano users-ou.ldif

Добавьте следующие строки:

dn: ou=people,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: people

dn: ou=groups,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: groups

Сохраните и закройте файл, когда закончите, затем настройте элементы управления доступом к базе данных SLAPD, создав следующий файл:

nano update-mdb-acl.ldif

Добавьте следующие строки:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange,shadowExpire
  by self write
  by anonymous auth
  by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage 
  by dn.exact="cn=readonly,ou=people,dc=example,dc=com" read 
  by * none
olcAccess: to dn.exact="cn=readonly,ou=people,dc=example,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none
olcAccess: to dn.subtree="dc=example,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
  by users read 
  by * none

Сохраните и закройте файл, затем обновите ACL базы данных с помощью указанной выше информации, выполнив следующую команду:

ldapadd -Y EXTERNAL -H ldapi:/// -f update-mdb-acl.ldif

Вы должны получить следующий результат:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"

Затем обновите базу данных информацией о пользовательском подразделении, выполнив следующую команду:

ldapadd -Y EXTERNAL -H ldapi:/// -f users-ou.ldif

Вы должны получить следующий результат:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "ou=people,dc=example,dc=com"

adding new entry "ou=groups,dc=example,dc=com"

Затем создайте новую учетную запись пользователя с именем hiteshj, создав следующий файл:

nano hitesh.ldif

Добавьте следующие строки:

dn: uid=hiteshj,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: hiteshj
cn: Hitesh
sn: Jethva
loginShell: /bin/bash
uidNumber: 10000
gidNumber: 10000
homeDirectory: /home/hiteshj
shadowMax: 60
shadowMin: 1
shadowWarning: 7
shadowInactive: 7
shadowLastChange: 0

dn: cn=hiteshj,ou=groups,dc=example,dc=com
objectClass: posixGroup
cn: hiteshj
gidNumber: 10000
memberUid: hiteshj

Сохраните и закройте файл, затем добавьте пользователя в базу данных с помощью следующей команды:

ldapadd -Y EXTERNAL -H ldapi:/// -f hitesh.ldif

Вы должны получить следующий результат:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "uid=hiteshj,ou=people,dc=example,dc=com"

adding new entry "cn=hiteshj,ou=groups,dc=example,dc=com"

Далее вам нужно будет установить пароль для пользователя. Вы можете установить его с помощью следующей команды:

ldappasswd -H ldapi:/// -Y EXTERNAL -S "uid=hiteshj,ou=people,dc=example,dc=com"

Вы должны увидеть следующий вывод:

New password: 
Re-enter new password: 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0

Как только вы закончите, вы можете перейти к следующему шагу.

Создать DN привязки OpenLDAP

Далее вам нужно будет определить имя пользователя и пароль для запроса сервера каталогов. Во-первых, сгенерируйте хэш пароля для пользователя DN привязки, используя следующую команду:

slappasswd

Вы должны получить следующий результат:

New password: 
Re-enter new password: 
{SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb

Затем создайте Bind DN name только для чтения с помощью следующей команды:

nano readonly-user.ldif

Добавьте следующие строки:

dn: cn=readonly,ou=people,dc=example,dc=com
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: readonly
userPassword: {SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb
description: Bind DN user for LDAP Operations

Сохраните и закройте файл, когда закончите, затем добавьте пользователя BIND в базу данных с помощью следующей команды:

ldapadd -Y EXTERNAL -H ldapi:/// -f readonly-user.ldif

Вы должны получить следующий результат:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=readonly,ou=people,dc=example,dc=com"

Затем проверьте Bind DN ACL с помощью следующей команды:

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}mdb)' olcAccess

Вы должны получить следующий результат:

dn: olcDatabase={1}mdb,cn=config
olcAccess: {0}to attrs=userPassword,shadowLastChange,shadowExpire by self writ
 e by anonymous auth by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=ext
 ernal,cn=auth" manage  by dn.exact="cn=readonly,ou=people,dc=example,dc=com" 
 read  by * none
olcAccess: {1}to dn.exact="cn=readonly,ou=people,dc=example,dc=com" by dn.subt
 ree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * non
 e
olcAccess: {2}to dn.subtree="dc=example,dc=com" by dn.subtree="gidNumber=0+uid
 Number=0,cn=peercred,cn=external,cn=auth" manage by users read  by * none

Установите и настройте phpLDAPadmin

По умолчанию пакет phpLDAPadmin доступен в стандартном репозитории Ubuntu 20.04. Вы можете установить его, выполнив следующую команду:

apt-get install phpldapadmin -y

После установки phpLDAPadmin вам потребуется настроить phpLDAPadmin и указать информацию о вашем домене. Вы можете сделать это, отредактировав файл /etc/phpldapadmin/config.php:

nano /etc/phpldapadmin/config.php

Измените следующие строки:

$servers->setValue('server','name','My LDAP Server');
$servers->setValue('server','host','69.87.216.102');
$servers->;setValue('server','base',array('dc=example,dc=com'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');
$servers->setValue('auto_number','min',array('uidNumber'=>10000,'gidNumber'=>10000));

Сохраните и закройте файл, когда закончите.

Настроить Apache для phpLDAPadmin

Файл конфигурации phpLDAPadmin по умолчанию для Apache находится в /etc/apache2/conf-available/phpldapadmin.conf. Не вносите никаких изменений и используйте настройки по умолчанию.

Затем отключите файл конфигурации виртуального хоста Apache по умолчанию и перезапустите службу Apache, чтобы применить изменения:

a2dissite 000-default.conf
systemctl restart apache2

Как только вы закончите, вы можете перейти к следующему шагу.

Доступ к веб-интерфейсу phpLDAPadmin

Теперь откройте веб-браузер и войдите в phpLDAPadmin, используя URL-адрес http://your-server-ip/phpldapadmin. Вы должны увидеть следующий экран:

Теперь нажмите на кнопку входа. Вы должны увидеть экран входа в phpLDAPadmin:

Введите DN для входа в систему, пароль и нажмите кнопку «Аутентификация». Вы должны увидеть панель управления phpLDAPadmin на следующем экране:

Заключение

Поздравляем! вы успешно установили и настроили phpLDAPadmin на сервере Ubuntu 20.04. Теперь вы можете управлять своим LDAP-сервером и выполнять несколько задач, включая добавление организационных единиц, групп и пользователей с помощью веб-интерфейса phpLDAPadmin. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.