Глава 4.1.3 Установка OpenLDAP в Windows

  1. 4.1.1 Установка в FreeBSD

  2. 4.1.2 Установка в Fedora Core

  3. 4.1.3 Установка в Windows

4.1.3 Установка в Windows

Если Вы хотите развернуть LDAPv3-совместимый Open Source сервер в Windows (XP, Windows 7, 10 или даже, по недоразумению, в Windows Vista), у Вас есть три варианта:

  1. OpenLDAP под cygwin.

    Разработчики установщика cygwin проделали большую работу, чтобы установка была хоть и многословным, но очень простым процессом (полная установка может занять более 30 минут). И спрятали они OpenLDAP так, чтобы никто не догадался (он в категории Libs установщика, но мы Вам этого не говорили). Главный недостаток — то, что версия OpenLDAP обновляется нерегулярно (хотя, по совести говоря, пакеты обновляются довольно регулярно). Если Вы собираетесь заниматься разработкой, либо запускать другие *nix-пакеты под Windows — выбор очевиден.

  2. ApacheDS. Работает под Java и включает прекрасный LDAP-клиент/систему разработки, называемую Apache Directory Studio. Этот превосходный инструмент можно использовать в качестве клиента к любой системе, в том числе OpenLDAP. Возможно, процесс установки покажется Вам немного сложным, поскольку система встроена в среду разработки Eclipse (которая любит всё всегда усложнять), но усилия стоят того.

  3. Если же Вы хотите простую инсталляцию текущей версии OpenLDAP на Windows в пару кликов, то нет ничего лучше сборки OpenLDAP для Windows. Она периодически обновляется (по состоянию на ноябрь 2016 года версия OpenLDAP 2.4.44). Она опционально устанавливает различные механизмы манипуляции данными, в том числе базы данных (bdb и hdb OpenLDAP), OpenSSL (обеспечивает поддержку TLS в OpenLDAP) и даже Cyrus SASL (обеспечивает поддержку Kerberos). OpenLDAP выполняется не как задача Windows, а как dos-приложение.

Установка OpenLDAP для Windows

При последней установке данного программного обеспечения (ноябрь 2016 года) стало ясно, что процесс инсталляции с момента нашей предыдущей установки (OpenLDAP 2.4.35) поменялся радикально. Теперь доступны 32-х и 64-битные версии, а процесс инсталляции предоставляет много (слишком много?) опций. Получить программное обеспечение можно здесь, а инструкции по установке находятся здесь. Мы установили 64-битную версию на Windows 10 Home Edition. В нашем случае процесс инсталляции не прошёл гладко (64-битная версия, Home Edition, сами понимаете), но после небольшой доработки напильником за 20 минут мы получили вполне работоспособный OpenLDAP. Не так уж и плохо. Немного сбивало с толку то, что имена директорий/папок сильно отличаются от тех, которые мы привыкли видеть при инсталляции в Lunux/BSD.

Мы оставили наши записи об установке OpenLDAP 2.4.35 в назидание потомкам (не поддавайтесь искушению использовать их для чего-либо, кроме версии 2.4.35). Мы добавили записи о текущей инсталляции (ноябрь 2016 года, OpenLDAP 2.4.44), которые могут оказаться для Вас полезными (или бесполезными).

Примечания:

  1. Возможно, вследствие ошибок при инсталляции, мы получили полностью установленный, но не запущенный OpenLDAP. В разных местах мы встречали намёки на то, что OpenLDAP может выполняться как служба Windows, но, как всегда, мы не стали читать документацию целиком. Скрипт запуска: C:\OpenLDAP\run\run.cmd (C:\OpenLDAP — корневая директория при инсталляции по умолчанию). Для удобства использования мы сделали себе ярлык на него на рабочем столе.

  2. При инсталляции по умолчанию slapd при запуске использует slapd.conf (расположен в корневой директории (по умолчанию это C:\OpenLDAP), а не в привычной /etc/openldap как в Linux/BSD).

  3. Конвертация в slapd.d тривиальна. После внесения необходимых изменений в файл slapd.conf, просто создайте новую директорию/папку с названием slapd.d. Откройте командную строку, перейдите в C:\OpenLDAP (или туда, куда Вы произвели установку) и выполните:

    slaptest -f slapd.conf -F slapd.d
    

    Откройте C:\OpenLDAP\run\run.cmd в любимом редакторе:

    cd "%~dp0.."
    slapd -d 8 -h "ldaps:/// ldap:///" -f slapd.conf
    
    # удалите аргумент -f чтобы получилось:
    
    cd "%~dp0.."
    slapd -d 8 -h "ldaps:/// ldap:///"
    
    # сохраните файл
    

    Запустите сервер, выполнив C:\OpenLDAP\run\run.cmd.

  4. По умолчанию в скрипте запуска (смотрите предыдущее примечание) используется аргумент -d -1, генерирующий огромное количество отладочной информации и серьёзно снижающий производительность сервера. На первоначальном этапе это полезно, так как Вы получаете максимум диагностической информации. После того, как Вам удастся добиться от сервера стабильной работы, можно либо совсем удалить -d -1 в файле run.cmd, либо задать значение поменьше.

    Примечание: Значение аргумента -d, используемое при старте OpenLDAP (slapd), благоразумно отменяет любые попытки динамически изменять значение атрибута oldLogLevel (при использовании OLC, cn=config), либо значения директивы loglevel в slapd.conf. Чтобы эти настройки имели эффект, удалите аргумент -d из строки запуска slapd.

Исторические заметки по установке OpenLDAP 2.4.35 для Windows

Далее следуют некоторые заметки об установке и использовании OpenLDAP (2.4.35) для Windows. При прочтении документации к пакету складывается впечатление, что его возможности значительно больше, чем предоставление основных сервисов OpenLDAP, в частности, там обсуждается использование Microsoft-SQL. Мы проигнорировали все эти новомодные штучки (поскольку не являемся пользователями MS-SQL) и всё равно получили отличную, высоко функциональную инсталляцию OpenLDAP. Порядок действий:

  1. Скачайте программное обеспечение отсюда в подходящую директорию файловой системы.

  2. Распакуйте архив и дважды щёлкните для запуска OpenLDAP-2.y.xx-x86.exe (y — старший номер версии, а xx — младший номер версии). Следуйте запросам мастера установки. Установка может быть запущена с правами обычного пользователя (административных привилегий не требуется). Далее показаны экраны с немного путанным содержимым, для которых приводятся дополнительные разъяснения.

  3. На этом экране Вас просят ввести Ваши данные, но ввод данных не позволяется. Попробуй разберись! Проигнорируйте его и нажмите "Next". Ничего страшного не случится.

    details screen

  4. На этом экране показана директория по умолчанию, куда будет произведена установка. Измените её в соответствии с Вашими потребностями или просто нажмите "Next".

    details screen

  5. После установки файлов этот экран показывает некоторую общую информацию о конфигурации сервера. Большая часть её пригодна лишь в том случае, если Вы собираетесь использовать конфигурацию по умолчанию.

    details screen

    На следующем за этим экране запрашивается, хотите ли Вы прочитать документ readme.pdf. Наш совет — не стоит. Снимите галочку и читайте дальше эту инструкцию.

  6. Когда последний экран мастера установки закроется и станет историей, у Вас будет следующая конфигурация (подразумевается, что Вы произвели инсталляцию в директорию по умолчанию C:\OpenLDAP, либо, если Вы один из тех, кого раздражает всё, что по умолчанию, скорректируйте значения на свои):

    1. Система настроена на использование файла slapd.conf в директории \etc\openldap (директория slapd.d отсутствует — смотрите заметки по olc/cn=config здесь). Этот slapd.conf полностью работоспособен, в него стоит заглянуть хотя бы потому, что в нём содержатся относительные пути, указывающие на поддиректории и файлы внутри установочной директории. Обслуживание осуществляется на стандартных номерах портов LDAP (389 и 636 для ldaps). Если Вы собираетесь использовать свой собственный файл slapd.conf, обратите внимание на стандартные расположения, на которые указывают директивы pidfile, argsfile (по умолчанию \var\run) и logfile (по умолчанию \var\log) стандартного файла и для упрощения процесса подкорректируйте свои значения, аналогично проверьте расположение файлов наборов схемы данных (\etc\openldap\schema) и директивы directory (\var\db\openldap-data) в Вашем разделе (разделах) database (используйте указанную и при необходимости создайте новые директории).

    2. Один из самых запутанных аспектов этой инсталляции OpenLDAP — собраны ли модули статически или динамически. В OpenLDAP для Windows они собраны статически (правильный выбор), это означает, что в директивах loadmodule или loadpath нет необходимости.

      В назидание потомкам мы приводим файл slapd.conf по умолчанию пакета OpenLDAP для Windows:

      #
      # See slapd.conf(5) for details on configuration options.
      # This file should NOT be world readable.
      #
      include		/schema/core.schema
      
      # Define global ACLs to disable default read access.
      
      # Do not enable referrals until AFTER you have a working directory
      # service AND an understanding of referrals.
      #referral	ldap://root.openldap.org
      
      pidfile		/run/slapd.pid
      argsfile	/run/slapd.args
      
      # Load dynamic backend modules:
      # modulepath	
      # moduleload	back_bdb.la
      # moduleload	back_hdb.la
      # moduleload	back_ldap.la
      
      # Sample security restrictions
      #	Require integrity protection (prevent hijacking)
      #	Require 112-bit (3DES or better) encryption for updates
      #	Require 63-bit encryption for simple bind
      # security ssf=1 update_ssf=112 simple_bind=64
      
      # Sample access control policy:
      #	Root DSE: allow anyone to read it
      #	Subschema (sub)entry DSE: allow anyone to read it
      #	Other DSEs:
      #		Allow self write access
      #		Allow authenticated users read access
      #		Allow anonymous users to authenticate
      #	Directives needed to implement policy:
      # access to dn.base="" by * read
      # access to dn.base="cn=Subschema" by * read
      # access to *
      #	by self write
      #	by users read
      #	by anonymous auth
      #
      # if no access controls are present, the default policy
      # allows anyone and everyone to read anything but restricts
      # updates to rootdn.  (e.g., "access to * by * read")
      #
      # rootdn can always read and write EVERYTHING!
      
      #######################################################################
      # BDB database definitions
      #######################################################################
      
      database	bdb
      suffix		"dc=my-domain,dc=com"
      rootdn		"cn=Manager,dc=my-domain,dc=com"
      # Cleartext passwords, especially for the rootdn, should
      # be avoid.  See slappasswd(8) and slapd.conf(5) for details.
      # Use of strong authentication encouraged.
      rootpw		secret
      # The database directory MUST exist prior to running slapd AND 
      # should only be accessible by the slapd and slap tools.
      # Mode 700 recommended.
      directory	/openldap-data
      # Indices to maintain
      index	objectClass	eq
      
      
    3. Для запуска сервера выполните "Пуск" (Start) -> "Все программы" (All Programs) -> OpenLDAP -> Start LDAP Server:

      Запуск OpenLDAP

      Примечание: OpenLDAP для Windows использует инсталляционный файл типа .exe, а не .msi, и потому до появления значков в меню "Все программы" (All Programs) может пройти довольно много времени (до 30 минут).

      Если Вы нетерпеливы, перейдите в директорию libexec и дважды щёлкните на StartLDAP.cmd. Это приведёт к немедленному запуску LDAP-сервера.

      При старте сервера откроется окно сессии dos, куда будет выведена тонна информации, после чего окно останется открытым (Вы должны явно завершить OpenLDAP, нажав CTL-C в этом окне dos). Если что-то пошло не так, окно немедленно закроется. Если Вы используете директиву logfile (поставляемый по умолчанию файл slapd.conf использует \var\log\openldap.log), то ищите ошибки в файле журнала. Если Вы не используете директиву logfile, значит Вам не повезло.

      Большой объём информации, выводимой в окне dos, может серьёзно замедлить работу сервера. Чтобы его уменьшить или ликвидировать, просто откройте (с помощью notepad) файл \libexec\StartLDAP.cmd и из последней строки этого файла либо вообще удалите аргумент -d -1 (для отмены вывода, за исключением катастрофических ошибок), либо измените -1 на какое-либо другое значение (подробнее здесь). Например, если значение равно 8, будет выводиться только информация о соединениях. Вот этот файл во всей красе, чтобы Вы могли увидеть, что представляет из себя последняя строка:

      @echo off
      
      verify on
      
      Rem SET HOME=
      
      SET ODBCINI=..\etc\odbc.ini
      
      SET ODBCSYSINI=..\etc
      
      SET FREETDS=..\etc\freeTDS.conf
      
      SET TDSVER=8.0
      
      SET TDSDUMP=..\var\log\freetds.log
      
      SET RANDFILE=..\bin\rfile.rnd
      
      SET LDAPCONF=..\etc\openldap\ldap.conf
      
      SET LDAPRC=..\bin\ldaprc
      
      
      Rem Adjust accordingly
      
      Rem SET KRB5_CONFIG=C:\Heimdal\etc\krb5-pkinit.conf
      
      Rem SET KRB5_KTNAME=C:\Heimdal\etc\krb5.keytab
      
      Rem SET KRB5CCNAME=FILE:C:/Heimdal/tmp/krb5cc_500
      
      SET FQDN=localhost
      
      slapd.exe -d -1 -h "ldap://%FQDN%/ ldaps://%FQDN%/" -f ..\etc\openldap\slapd.conf
      
      
    4. Стандартные ldap-утилиты OpenLDAP (ldapsearch и другие) располагаются в директории bin. В OpenLDAP для Windows есть удобное окно командной строки, предварительно сконфигурированное на эту директорию:

      Командная строка OpenLDAP

      Вы также можете открыть любое окно с сессей dos и перейти в c:\openldap\bin, либо поместите этот путь в свою переменную path ("Пуск" (Start) -> "Панель управления" (Control panel) -> "Система" (System) -> в открывшемся окне "Свойства системы" (Advanced system settings) выберите вкладку "Дополнительно" (Advanced) -> нажмите кнопку "Переменные среды" (Environmental settings) -> в открывшемся окне "Переменные среды" в нижней части найдите переменную path и добавьте ;c:\openldap\bin). Откройте любое окно с сессией dos ("Пуск" (Start)->"Выполнить" (Run)->cmd) и можете запускать утилиты ldap. Примечание: slap-утилиты (slapadd и другие) находятся в директории sbin, возможно, Вы захотите добавить в переменную path также и путь ;c\openldap\sbin.

  7. Как мы уже говорили, для остановки сервера OpenLDAP перейти в окно с сессией dos, в котором он выполняется, и нажать CTRL-C. Сервер остановится, и Вам будет выведен запрос "Terminate Batch Job?"; если в ответ на него вы нажмёте "y", окно закроется.

    Если эта процедура не была соблюдена (например, Вы завершили работу компьютера, не остановив LDAP-сервер), сервер, вероятнее всего, откажется стартовать при следующем запуске. В этом случае перейдите в директорию c:\openldap\var\run и удалите все файлы в этой директории (slapd.args и slapd.pid). Теперь сервер должен запуститься. Если нет — обратитесь к файлу журнала (по умолчанию в \var\log). Ведь Вы же установили директиву logfile, правда?



Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.

Нашли ошибку в переводе? Сообщите переводчикам!

Copyright © 1994-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 18 ноября 2016 г.
Переведено участниками проекта Pro-LDAP.ru в 2012-2017 г.