среда, 28 января 2009 г.

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

  1. Устанавливаем пакеты:
    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

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

  • Пример первый:
    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 compu
    ter/domain
    sAMAccountName: Administrators

    # search result
    search: 5
    result: 0 Success

    # numResponses: 2
    # numEntries: 1
  • Ещё один, наверное, более интересный, пример:
    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

Комментариев нет:

Отправить комментарий