Страница 1 из 1
Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-12 14:52:43
rax
Добрый день!
Сталкивался ли кто-нибудь со следующей проблемой, а может и не проблемой:
Имеем 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) ни на что не влияет.
Видел на форуме предложение:
Вообщем-то, наверно вариант, но если два, три домена, не катит совсем.
Столкнулся с этим, только при NTLM авторизации. Прошу совета.
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-12 19:59:33
opt1k
вчера думал о похожей задаче и пришёл к выводу что многодоменная конфигурация в dovecot возможна только с использованием sql. Но особо глубоко не копал - могу ошибаться, на выходных планирую детальнее подойти к вопросу.
Вообще у меня задумка использовать несколько userdb через pam_kerberos и через xsql, но опять же как показало гугление это не возможно для разных доменов.
Кстати, рекомендую подумать над тем что заюзать pam_kerberos вместо pam_winbind, у меня есть тестовая система где именно так настроено.
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-13 9:49:41
rax
opt1k писал(а):вчера думал о похожей задаче и пришёл к выводу что многодоменная конфигурация в dovecot возможна только с использованием sql. Но особо глубоко не копал - могу ошибаться, на выходных планирую детальнее подойти к вопросу.
Многодоменность можно организовать и с помощью LDAP, во всяком случае, dovecot возвращает юзер+домен при imap-login. Это испробовано.
opt1k писал(а):Вообще у меня задумка использовать несколько userdb через pam_kerberos и через xsql, но опять же как показало гугление это не возможно для разных доменов.
Кстати, рекомендую подумать над тем что заюзать pam_kerberos вместо pam_winbind, у меня есть тестовая система где именно так настроено.
А есть принципиальная разница? Хотелось бы посмотреть на конфиги. Я пробовал, но не получилось.
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-13 12:26:54
opt1k
верно можно.
Я смотрел с другой точки зрения. Допустим есть 2 организации и каждой свой Ldap сервер. В таком случае довекот не сможет обслуживать обоих. Вот если обе организации завязаны на одной ldap базе, то да - возможно. Хотя опять же - могу ошибаться.
Разница в том что не надо использовать винбинд, который потенциально может добавить глюков.
Конфиги покажу, если не забуду. Постараюсь сегодня, если что стучите в личку.
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-13 13:01:58
rax
Я смотрел с другой точки зрения. Допустим есть 2 организации и каждой свой Ldap сервер. В таком случае довекот не сможет обслуживать обоих.
Сможет, хоть три. Ничто не мешает использовать
http://wiki.dovecot.org/Authentication/ ... eDatabases
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-13 14:30:13
opt1k
да, такой вариант возможен. Но вы считаете такую схему нормальной?
Есть 10 доменов, и 10 записей в конфиге довекота. Пользоатель из последний записи пытается авторизоваться. В итоге его логин и пароль будут проверятся в других 9 доменах прежде чем очередь дойдёт до нужного. Лично для меня выглядит "не красиво". Думаю в таком случае лучше несолько демонов пускать...
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-13 15:06:33
rax
Да, не красиво, но потенциально работает.

Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-13 16:41:51
opt1k
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:
/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, могу и эти кофиги показать.
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-14 8:37:51
rax
Спасибо за пример, а можно ещё настройки кербероса глянуть?
АД через ldap у меня реализовано было, но нужен был вариант с прозрачной аутентификацией в АД.
Re: Dovecot & ntlm & auth_username_format
Добавлено: 2011-07-16 21:47:20
opt1k
вобщем-то всё "стандартно":
Код: Выделить всё
[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, сам же я не пробовал.