The OpenNET Project / Index page

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

Установка Postfix+Sasl на FreeBSD 6 (postfix mail crypt auth sasl)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: postfix, mail, crypt, auth, sasl,  (найти похожие документы)
From: zingel <666.root@gmail.com.> Newsgroups: email Date: Mon, 15 Nov 2007 14:31:37 +0000 (UTC) Subject: Установка Postfix+Sasl на FreeBSD 6 Установка Postfix+Sasl v2 (метод авторизации - pwcheck) на FreeBSD Как-то решил поставить postfix вместо sendmail и сделать авторизацию по smtp через обычный /etc/passwd (что вполне подходит для обслуживания одного домена на почтовом сервере). Для этих целей выбрал /usr/ports/security/cyrus-sasl2. Но после его установки наткнулся на любопытный момент, sasl2 собрался без модуля pwcheck (как раз необходимого для авторизации через /etc/passwd) и предлагалось в качестве замены использовать saslauthd, что я в принципе не хотел. Поэтому сделал через pwcheck :) Сценарий: 1. установка cyrus-sasl2 из портов: # cd /usr/ports/security/cyrus-sasl2 далее правим Makefile на предмет добавления опции касательно pwcheck (--with-pwcheck=/var/pwcheck ). Я сделал так (но в принципе от перемены мест слагаемых сумма не меняется) : /usr/ports/security/cyrus-sasl2/Makefile : .... CONFIGURE_ARGS= --sysconfdir=${PREFIX}/etc \ --with-plugindir=${PREFIX}/lib/sasl2 \ --with-dbpath=${PREFIX}/etc/sasldb2 \ --includedir=${PREFIX}/include \ --mandir=${MANPREFIX}/man \ --enable-static \ --enable-auth-sasldb \ --with-pwcheck=/var/pwcheck \ --with-rc4=openssl \ --with-saslauthd=${SASLAUTHD_RUNPATH} .... Далее идёт сам процесс сборки и установки: # make; make install Затем необходимо создать папку /var/pwcheck где будех хранится нужный нам сокет, задать нужные нам права и овнера (иначе postfix будет ругаться). # mkdir /var/pwcheck # chown cyrus:postfix /var/pwcheck # chmod u=rwx,g=rx,o= /var/pwcheck или для любителей цифр: # chmod 750 /var/pwcheck Далее создаём файлик: /usr/local/lib/sasl2/smtpd.conf , в котором пишем следущее pwcheck_method: pwcheck mech_list: plain login Первая строчка - указание нашего метода, соотвественно pwcheck. Вторая строчка - список механизмов авторизации (я выбрал только plain и login) 2. Далее ставим сам postfix: # cd /usr/ports/mail/postfix # make; make install Затем нас спросят с какими опциями собирать postfix, отмечаем соответственно: [X] SASL2 а другие опции на Ваше усмотрение :) В процессе установки нас спросят следущее: Would you like to activate Postfix in /etc/mail/mailer.conf [n]? Если хотим полностью заменть текующий MTA (например Sendmail) Postfix'ом то отвечаем: "y". Далее (в случае если ответили "y") в /etc/rc.conf надо внести следующие изменения (для нормального запуска postfix'a во время загрузки системы): /etc/rc.conf : ... sendmail_enable="YES" sendmail_flags="-bd" sendmail_pidfile="/var/spool/postfix/pid/master.pid" sendmail_procname="/usr/local/libexec/postfix/master" sendmail_outbound_enable="NO" sendmail_submit_enable="NO" sendmail_msp_queue_enable="NO" ... Затем идём в /usr/local/etc/postfix # cd /usr/local/etc/postfix И правим main.cf (я поясню какие строки добавлять для авторизации через sasl, о базовом конфигурировании можно почитать здесь: http://www.postfix.org.ru/BASIC_CONFIGURATION_README.html ). Добавляем следующие строки (запрет для неавторизированных пользователей, включение авторизации и тп.): /usr/local/etc/postfix/main.cf : ... smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_application_name = smtpd smtp_sasl_security_options = noanonymous broken_sasl_auth_clients = yes ... 3. Затем запускаем pwcheck: # /usr/local/sbin/pwcheck Не забудем добавить pwcheck в автозапуск. (Например добавить строку "/usr/local/sbin/pwcheck" в /etc/rc.local) И postfix (перед этим не забудьте убить sendmail или другой mta, если Вы заменяли его postfix'ом): # postfix start postfix/postfix-script: starting the Postfix mail system Проверим правильно ли мы подключили sasl (для этого после соединения с сервером вводим - ehlo localhost): # telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 test.ru ESMTP Postfix ehlo localhost 250-test.ru 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME quit 221 Bye Connection closed by foreign host. # Строка 250-AUTH LOGIN PLAIN говорит нам об успехе. 4. Далее надо проверить работу нашей связки (необходимо создать пользователя в системе, настроить почтовую программу и попробовать отправить письмо). Если пароль и логин верен то в /var/log/maillog будет запись вида (случай для The Bat, механизм авторизации - plain): Jan 3 15:17:49 postfix/smtpd[645]: connect from station.box[192.168.0.2] Jan 3 15:17:50 postfix/smtpd[645]: B198917034: client=station.box[192.168.0.2], sasl_method=PLAIN, sasl_username=ibox и далее информация об отправке письма и тп. Если неверен то: Jan 3 16:02:11 postfix/smtpd[6818]: connect from station.box[192.168.0.2] Jan 3 16:02:11 postfix/smtpd[6818]: warning: SASL authentication failure: Incorrect password Jan 3 16:02:11 postfix/smtpd[6818]: warning: SASL authentication failure: Password verification failed Jan 3 16:02:11 postfix/smtpd[6818]: warning: station.box[192.168.0.2]: SASL PLAIN authentication failed Jan 3 16:02:11 postfix/smtpd[6818]: NOQUEUE: reject: RCPT from station.box[192.168.0.2]: 554 <kudato@mail.ru.>: Relay access denied; Jan 3 16:02:11 postfix/smtpd[6818]: disconnect from station.box[192.168.0.2] и письмо соотвественно не отправится :) Если всё в /var/log/maillog так как я описал, значит наша связка успешно работает. Об авторизации через SASL в Postfix можно почитать здесь: http://www.postfix.org.ru/SASL_README.html

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

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




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

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