Dovecot & ntlm & auth_username_format

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
rax
рядовой
Сообщения: 15
Зарегистрирован: 2006-07-31 18:39:33

Dovecot & ntlm & auth_username_format

Непрочитанное сообщение rax » 2011-07-12 14:52:43

Добрый день!
Сталкивался ли кто-нибудь со следующей проблемой, а может и не проблемой:
Имеем FreeBSD 8.2-RELEASE, dovecot-1.2.16, настроена авторизация pam-winbind.
Схема работает, но в авторизации участвует только логин, без указания домена, т.е.:

Код: Выделить всё

imap-login: Info: Login: user=<test>, method=NTLM, rip=192.168.10.11, lip=192.168.10.1
и естественно раскладывает не туда, куда нужно:

Код: Выделить всё

master out: USER   1       test    uid=26  gid=26  home=/mtest//test
вместо

Код: Выделить всё

master out: USER   1       test    uid=26  gid=26  home=/mtest/mymaildomain/test
Указание в dovicot.conf параметра auth_username_format = %u (%Lu) ни на что не влияет.

Видел на форуме предложение:

Код: Выделить всё

auth_default_realm = mymaildomain.com
Вообщем-то, наверно вариант, но если два, три домена, не катит совсем.
Столкнулся с этим, только при NTLM авторизации. Прошу совета.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение opt1k » 2011-07-12 19:59:33

вчера думал о похожей задаче и пришёл к выводу что многодоменная конфигурация в dovecot возможна только с использованием sql. Но особо глубоко не копал - могу ошибаться, на выходных планирую детальнее подойти к вопросу.
Вообще у меня задумка использовать несколько userdb через pam_kerberos и через xsql, но опять же как показало гугление это не возможно для разных доменов.
Кстати, рекомендую подумать над тем что заюзать pam_kerberos вместо pam_winbind, у меня есть тестовая система где именно так настроено.

Аватара пользователя
rax
рядовой
Сообщения: 15
Зарегистрирован: 2006-07-31 18:39:33

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение rax » 2011-07-13 9:49:41

opt1k писал(а):вчера думал о похожей задаче и пришёл к выводу что многодоменная конфигурация в dovecot возможна только с использованием sql. Но особо глубоко не копал - могу ошибаться, на выходных планирую детальнее подойти к вопросу.
Многодоменность можно организовать и с помощью LDAP, во всяком случае, dovecot возвращает юзер+домен при imap-login. Это испробовано.
opt1k писал(а):Вообще у меня задумка использовать несколько userdb через pam_kerberos и через xsql, но опять же как показало гугление это не возможно для разных доменов.
Кстати, рекомендую подумать над тем что заюзать pam_kerberos вместо pam_winbind, у меня есть тестовая система где именно так настроено.
А есть принципиальная разница? Хотелось бы посмотреть на конфиги. Я пробовал, но не получилось.

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение opt1k » 2011-07-13 12:26:54

верно можно.
Я смотрел с другой точки зрения. Допустим есть 2 организации и каждой свой Ldap сервер. В таком случае довекот не сможет обслуживать обоих. Вот если обе организации завязаны на одной ldap базе, то да - возможно. Хотя опять же - могу ошибаться.
Разница в том что не надо использовать винбинд, который потенциально может добавить глюков.
Конфиги покажу, если не забуду. Постараюсь сегодня, если что стучите в личку.

Аватара пользователя
rax
рядовой
Сообщения: 15
Зарегистрирован: 2006-07-31 18:39:33

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение rax » 2011-07-13 13:01:58

Я смотрел с другой точки зрения. Допустим есть 2 организации и каждой свой Ldap сервер. В таком случае довекот не сможет обслуживать обоих.
Сможет, хоть три. Ничто не мешает использовать http://wiki.dovecot.org/Authentication/ ... eDatabases

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение opt1k » 2011-07-13 14:30:13

да, такой вариант возможен. Но вы считаете такую схему нормальной?
Есть 10 доменов, и 10 записей в конфиге довекота. Пользоатель из последний записи пытается авторизоваться. В итоге его логин и пароль будут проверятся в других 9 доменах прежде чем очередь дойдёт до нужного. Лично для меня выглядит "не красиво". Думаю в таком случае лучше несолько демонов пускать...

Аватара пользователя
rax
рядовой
Сообщения: 15
Зарегистрирован: 2006-07-31 18:39:33

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение rax » 2011-07-13 15:06:33

Да, не красиво, но потенциально работает. =)

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение opt1k » 2011-07-13 16:41:51

kerberos:
exim:

Код: Выделить всё

plain_pam:
        driver                  = plaintext
        public_name             = PLAIN
        server_prompts          = :
        server_condition        = ${if pam{$auth2:${sg{$auth3}{:}{::}}}}
        server_set_id           = $auth2

login_pam:
        driver                  = plaintext
        public_name             = LOGIN
        server_prompts          = Username:: : Password::
        server_condition        = ${if pam{$auth1:${sg{$auth2}{:}{::}}}}
        server_set_id           = $auth1
dovecot:

Код: Выделить всё

passdb {
  driver = pam
}
/etc/pam.d/exim:

Код: Выделить всё

auth    required        pam_nologin.so
auth    required        pam_krb5.so no_user_check
account required        pam_permit.so
/etc/pam.d/dovecot:

Код: Выделить всё

auth    required        pam_nologin.so
auth    required        pam_krb5.so no_user_check
account required        pam_permit.so
Как то так. Сразу скажу - я в pam мало что понимаю, поэтому не уверен на счёт безопасности. Но проверку делал - с правильным паролем пускает, с не правильным нет.
Ещё есть вариант аутентификации в АД через ldap, могу и эти кофиги показать.

Аватара пользователя
rax
рядовой
Сообщения: 15
Зарегистрирован: 2006-07-31 18:39:33

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение rax » 2011-07-14 8:37:51

Спасибо за пример, а можно ещё настройки кербероса глянуть?
АД через ldap у меня реализовано было, но нужен был вариант с прозрачной аутентификацией в АД.

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Dovecot & ntlm & auth_username_format

Непрочитанное сообщение opt1k » 2011-07-16 21:47:20

вобщем-то всё "стандартно":

Код: Выделить всё

[libdefaults]
      default_realm = DOMAIN.MY
      dns_lookup_kdc = no
      dns_lookup_realm = no
      default_keytab_name = /etc/krb5.keytab
; for Windows 2003
;      default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
;      default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
;      permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; for Windows 2008 with AES
      default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
      default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
      permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

; for MIT/Heimdal kdc no need to restrict encryption type
[realms]
      DOMAIN.MY = {
              kdc = tcp/dc.domain.my
              admin_server = tcp/dc.domain.my
      }
[domain_realm]
      .domain.my = DOMAIN.MY
      .domain.my = DOMAIN.MY
      domain.my = DOMAIN.MY
;[logging]
;  kdc = FILE:/var/log/kdc.log
;  admin_server = FILE:/var/log/kadmin.log
;  default = FILE:/var/log/krb5lib.log
Но, дабы было понимание - мой вариант не несёт прозрачной авторизации. Если надо прозрачно, то смотрите в сторону GSSAPI, сам же я не пробовал.