OpenLDAP сервер Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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 wantit 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 layoutusernamesand every passwordSo, you might want to consider making ​/​export/​backup ​an encrypted partition and even having the script encrypt those files as it creates themIdeally you should do bothbut 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 manyonce a day sufficesFor others, more often is requiredHere 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 packageHere are some important onesespecially 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)+
  
 ---- ----