The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

SMTP AUTH (SASL) в sendmail 8.10/8.11 (auth smtp mail sasl sendmail)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: auth, smtp, mail, sasl, sendmail,  (найти похожие документы)
From: sendmail.by.ru Subject: SMTP AUTH (SASL) в sendmail 8.10/8.11 Оригинал: http://sendmail.by.ru/documents/SMTPAuth.htm SMTP AUTH в sendmail 8.10/8.11 Sendmail 8.10/8.11 поддерживают SMTP AUTH как это описано в RFC 2554, которая базируется на SASL. Постараюсь выложить тут всё необходимое для реализации этой функции в Sendmail. Для начала стоит задуматься для чего вам это нужно. Потому как не все е-майловые клиенты в полной мере поддерживают SMTP AUTH. Вот по этому адресу можно посмотреть табличку совместимости для разных клиентов : http://www.sendmail.org/~ca/email/mel/SASL_ClientRef.html Сначала нам потребуются библиотеки Cyrus SASL. Берем последние сорц-коды : ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ На сегодняшний день это версия 1.5.24 tar -xzf cyrus-sasl-1.5.24.tar.gz cd cyrus-sasl-1.5.24/ ./configure --prefix=/usr make make install #под правами рута конечно Теперь гляньте есть ли библиотеки в каталогах /usr/lib и инклуды в /usr/include. Посмотрите, чтоб файлы принадлежали руту... Теперь надо сделать конфигурационный файл для Сенмайла, который будет использовать SASL каждый раз когда пойдет проводить аутентификацию для Sendmail. Делаем файл /usr/lib/sasl/Sendmail.conf и пишем во внутрь: pwcheck_method: sasldb Об этом больше описано в cyrus-sasl-1.5.24/doc/sysadmin.html , а нам пока хватит этого. Теперь нужно организовать базу данных для всех ваших юзеров, которые могут отсылать почту. Для этого есть две программы, которые должны были встать в /usr/sbin : saslpasswd -a sendmail newuser password:<passwdorf for newuser> Эту процедуру проводим для всех юзеров которые у вас есть. Теперь есть вторая программа : sasldblistusers которая вам покажет все введённые записи в базу. В результате вы увидите, что-то в этом духе : user: newuser realm: yourhost mech: CRAM-MD5 user: newuser realm: yourhost mech: DIGEST-MD5 user: newuser realm: yourhost mech: PLAIN Что значит что вы можете делать аутентификацию под юзером newuser трёмя методами : CRAM-MD5, DIGEST-MD5, PLAIN. Последний метод очень не надёжен и советую от него воздержаться. Но вот Нетскейп 4.76 другого способа не знает. Теперь перейдем к самому Sendmail. Сначала посмотрим возможно в вашем дистрибутиве уже скомпилировали поддержку SASL ? sendmail -d0.1 -bv root | grep SASL Если в результате такой команды вы увидите знакомое слово SASL то можете смело переходить к следующему пункту, а если нет - вам придется заново собрать Sendmail. Собираем Sendmail: скачиваем нужную, или последнюю версию сендмайл(www.sendmail.org) tar -xzf senmail-x.xx.xx.tar.gz cd sendmail-x.xx.xx/ Теперь очень важно: заходим в sendmail-x.xx.x/devtools/Site и делаем там файл site.config.m4 в котором пишем : APPENDDEF(`confENVDEF', `-DSASL') APPENDDEF(`conf_sendmail_LIBS', `-lsasl') APPENDDEF(`confLIBDIRS', `-L/usr/lib/') APPENDDEF(`confINCDIRS', `-I/usr/include/') возвращаемся в каталог sendmail-x.xx.xx/ и запускаем скрипт ./Build ./Build install Теперь проверим что у нас получилось: sendmail -d0.1 -bv root | grep SASL Если всё работает идем дальше. Сконфигурируем Sendmail. впишем в свой файл sendmail.mc : TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 PLAIN')dnl define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 PLAIN')dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth/auth-info')dnl FEATURE(`no_default_msa')dnl turn off default entry for MSA DAEMON_OPTIONS(`Port=25, Name=MSA, M=E')dnl Советую выключить из списка PLAIN метод авторизации ! Теперь : m4 senmail.mc>sendmail.cf Копируем файл туда где Sendmail берёт конфиг файл : cp sendmail.cf /etc/mail/sendmail.cf Проверяем насколько готов sendmail: telnet localhost 25 Trying 127.0.0.1... Connected to localhost Escape character is '^]'. 220 local.sendmail.ORG ESMTP Sendmail 8.10.0/8.10.0; Thu, 9 Sep 1999 10:48:44 -0700 (PDT) ehlo localhost 250-local.sendmail.ORG Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-DSN 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN 250 HELP quit Теперь можете поиграть с вписаниями в хидеры е-майла информации о аутентификации. В /etc/sendmail.cf поищите: ######################### # Format of headers # ######################### Впишите к примеру такое : $.$?{auth_type}(authenticated with ${auth_type} from ${auth_author}$.) Тогда в письмах, в хидерах появится такое : (authenticated with CRAM-MD5 from newuser) В емайл - клиентах не забудьте указать: login : newuser@yourhost password: passwowdfornewuser

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, Аноним (1), 14:00, 22/03/2003 [ответить]  
  • +/
    Все собрал, все работает и sasl иsendmail все правильно. Но аутентификация не проходит, письма реджектит. Что это может быть?
    Помогите, пожалуйста, это очень важно.
    Заранее благодарю
     
     
  • 2.3, dee (?), 15:53, 14/08/2004 [^] [^^] [^^^] [ответить]  
  • +/
    надо чтобы в /etc/mail/access был relay на локалхост.

    у меня тоже режектило - relaying denied:


    Aug 14 13:33:23 ds sm-mta[46788]: AUTH=server, relay=sababa-111.dialup.zeos.net
    [194.153.128.111], authid=****@ds.customers.silvercom.net, mech=CRAM-MD5, bits
    =0
    Aug 14 13:33:58 ds sm-mta[46788]: i7EAXMx5046788: ruleset=check_rcpt, arg1=<***@***>, relay=sababa-111.dialup.zeos.net [194.153.128.111], r
    eject=550 5.7.1 <***@***>... Relaying denied

    когда добавил в access хост из authid (который ds.customers..., кстати можно добавлять и юзера@хост - тогда будет только для определенного пользователя) c RELAY - все заработало.

     

  • 1.2, Eugeny (??), 15:25, 06/05/2004 [ответить]  
  • +/
    Собрал sasl Все прошло без ошибок. Но припопытке открыть базу saslpasswd -a sendmail newuser в конце процедуры выдается сообщение Segmentation Fault.
    Система Linux Slackware.
    В чем может быть проблема ?  Спасибо заранее.
     
     
  • 2.4, Contik (?), 19:00, 23/04/2005 [^] [^^] [^^^] [ответить]  
  • +/
    У меня тоже падал с сегментейшн фаулт
    В результате не стал копаться с этой фигней, а перекомпилил и поставил сразу sasl2
    сейчас все заработало!
     
     
  • 3.5, pserg01 (?), 17:08, 01/07/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Тоже слака стоит. Ни sasl 1.5, ни sasl 2 нехочет работать...
    segmentation fault...
    в syslog: error updating sasldb...
     

  • 1.6, rembo (?), 16:20, 22/05/2006 [ответить]  
  • +/
    В версии 8.13 (по крайней мере в 8.13.3) необходимо добавить параметр -с к ./Build чтобы были учтены изменения в файле site.config.m4
     
  • 1.7, TrEK (ok), 12:16, 10/09/2008 [ответить]  
  • +/
    dionis:/etc # sendmail -bd -q15m
    554 5.0.0 /etc/sendmail.cf: line 22: unknown configuration line "define('confAUTH_MECHANISMS', 'GSSAPI DIGEST-MD5 CRAM-MD5 PLAIN')dnl"
    554 5.0.0 /etc/sendmail.cf: line 23: unknown configuration line "define('confDEF_AUTH_INFO', '/etc/mail/auth/auth-info')dnl"
    451 4.0.0 /etc/sendmail.cf: line 24: fileclass: cannot open 'ATURE('no_default_msa')dnl': No such file or directory

    у меня вот что выкидывает! и что делать ХЗ!
    ошибку про конфиг выдает!
    Кто может подсказать.. буду рад.
    мйел указало свой!

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру