Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:авторизация_по_сети:openldap_server [2012/06/12 20:48] [Управление пользователями и группами] |
wiki:руководство_по_ubuntu_server:авторизация_по_сети:openldap_server [2013/02/10 08:17] (текущий) орфография; </code> |
||
---|---|---|---|
Строка 58: | Строка 58: | ||
<note>Ubuntu теперь использует метод slapd-config для настройки slapd и данное руководство это отражает.</note> | <note>Ubuntu теперь использует метод slapd-config для настройки slapd и данное руководство это отражает.</note> | ||
- | Во время установки у вас будет запрос на информацию об администраторе. Это LDAP данные для rootDN вашего экземпляра базы данных. По умолчанию этот пользовательский DN **cn=admin,dc=example,dc=com**. Также по умолчанию не создаеется административного пользователя для базы данных slapd-config и вы, следовательно, будете вынуждены использовать внешнюю авторизацию LDAP для доступа к ней. Мы рассмотрим как это делается позднее. | + | Во время установки у вас будет запрос на информацию об администраторе. Это LDAP данные для rootDN вашего экземпляра базы данных. По умолчанию этот пользовательский DN **cn=admin,dc=example,dc=com**. Также по умолчанию не создается административного пользователя для базы данных slapd-config и вы, следовательно, будете вынуждены использовать внешнюю авторизацию LDAP для доступа к ней. Мы рассмотрим как это делается позднее. |
Некоторые классические схемы (cosine, nis, inetorgperson) выпускаются теперь для slapd. Это также включает базовую (core) схему, которая предполагается для любой рабочей схемы. | Некоторые классические схемы (cosine, nis, inetorgperson) выпускаются теперь для slapd. Это также включает базовую (core) схему, которая предполагается для любой рабочей схемы. | ||
Строка 86: | Строка 86: | ||
<note>Не редактируйте базу slapd-config напрямую. Вносите изменения через протокол LDAP (утилитами).</note> | <note>Не редактируйте базу slapd-config напрямую. Вносите изменения через протокол LDAP (утилитами).</note> | ||
- | ** Здесь ппоказано как выглядит дерево slapd-config через LDAP протокол: | + | ** Здесь показано как выглядит дерево slapd-config через LDAP протокол: |
<code>sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn | <code>sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn | ||
dn: cn=config | dn: cn=config | ||
Строка 393: | Строка 393: | ||
</code> | </code> | ||
- | Создаем каталог, устанавливаем файл настроек базы данных и перегружаем рофиль apparmor: | + | Создаем каталог, устанавливаем файл настроек базы данных и перегружаем профиль apparmor: |
<code> | <code> | ||
sudo -u openldap mkdir /var/lib/ldap/accesslog | sudo -u openldap mkdir /var/lib/ldap/accesslog | ||
Строка 563: | Строка 563: | ||
** Создаем секретный ключ Центра сертификатов: | ** Создаем секретный ключ Центра сертификатов: | ||
<code>sudo sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"</code> | <code>sudo sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"</code> | ||
- | ** Создаем временный файл /etc/ssl/ca.info для оределения CA: | + | ** Создаем временный файл /etc/ssl/ca.info для определения CA: |
<code> | <code> | ||
cn = Example Company | cn = Example Company | ||
Строка 648: | Строка 648: | ||
--outfile ldap02_slapd_key.pem | --outfile ldap02_slapd_key.pem | ||
</code> | </code> | ||
- | Создаем информационый файл ldap02.info для сервера Потребителя; подставляйте свои соответствующие значения: | + | Создаем информационный файл ldap02.info для сервера Потребителя; подставляйте свои соответствующие значения: |
<code> | <code> | ||
organization = Example Company | organization = Example Company | ||
Строка 666: | Строка 666: | ||
--outfile ldap02_slapd_cert.pem | --outfile ldap02_slapd_cert.pem | ||
</code> | </code> | ||
- | Получаем копию сертифиата CA: | + | Получаем копию сертификата CA: |
<code>cp /etc/ssl/certs/cacert.pem .</code> | <code>cp /etc/ssl/certs/cacert.pem .</code> | ||
Все готово. Теперь переносим каталог ldap02-ssl на сервер Потребителя. Здесь мы использовали scp (данные изменяем соответственно): | Все готово. Теперь переносим каталог ldap02-ssl на сервер Потребителя. Здесь мы использовали scp (данные изменяем соответственно): | ||
Строка 765: | Строка 765: | ||
====Управление пользователями и группами==== | ====Управление пользователями и группами==== | ||
- | Пакет **ldap-utils** поставлется с достаточным количеством утилит для управления каталогами, но необходимость использовать длинные строки с опциями делает их применение обременительным. Пакет **ldapscripts** содержит оберточные сценарии (wrapper scripts) для этих утилит, которые некоторые находят более удобными в использовании. | + | Пакет **ldap-utils** поставляется с достаточным количеством утилит для управления каталогами, но необходимость использовать длинные строки с опциями делает их применение обременительным. Пакет **ldapscripts** содержит оберточные сценарии (wrapper scripts) для этих утилит, которые некоторые находят более удобными в использовании. |
Устанавливаем пакет: | Устанавливаем пакет: | ||
Строка 809: | Строка 809: | ||
Вы теперь можете увидеть атрибут **memberUid** для группы **qa** со значением для **george**. | Вы теперь можете увидеть атрибут **memberUid** для группы **qa** со значением для **george**. | ||
** Удалить пользователя из группы: | ** Удалить пользователя из группы: | ||
- | <code>sudo ldapdeleteuserfromgroup george qa<code> | + | <code>sudo ldapdeleteuserfromgroup george qa</code> |
Атрибут **memberUid** теперь будет удален из группы **qa**. | Атрибут **memberUid** теперь будет удален из группы **qa**. | ||
- | ** Сценарий **ldapmodifyuser** озволяет вам добавлять, удалять или заменять пользовательские атрибуты. Сценарий исползует тот же синтаксис, что и утилита **ldapmodify**. Например: | + | ** Сценарий **ldapmodifyuser** позволяет вам добавлять, удалять или заменять пользовательские атрибуты. Сценарий исползует тот же синтаксис, что и утилита **ldapmodify**. Например: |
<code> | <code> | ||
sudo ldapmodifyuser george | sudo ldapmodifyuser george | ||
Строка 860: | Строка 860: | ||
Есть утилиты из пакета, которые здесь не рассматривались. Вот их полный список: | Есть утилиты из пакета, которые здесь не рассматривались. Вот их полный список: | ||
- | <code> | + | |
- | ldaprenamemachine | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldaprenamemachine.1.html|ldaprenamemachine]] \\ |
- | ldapadduser | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapadduser.1.html|ldapadduser]] \\ |
- | ldapdeleteuserfromgroup | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapdeleteuserfromgroup.1.html|ldapdeleteuserfromgroup]] \\ |
- | ldapfinger | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapfinger.1.html|ldapfinger]] \\ |
- | ldapid | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapid.1.html|ldapid]] \\ |
- | ldapgid | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapgid.1.html|ldapgid]] \\ |
- | ldapmodifyuser | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapmodifyuser.1.html|ldapmodifyuser]] \\ |
- | ldaprenameuser | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldaprenameuser.1.html|ldaprenameuser]] \\ |
- | lsldap | + | [[http://manpages.ubuntu.com/manpages/en/man1/lsldap.1.html|lsldap]] \\ |
- | ldapaddusertogroup | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapaddusertogroup.1.html|ldapaddusertogroup]] \\ |
- | ldapsetpasswd | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapsetpasswd.1.html|ldapsetpasswd]] \\ |
- | ldapinit | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapinit.1.html|ldapinit]] \\ |
- | ldapaddgroup | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapaddgroup.1.html|ldapaddgroup]] \\ |
- | ldapdeletegroup | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapdeletegroup.1.html|ldapdeletegroup]] \\ |
- | ldapmodifygroup | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapmodifygroup.1.html|ldapmodifygroup]] \\ |
- | ldapdeletemachine | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapdeletemachine.1.html|ldapdeletemachine]] \\ |
- | ldaprenamegroup | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldaprenamegroup.1.html|ldaprenamegroup]] \\ |
- | ldapaddmachine | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapaddmachine.1.html|ldapaddmachine]] \\ |
- | ldapmodifymachine | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapmodifymachine.1.html|ldapmodifymachine]] \\ |
- | ldapsetprimarygroup | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapsetprimarygroup.1.html|ldapsetprimarygroup]] \\ |
- | ldapdeleteuser | + | [[http://manpages.ubuntu.com/manpages/en/man1/ldapdeleteuser.1.html|ldapdeleteuser]] |
- | </code> | + | |
====Резервное копирование и восстановление==== | ====Резервное копирование и восстановление==== | ||
- | Now we have ldap running just the way we want, it is time to ensure we can save all of our work and restore it as needed. | + | Теперь у нас ldap работает именно так, как нам хотелось и настало время убедиться, что мы можем сохранить всю нашу работу и восстановить ее при необходимости. |
- | + | ||
- | What we need is a way to backup the ldap database(s), specifically the backend (cn=config) and frontend (dc=example,dc=com). If we are going to backup those databases into, say, /export/backup, we could use slapcat as shown in the following script, called /usr/local/bin/ldapbackup: | + | |
+ | Что нам требуется, это способ сделать резервные копии для базы данных ldap, специфичные для данных баз заднего (cn=config) и переднего плана (dc=example,dc=com). Если мы собираемся сохранить эти базы, скажем, в /export/backup, мы можем использовать **slapcat** как показано в следующем сценарии с именем /usr/local/bin/ldapbackup: | ||
+ | <code> | ||
#!/bin/bash | #!/bin/bash | ||
Строка 899: | Строка 898: | ||
nice ${SLAPCAT} -n 2 > ${BACKUP_PATH}/access.ldif | nice ${SLAPCAT} -n 2 > ${BACKUP_PATH}/access.ldif | ||
chmod 640 ${BACKUP_PATH}/*.ldif | chmod 640 ${BACKUP_PATH}/*.ldif | ||
+ | </code> | ||
- | These files are uncompressed text files containing everything in your ldap databases including the tree layout, usernames, and every password. So, you might want to consider making /export/backup an encrypted partition and even having the script encrypt those files as it creates them. Ideally you should do both, but that depends on your security requirements. | + | <note>Это несжатые текстовые файлы, содержащие все данные из вашей ldap базы, включая расположение дерева, имена пользователей и каждый пароль. Поэтому вы можете решить сделать /export/backup шифрованным разделом и даже иметь сценарии шифрования этих файлов сразу после создания. В идеале вы можете сделать и то и другое, но это зависит от ваших требований безопасности.</note> |
- | Then, it is just a matter of having a cron script to run this program as often as we feel comfortable with. For many, once a day suffices. For others, more often is required. Here is an example of a cron script called /etc/cron.d/ldapbackup that is run every night at 22:45h: | + | Затем имеет смысл создать сценарии cron для запуска этой программы настолько часто, насколько вам будет комфортно. Для большинства достаточно одного раза в день. Для некоторых требуется чаще. Здесь пример сценария cron, названного /etc/cron.d/ldapbackup, который срабатывает каждую ночь в 22:45: |
+ | <code>MAILTO=backup-emails@domain.com | ||
+ | 45 22 * * * root /usr/local/bin/ldapbackup</code> | ||
- | MAILTO=backup-emails@domain.com | + | Теперь файлы созданы и они могут быть скопированы на резервный сервер. |
- | 45 22 * * * root /usr/local/bin/ldapbackup | + | |
- | + | ||
- | Now the files are created, they should be copied to a backup server. | + | |
- | + | ||
- | Assuming we did a fresh reinstall of ldap, the restore process could be something like this: | + | |
+ | Предположим мы сделали переустановку ldap; процесс восстановления будет подобен следующему: | ||
+ | <code> | ||
sudo service slapd stop | sudo service slapd stop | ||
sudo mkdir /var/lib/ldap/accesslog | sudo mkdir /var/lib/ldap/accesslog | ||
Строка 919: | Строка 918: | ||
sudo chown -R openldap:openldap /var/lib/ldap/ | sudo chown -R openldap:openldap /var/lib/ldap/ | ||
sudo service slapd start | sudo service slapd start | ||
+ | </code> | ||
====Ссылки==== | ====Ссылки==== | ||
- | The primary resource is the upstream documentation: www.openldap.org | + | - Первый ресурс это актуальная документация: [[http://www.openldap.org/|www.openldap.org]]. |
- | + | - Существует много страниц руководств пакета slapd. Здесь наиболее важные, особенно в плане рассматриваемых в этом руководстве материалов: | |
- | There are many man pages that come with the slapd package. Here are some important ones, especially considering the material presented in this guide: | + | - [[http://manpages.ubuntu.com/manpages/en/man8/slapd.8.html|slapd]] |
- | + | - [[http://manpages.ubuntu.com/manpages/en/man5/slapd-config.5.html|slapd-config]] | |
- | slapd | + | - [[http://manpages.ubuntu.com/manpages/en/man5/slapd.access.5.html|slapd.access]] |
- | slapd-config | + | - [[http://manpages.ubuntu.com/manpages/en/man5/slapo-syncprov.5.html|slapo-syncprov]] |
- | slapd.access | + | - Другие руководства: |
- | slapo-syncprov | + | - [[http://manpages.ubuntu.com/manpages/en/man8/auth-client-config.8.html|auth-client-config]] |
- | + | - [[http://manpages.ubuntu.com/manpages/en/man8/pam-auth-update.8.html|pam-auth-update]] | |
- | Other man pages: | + | - [[http://www.zytrax.com/books/ldap/|LDAP for Rocket Scientists]] от Zytrax; руководство менее педантичное, но содержащее всесторонне рассмотренный LDAP. |
- | + | - [[https://help.ubuntu.com/community/OpenLDAPServer|OpenLDAP wiki]] страница сообщества Ubuntu имеет коллекцию заметок. | |
- | auth-client-config | + | - [[http://www.oreilly.com/catalog/ldapsa/|LDAP System Administration]] от O'Reilly (текст, 2003) |
- | pam-auth-update | + | - [[http://www.packtpub.com/OpenLDAP-Developers-Server-Open-Source-Linux/book|Mastering OpenLDAP]] от Packt (текст, 2007) |
- | + | ||
- | Zytrax's LDAP for Rocket Scientists; a less pedantic but comprehensive treatment of LDAP | + | |
- | + | ||
- | A Ubuntu community OpenLDAP wiki page has a collection of notes | + | |
- | + | ||
- | O'Reilly's LDAP System Administration (textbook; 2003) | + | |
- | + | ||
- | Packt's Mastering OpenLDAP (textbook; 2007) | + | |
---- | ---- |