dpkg-reconfigure slapd позволит вам перенастроить базу данных LDAP более детально:
falcot.com”.
dpkg-reconfigure slapd сразу после первоначальной установки.
$ldapsearch -x -b dc=falcot,dc=com# extended LDIF # # LDAPv3 # base <dc=falcot,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # falcot.com dn: dc=falcot,dc=com objectClass: top objectClass: dcObject objectClass: organization o: Falcot Corp dc: falcot # admin, falcot.com dn: cn=admin,dc=falcot,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
/etc/passwd, /etc/group, /etc/services, /etc/hosts и так далее), преобразования этих данных и внедрения их в базу данных LDAP.
/etc/migrationtools/migrate_common.ph необходимо редактировать; опции IGNORE_UID_BELOW и IGNORE_GID_BELOW должны быть включены (достаточно раскомментировать их), и DEFAULT_MAIL_DOMAIN/DEFAULT_BASE необходимо обновить.
migrate_all_online.sh как указано далее:
#cd /usr/share/migrationtools#PERL5LIB="${PERL5LIB}:/etc/migrationtools" LDAPADD="/usr/bin/ldapadd -c" ETC_ALIASES=/dev/null ./migrate_all_online.sh
migrate_all_online.sh задаёт несколько вопросов о базе данных LDAP, в которую необходимо перенести данные. Таблица 11.1 суммирует ответы, данные в сценарии использования Falcot.
Таблица 11.1. Ответы на вопросы, заданные скриптом migrate_all_online.sh
| Вопрос | Ответ |
|---|---|
| X.500 контекст именования | dc=falcot,dc=com |
| LDAP сервер имя хоста | localhost |
| Manager DN | cn=admin,dc=falcot,dc=com |
| Привязать учётные данные | пароль администратора |
| Создать DUAConfigProfile | нет |
PERL5LIB. Это связано с отчетом об ошибке Debian № 982666.
/etc/aliases, поскольку стандартная схема, предоставляемая Debian, не включает структуры, которые этот сценарий использует для описания псевдонимов электронной почты. Если мы захотим интегрировать эти данные в каталог, файл /etc/ldap/schema/misc.schema следует добавить в стандартную схему.
-c вариант для команды ldapadd; эта опция требует, чтобы обработка не останавливалась в случае ошибки. Использование этой опции необходимо, поскольку преобразование /etc/services часто генерирует несколько ошибок, которые можно безопасно игнорировать.
/etc/nsswitch.conf впоследствии необходимо изменить, чтобы настроить NSS для использования только что установленного модуля ldap.
Пример 11.23. Файл /etc/nsswitch.conf
#ident $Id: nsswitch.ldap,v 2.4 2003/10/02 02:36:25 lukeh Exp $ # # Пример файла, который можно скопировать в /etc/nsswitch.conf; # он использует соединение LDAP с файлами. # # "hosts:" и "services:" в этом файле используются только если # файл /etc/netconfig имеет "-" для nametoaddr_libs "inet" транспортов. # следующие строки убирают "+" запись в /etc/passwd и /etc/group. passwd: files ldap shadow: files ldap group: files ldap # вначале сверьтесь с DNS, это нужно для резолвинга LDAP хоста. # (Если резолвинг невозможен, возникнет бесконечная рекурсия, потому что # libldap вызывает gethostbyname(). Осторожно!) hosts: dns ldap # LDAP is nominally authoritative for the following maps. services: ldap [NOTFOUND=return] files networks: ldap [NOTFOUND=return] files protocols: ldap [NOTFOUND=return] files rpc: ldap [NOTFOUND=return] files ethers: ldap [NOTFOUND=return] files # пока нет поддержки сетевых масок, загрузочных параметров и открытого ключа. netmasks: files bootparams: files publickey: files automount: files # Я уверен nsswitch.conf справляется непосредственно у sendmail, # поэтому мы мало что можем сделать здесь. Вместо этого, используйте # bbense's LDAP правила sendmail. aliases: files sendmailvars: files # Примечание. В Solaris (пока) нет поддержки сетевых групп. netgroup: ldap [NOTFOUND=return] files
ldap обычно вставляется раньше других, и поэтому он будет запрошен первым. Заметным исключением является hosts служба, поскольку для связи с сервером LDAP требуется сначала обратиться к DNS (для разрешения ldap.falcot.com). Без этого исключения запрос имени хоста будет пытаться обратиться к серверу LDAP; это вызовет разрешение имени для сервера LDAP и так далее в бесконечном цикле.
files не принимаются во внимание), службы можно настроить с помощью следующего синтаксиса:
service: ldap [NOTFOUND=return] files.
/etc/environment и /etc/default/locale), это позволит приложениям выполнять необходимую аутентификацию в базе данных LDAP.
/etc/pam.d/common-auth, /etc/pam.d/common-password и /etc/pam.d/common-account. Этот механизм использует выделенный инструмент pam-auth-update (обеспечиваемый пакетом libpam-runtime). Этот инструмент также может запустить администратор, если он хочет включить или отключить модули PAM.
./easyrsa build-server-full ldap.falcot.com nopass спросит вас об “common name”. Ответом на этот вопрос должно быть полное квалифицированное имя (fully-qualified hostname) LDAP сервера; в нашем случае ldap.falcot.com.
pki/issued/ldap.falcot.com.crt; соответствующий закрытый ключ хранится в pki/private/ldap.falcot.com.key.
openldap:
#adduser openldap ssl-certAdding user `openldap' to group `ssl-cert' ... Adding user openldap to group ssl-cert Done. #mv pki/private/ldap.falcot.com.key /etc/ssl/private/ldap.falcot.com.key#chown root.ssl-cert /etc/ssl/private/ldap.falcot.com.key#chmod 0640 /etc/ssl/private/ldap.falcot.com.key#mv pki/issued/ldap.falcot.com.crt /etc/ssl/certs/ldap.falcot.com.pem#chown root.root /etc/ssl/certs/ldap.falcot.com.pem#chmod 0644 /etc/ssl/certs/ldap.falcot.com.pem
slapd также необходимо указать, что нужно использовать эти ключи для шифрования. Конфигурация сервера LDAP управляется динамически: конфигурацию можно обновлять с помощью обычных операций LDAP на иерархии объектов cn=config и обновлений сервера /etc/ldap/slapd.d в режиме реального времени, чтобы сделать конфигурацию постоянной. ldapmodify таким образом, это правильный инструмент для обновления конфигурации:
Пример 11.24. Конфигурирование slapd для шифрования
#cat >ssl.ldif <<END dn: cn=config changetype: modify add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/private/ldap.falcot.com.key - add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/certs/ldap.falcot.com.pem END#ldapmodify -Y EXTERNAL -H ldapi:/// -f ssl.ldifSASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=config" #systemctl restart slapd.service#ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config -s base | grep TLSSASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 olcTLSCertificateFile: /etc/ssl/certs/ldap.falcot.com.pem olcTLSCertificateKeyFile: /etc/ssl/certs/ldap.falcot.com.key
SLAPD_SERVICES в файле /etc/default/slapd. Мы будем действовать осторожно и вообще отключим незащищённый LDAP.
Пример 11.25. Файл /etc/default/slapd
# Умолчальное местоположение slapd.conf file или slapd.d cn=config directory. # Если пусто, используйте вкомпиленный умолчальный (/etc/ldap/slapd.d с возвратом к # /etc/ldap/slapd.conf). SLAPD_CONF= # Системная учётная запись, под которой будет запущен сервер slapd. # Если пусто, сервер будет работать от имени пользователя root. SLAPD_USER="openldap" # Системная группа, под которой будет запущен сервер slapd. # Если пусто, сервер будет работать от имени первичной группы этого пользователя. SLAPD_GROUP="openldap" # Путь к pid файлу slapd сервера. Если не установлен init.d скрипт # попробовать выяснить из $SLAPD_CONF (/etc/ldap/slapd.d # по умолчанию) SLAPD_PIDFILE= # slapd в норме обслуживает ldap только на всех TCP портах 389. slapd также может # обслуживать запросы на TCP порту 636 (ldaps) и запросы через unix # сокеты. # Пример использования: # SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///" SLAPD_SERVICES="ldaps:/// ldapi:///" # Если SLAPD_NO_START установлен, init скрипт не запустится или не перезапустится # slapd (но стоп всё равно будет работать). Раскомментируйте это если вы # запустили slapd с помощью каких-то других средств или если не хотите чтобы slapd # нормально запускался при загрузке. #SLAPD_NO_START=1 # Если в SLAPD_SENTINEL_FILE установлен путь к файлу, и этот файл существует, # init скрипт не запустит или не перезапустит slapd (но стоп всё равно будет работать). # Используйте это для временного отключения запуска slapd (при выполнении # обслуживания, к примеру, или через систему управления конфигурацией) # когда вы не хотите редактировать конфигурационный файл. SLAPD_SENTINEL_FILE=/etc/ldap/noslapd # Для Kerberos аутентификации (через SASL), slapd умолчально использует system # keytab файл (/etc/krb5.keytab). Для использования другого keytab файла, # раскомментируйте эту строку и измените путь к нему. #export KRB5_KTNAME=/etc/krb5.keytab # Дополнительные опции для передачи в slapd SLAPD_OPTIONS=""
ldaps:// URI.
/usr/local/share/ca-certificates и запустить update-ca-certificates.
#cp pki/ca.crt /usr/local/share/ca-certificates/falcot.crt#update-ca-certificatesUpdating certificates in /etc/ssl/certs... 1 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... Adding debian:falcot.pem done. done.
/etc/ldap/ldap.conf. Это позволит сэкономить немало времени на наборе текста.
Пример 11.26. Файл /etc/ldap/ldap.conf
# # LDAP умолчания # # См. ldap.conf(5) для подробностей # Этот файл должен быть доступен для чтения всем, но не доступен для записи. #BASE dc=example,dc=com #URI ldap://ldap.example.com ldap://ldap-provider.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # TLS сертификаты (необходимо для GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt