Документ создан: 11.02.2010

Использование LDAP от MS AD

28.01.2009 г.

  1. Устанавливаем пакеты:
    sudo aptitude -r install ldap-utils libsasl2-modules-ldap libsasl2-modules-gssapi-mit krb5-user krb5-config
  2. Редактируем файл /etc/krb5.conf
    [logging]
      default = FILE:/var/log/kerberos/krb5libs.log
      kdc = FILE:/var/log/kerberos/krb5kdc.log
      admin_server = FILE:/var/log/kerberos/kadmind.log
    [libdefaults]
      default_realm = DOMAIN.RU
      dns_lookup_realm = false
      dns_lookup_kdc = false
    [realms]
      DOMAIN.RU = {
        kdc = server.domain.ru:88
        admin_server = server.domain.ru:749
        default_domain = domain.ru
      }
    [domain_realm]
      .domain.ru = DOMAIN.RU
      domain.ru = DOMAIN.RU
  3. Проверяем
    ldapwhoami -h  server.domain.ru

    скорее всего, Вы увидите что-то в виде:

    SASL/GSSAPI authentication started
    ldap_sasl_interactive_bind_s: Local error (-2)

    Это от того, что Вы не аутентифицировались на сервере AD. Проверить это можно так:

    klist
    klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)
  4. Исправить ситуацию можно так:
    kinit aduser

    Где aduser - реальная учётная запись в домене AD.

  5. Снова проверяем
    ldapwhoami -h  server.domain.ru

    на этот раз Вы увидите что-то в виде:

    SASL/GSSAPI authentication started
    SASL username: aduser@domain.ru
    SASL SSF: 56
    SASL data security layer installed.
    ldap_parse_result: Decoding error (-4)
    Result: Decoding error (-4)

    А klist покажет, примерно, следующее:

    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: aduser@domain.ru
    Valid starting     Expires            Service principal
    01/20/09 15:57:55  01/20/09 23:56:58  krbtgt/DOMAIN.RU@DOMAIN.RU
            renew until 01/20/09 23:57:55
    01/20/09 15:57:05  01/20/09 23:56:58  ldap/server.DOMAIN.RU@DOMAIN.RU
            renew until 01/20/09 23:57:05
    Kerberos 4 ticket cache: /tmp/tkt1000
    klist: You have no tickets cached

Дальше - дело Вашей фантазии и необходимости. Но для примера:

  1. Пример первый:
    ldapsearch -h server.domain.ru -b "cn=Builtin,dc=domain,dc=ru" -s sub "CN=Administrators" sAMAccountName description

    получаем что-то в виде

    SASL/GSSAPI authentication started
    SASL username: aduser@DOMAIN.RU
    SASL SSF: 56
    SASL data security layer installed.
    # extended LDIF
    #
    # LDAPv3
    # base  with scope subtree
    # filter: CN=Administrators
    # requesting: sAMAccountName description
    #
    # Administrators, Builtin, mdi.ru
    dn: CN=Administrators,CN=Builtin,DC=domain,DC=ru
    description: Administrators have complete and unrestricted access to the computer/domain
    sAMAccountName: Administrators
    # search result
    search: 5
    result: 0 Success
    # numResponses: 2
    # numEntries: 1
  2. Ещё один, наверное, более интересный, пример:
    ldapsearch -h server.domain.ru -b "cn=Users,dc=domain,dc=ru" -s sub "CN=Domain Admins" member

    получаем, примерно, следующее:

    ...
    member:: Q0490J/Rg9C/0LrQuNC9INCY0LLQsNC9INCS0LDRgdC40LvRjNC10LLQuNGHLE9VPdCe0YLQtNC1
    0LssT1U90JTQtdC/0LDRgNGC0LDQvNC10L3RgixPVT3QpNC40YDQvNCwLERDPWRvbWFpbixEQz1y
    dQo=
    ...

    "Что за белиберда?" - спросите Вы. Ан нет, не белиберда, а base64. Если всю строчку (без "member:: ")пропустить через base64 -d, мы увидим что именно в ней содержится:

    echo Q0490J/Rg9C/0LrQuNC9INCY0LLQsNC9INCS0LDRgdC40LvRjNC10LLQuNGHLE9VPdCe0YLQtNC1\
    0LssT1U90JTQtdC/0LDRgNGC0LDQvNC10L3RgixPVT3QpNC40YDQvNCwLERDPWRvbWFpbixEQz1y\
    dQo= | base64 -d

    получаем:

    CN=Пупкин Иван Васильевич,OU=Отдел,OU=Департамент,OU=Фирма,DC=domain,DC=ru

Вот, в общем-то, и всё, что у меня есть сообщить. Дальше сами. :)

 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate