Страница 1 из 2
Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-08 10:41:27
Andy2k
Настроил связку exim+dovecot по статье уважаемого Лиссяры. Все отлично работает, но теперь хочется разрешить пользователям НЕ ИЗ ЛОКАЛКИ отправлять почту адресатам вне нашего домена. Естественно, с предварительной авторизацией. Может кто-нибудь подсказать как это сделать средствами Exim?
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-08 13:27:07
Alex Keda
в нём ессть секция аутентификаторов...
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-08 14:06:55
Andy2k
lissyara писал(а):в нём ессть секция аутентификаторов...
Спасибо, это я нашел. Я не смог понять, что написать в параметре server_condition. То есть я примерно понимаю, что здесь и должна происходить сама аутентификация, но каким образом ее осуществить - непонтно

. Буду очень благодарен за помощь.
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-08 14:24:04
Morty
так там и так с аутентификацие на СМТП
.... по крайней мере у меня если юзеры в своих программах не ставят Авторизация на СМТП такая же как на поп3
то они отправить ничего не могут - попадают на задержку в 40 сек и не дожидаясь сами рубят соединение.
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-08 14:27:00
Andy2k
Morty писал(а):так там и так с аутентификацие на СМТП
.... по крайней мере у меня если юзеры в своих программах не ставят Авторизация на СМТП такая же как на поп3
то они отправить ничего не могут - попадают на задержку в 40 сек и не дожидаясь сами рубят соединение.
Видимо не совсем так. Если у меня пользователь ставит "Авторизация на SMTP", почта не уходит, а в логе вот такое сообщение:
Код: Выделить всё
auth_login authenticator failed for (notebook) [XX.XX.111.8] I=[XX.XX.120.151]:25: 535 Incorrect authentication data
В комментариях к конфигу Exim написано
These authenticators are not complete: you need to change the server_condition settings to specify how passwords are verified.
Соответственно дефолтное значение
server_condition = Authentication is not yet configured
А вот что там прописать - не знаю

Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-08 15:42:19
Morty
я может ошибаюсь но мне кажеться
это о том как должны авторизироваться БАТ, Оутлук и прочии(эти секции в статье тоже описаны)
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-08 21:11:34
Alex Keda
видима - это не мой конфиг.
в моём дана секция аутентифкаторов
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-09 8:12:18
Andy2k
Ё-моё.....
Ну точно, сейчас поглядел еще раз. Блин, где мои глаза раньше были?
Лиссяра, скажи, а если у меня пароли пользователей в MySQL лежат в виде MD5 хеша, то твои настройки аутентификаторов plain и login будут работать?
В статье, насколько я понял, описаны настройки, при которых пароль хранится в открытом виде. (
)
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-09 8:21:21
Alex Keda
думаю что нет - но если попилить - можно
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-09 8:26:00
Andy2k
Такой
Код: Выделить всё
dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
способ "пиления" может сработать?
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-09 11:31:29
Andy2k
Фух, вобщем разобрался, заработало
Теперь по порядку:
1. Настраивая связку exim+dovecot я, начитавшись комментариев к статье Лиссяры, настроил таки дефолтную схему для паролей в dovecot так
Код: Выделить всё
# Дефолтовая схема для пароля.
#
# Список поддерживаемых тем: http://wiki.dovecot.org/Authentication
#
default_pass_scheme = MD5-CRYPT
таким образом пароли пользователей хранятся в базе в зашифрованном виде (так секьюрнее

)
2. Разумеется, при таком способе хранения паролей аутентификаторы exima согласно настройкам в статье не работают
3. Вкурив документацию от exim обнаружил аутентификатор dovecot (
http://www.exim.org/exim-html-current/d ... /ch37.html)
Аутентификация осуществляется средствами dovecot, а он у меня с этим прекрасно справляется.
4. Допилил конфиг dovecot до такого состояния:
Код: Выделить всё
auth default {
# Space separated list of wanted authentication mechanisms:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
# NOTE: See also disable_plaintext_auth setting.
mechanisms = plain login cram-md5 digest-md5
# Добавлено для работы deliver от dovecot
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = mailnull
#group = mail
}
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
path = /var/run/dovecot/auth-client
mode = 0660
user = mailnull
}
}
}
Перезапускаем dovecot, убеждаемся что появился /var/run/dovecot/auth-client
5. Идем править конфиг exim. Должен выглядеть так:
Код: Выделить всё
auth_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
Перезапускаем exim - вуаля - аутентификация работает, почта отправляется.
Лиссяра, можешь дополнить статью для такого метода аутентификации

Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-09 14:01:56
Alex Keda
да надо дока обновлять....
по exim...
или 4.70 дождусь. тогда уже...
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-11 9:07:44
dodger
Уважаемые!
Если есть возможно не юзать SMTP авторизацию, пожалуйста, не делайте этого!
Сейчас очень распостранены атаки brute-force на mta, поддерживающие smtp auth (что легко вычисляется по ответу на EHLO). Злоумышленник просто перебирает по словарю распостраненные логины/пароли, а затем начинает спаммить через них. И админ начинает чесать репу в попытке найти ответ на вопрос "Че это вдруг все работало целый год без проблем, и тут вдруг bl.spamcop.net нас в свой список?". Также существуют компьютерные животные (вирусы) которые тырят эти самые сохраненные пароли с виндовых машин.
Если все же без smtp auth никак не обойтись:
1. Делайте жесткое ограничение на устойчивость пароля к подбору (я молчу про пустые пароли!).
2. Ограничивайте зоны по IP, из которых можно релеить по SMTP AUTH.
3. На худой конец, прикрутите какой нибудь монитор к журналу почтаря, чтобы отслеживать количество писем, отсылаемых за некоторый промежуток времени через один логин. Зашкаливание может говорить о проблеме.
Вообще конечно самое лучшее средство - не пользоваться вообще. А то получается как с презервативом: девушке доверяешь, трахаешь без резины, а потом че то капает.... Оказывается сам виноват. Надо было любить ее понастоящему (так чтобы на сторону ей не хотелось).
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-10-11 9:30:11
Alex Keda

ез авторизации нкак, а советы по её закрытию - в общем верные.
тока ещё я видел как на сервере брутфорсили в несколько потоков одновременно - smtp; pop3; ssh; ftp...
и нихрена не сделаешь - IP меняются.
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 13:33:48
freeman
Andy2k писал(а):Фух, вобщем разобрался, заработало
Теперь по порядку:
.....покоцано ...
Перезапускаем exim - вуаля - аутентификация работает, почта отправляется.
Лиссяра, можешь дополнить статью для такого метода аутентификации

Проделал всё как тут написано -
Пытаюсь The BAt принять-отправить почту методом - MD5 CRAM-HMAC Запрос/подтверждение (RFC-2095) - другого там нет MD5 =(
и получаю ...
08.11.2007, 12:14:58: FETCH - Получение новой почты
08.11.2007, 12:14:58: FETCH - Соединение с POP3 сервером прошло удачно
!08.11.2007, 12:14:59: FETCH - Сервер сообщает об ошибке: -ERR Authentication failed.
лог Exim -
Код: Выделить всё
Nov 8 12:22:47 Mserver dovecot: auth(default): client in: AUTH 1 CRAM-MD5 service=POP3 lip=IP_Exim rip=IP_client resp=
Nov 8 12:22:47 Mserver dovecot: auth(default): client out: CONT 1 PDc5MDQwNjU5MDYzNTA4MzQuMTE5NDUxNzM2N0BNc2VydmVyLnhva2JhLmtoYXJrb3YuY29tPg==
Nov 8 12:22:47 Mserver dovecot: auth(default): client in: CONT 1 MjJAeG9rYmEua2hhcmtvdi5jb20gOWJhOWI0ZTdhZDI5MDVhN2ZkMTI1MjdlZjUwOTUyYjA=
Nov 8 12:22:47 Mserver dovecot: auth-worker(default): sql(22@my.domain,IP_client): query: SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = '22@my.domain' AND `active`='1'
Nov 8 12:22:47 Mserver dovecot: auth-worker(default): password(22@my.domain,IP_client): Requested CRAM-MD5 scheme, but we have only MD5-CRYPT
Nov 8 12:22:48 Mserver dovecot: auth(default): new auth connection: pid=21070
Nov 8 12:22:49 Mserver dovecot: auth(default): client out: FAIL 1 user=22@my.domain
Nov 8 12:22:49 Mserver dovecot: pop3-login: Disconnected: user=<22@my.domain>, method=CRAM-MD5, rip=IP_client, lip=IP_Exim
Настойки Dovecot
Код: Выделить всё
auth default {
# Список требуемых механизмов аутентификации, разделённый пробелами
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
# NOTE: See also disable_plaintext_auth setting.
mechanisms = plain login cram-md5 digest-md5 ntlm
# Добавлено для работы deliver от dovecot
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = mailnull
#group = mail
}
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
path = /var/run/dovecot/auth-client
mode = 0660
user = mailnull
}
}
Postfixadmin
Код: Выделить всё
// Encrypt
// In what way do you want the passwords to be crypted?
// md5crypt = internal postfix admin md5
// system = whatever you have set as your PHP system default
// cleartext = clear text passwords (ouch!)
$CONF['encrypt'] = 'md5crypt';
- все пароли в виде MD5 хеша
и Exim
Код: Выделить всё
begin authenticators
auth_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_ntlm:
driver = dovecot
public_name = NTLM
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
В общем запутался я вообще - никак у меня кроме plain text не получается аутентифицироватся, ни при приёме через Dovecot, ни через Exim при приёмке (пробовал уже варианты и начальный и с комментариев).
КАК ? Requested CRAM-MD5 scheme реализовать ???
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 14:26:45
Andy2k
Тут видно нужно ковырять админку Postfix'a в тему схемы шифрования паролей. Судя по логу Dovecot извлек шифрованный пароль, но получил md5-crypt вместо желаемого cram-md5. Может в новых версиях админки появится возможность задавать cram-md5?
У меня пользователи мышь не юзают, поэтому работает.
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 16:48:40
freeman
А с чем у тебя пользователи работают ? У меня только The BAt и Outlook Express. Во втором тоже если не открытым текстом, то SPA =(.
Не получится у меня пользователей пересадить, надо что то с связкой exim dovecot решать

Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 16:53:52
BlackPhantom
у меня висит saslauthd, и через него и бат, и express и microsoft outlook, все отправляют...
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 16:54:53
Andy2k
Outlook 2003
Profi-mail
Java-client (мобильники)
Outlook Windows Mobile 2003-2005 (КПК)
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 16:59:10
freeman
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 17:52:26
Morty
да лучше не в ЛС а на форуме - всем интерестно.
а если ты на свой сервак телнетом он тебе что показывает ??
у меня вот так
Код: Выделить всё
telnet 11.11.11.22 25
ehlo testdomain.com
250-SIZE 26214400
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
кстати подскажите где можно посмотреть все опции для сборки Exima а то не нашел.
Почитал вот тут
http://exim.org/exim-html-current/doc/h ... l#SECID169
Подумалось - может нада просто скомпилить экзим с опцией AUTH_CRAM_MD5=yes
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-08 18:45:02
freeman
Morty писал(а):да лучше не в ЛС а на форуме - всем интерестно.
а если ты на свой сервак телнетом он тебе что показывает ??
......
Почитал вот тут
http://exim.org/exim-html-current/doc/h ... l#SECID169
Подумалось - может нада просто скомпилить экзим с опцией AUTH_CRAM_MD5=yes
Извиняюсь, думал что приводил логи. значит в другой теме
Код: Выделить всё
220 mx.mysdomain.com, ESMTP ready
EHLO ya
250-mx.mysdomain.com HEHLO ya [192.168.x.x]
250-SIZE 10485760
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5 NTLM
250 HELP
Код: Выделить всё
FreeBSD Myserver.com 6.2-RELEASE-p8 FreeBSD 6.2-RELEASE-p8 #1: Wed Oct 24 13:44:26 EEST 2007 root@Myserver.com:/usr/obj/usr/src/sys/Myserver.com i386
Exim version 4.68 #0 (FreeBSD 6.2) built 26-Oct-2007 00:44:01
Copyright (c) University of Cambridge 2006
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Конечно же тут надо отвечать, а в ЛС чтоб я всразу увидел

Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-09 0:23:13
Alex Keda
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-09 12:00:25
freeman
Exim собирался по статье
http://www.lissyara.su/?id=1173 , т.е make && make install && make clean
Но разве присутствие в приглашении
и параметрах
Код: Выделить всё
Authenticators: cram_md5 dovecot plaintext spa
не говорит о сборке. реальном присутсвии, CRAM-MD5 ?
Re: Как настроить SMTP авторизацию в Exim
Добавлено: 2007-11-09 13:58:48
Morty
если дальше продолжить тему с телнетом то
Код: Выделить всё
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
auth cram-md5
334 PDE3Nzg2LjExOTQ2MDU1NDVAbWFpbDIuc2ltYmlvei5jb20udWE+
в отличии от plain
Код: Выделить всё
250-SIZE 26214400
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
auth plain
334
моно считать что аутентификация по крам-мд5 работает и соединение идет зашифрованное
если я ошибаюсь в понимании этого процесса - поправьте плз