Как установить и настроить OpenLDAP и phpLDAPadmin в Ubuntu 20.04
Это руководство существует для этих версий ОС
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Focal Fossa)
На этой странице
- Предпосылки
- Начало работы
- Установка и настройка сервера OpenLDAP
- Создание учетных записей пользователей OpenLDAP
- Создать DN привязки OpenLDAP
- Установка и настройка phpLDAPadmin
- Настройка Apache для phpLDAPadmin
- Доступ к веб-интерфейсу phpLDAPadmin
- Заключение
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. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.