Меню

Настройка sendmail dovecot freebsd

Установка и настройка sendmail

Настраиваем sendmail (8.12.6/7/8) для виртуального почтового хостинга.

Установка sendmail

Сначала устанавливаем итз портов sendmail c поддержкой cyrus sasl (система аутентификации).

После установки sendmail мы должны изменить файл /etc/make.conf. Добавляем в него строчку

Если до этого стоял более старый sendmail, устанавливаем файл submit.cf

Для запуска sendmail будем использовать следующий сценарий (переименуем его в удобоваримый формат):

Для нормального запуска обновленной версии мы должны указать путь к ней (файл /etc/mail/mailer.conf). Это можно сделать либо при помощи команды

либо вручную, изменив файл mailer.conf:

На этом установка sendmail окончена. Осталоь столько запустить его командой

Сообщения sendmail sm-msp-queue говорят о том, что все прошло нормально.

Настройка sendmail

Будем считать, что мы настраиваем два виртуальных почтовых домена: perldoc.ru и perlfaq.ru. Для настройки sendmail c поддержкой виртуального постового хостинга нам потребуется создать (или изменить) следующие файлы:

aliases

Этот файл описывает пользовательские псевдонимы, используемые sendmail. Файл расположен в каталоге /etc/mail и представляет собой список вида

Более подробно структура файла aliases описана в aliases (5). В этот файл мы добавляем строку

Вся локальная почта, адресованная пользователю root, теперь будет приходить на адрес admin@perldoc.ru.

access

В этом файле мы указываем, для каких IP адресов sendmail должен принимать и пересылать почту. Поскольку для эих целей мы будем использовать аутентификацию cyrus sasl, мы разрешим только отсылку с локального хоста

local-host-names

В этом файле мы храним названия доменов, для которых наш сервер должен обрабатывать почту. Поскольку мы хотим использовать наш сервер для двух виртуальных почтовых доменов perldoc.ru и perlfaq.ru, пропишем их в файл:

virtusertable

В файле virtusertable мы указываем sendmail, куда направлять почту, пришедшую на адреса в доменах perldoc.ru и perlfaq.ru.

Вся почта, пришедшая на адрес stellar@perldoc.ru будет направляться в почтовый ящик пользователя stellar-perldoc.ru, а почта, пришедшая на admin@perldoc.ru, соответственно будет отсылаться пользователю admin-perldoc.ru. Тоже самое будет и для домена perlfaq.ru. Если на наш домен будет прислана почта с несуществующем пользователем, сработает строчка

и sendmail откажется принимать такое сообщение.

freebsd.mc

Теперь нам осталось только изменить конфигурацию файла freebsd.mc, чтобы sendmail научился работать с виртуальными почтовыми доменами. Здесь надо понимать, что в том случае, когда существует файл, у которого имя совпадает с названием машины (например, для машины с именем genius файл будет genius.mc), он используется вместо файла freebsd.mc

Вот примерный вид конфигурационного файла:

Запуск и тестирование

Теперь, когда почти все сделано, нам надо пересобрать заново файл конфигурации sendmail и обновить базы данных. Делается это следующим набором команд:

Результатом будет нечто вроде этого:

Выделяем чекбокс «Аутентификация SMTP (RFC-2554)».
Переключаем кнопку «Использовать параметры, указанные ниже.»
Вводим имя пользователя и пароль, которые создали при помощи saslpasswd2.
Пользователь: admin-perldoc.ru@genius.
Пароль: *********

(!) Обратите внимание на то, что имя пользователя указано вместе с именем машины.
Выделяем чекбокс «Требовать безопасную (MD5) аутентификацию».

В том случае, если используется MS Outlook или другой почтовый клиент, в котором нет безопасной аутентификации (DIGEST-MD5, CRAM-MD5), необходимо использовать аутентификацию по методам PLAIN или LOGIN. При этом в качестве имени пользователя надо использовать имя пользователя БЕЗ добавленного имени машины. В нашем случае имя пользователя будет выглядеть так: admin-perldoc.ru.

Читайте также:  Металлоискатель фишер ф 75 настройка для новичка

После отправки письма в лог-файле /var/log/maillog должны быть примерно такие записи:

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

Почтовый сервер на sendmail + dovecot

Почтовый сервер на sendmail + dovecot

Сообщение kasak » 09.08.2010 00:03

Когда-то очень давно я решил запустить на своём компьютере почтовый сервер. И поскольку я больше люблю Slackware за его простоту и понятность (а в составе slackware имеется почтовый сервер sendmail), то основываться я решил именно на sendmail. Однако попытавшись найти какую-либо информацию, чтобы понять основы работы с почтой и сендмейлом, я почти везде натыкался на комменты «зачем тебе sendmail? это очень сложно, поставь postfix.» В принципе сейчас мне понятны эти предложения, однако я долго разбирался в тонкостях и всё-таки сделал всё на сендмейле.

Для кого этот мануал: для людей, разбирающихся в основах линукс, понимающих, что такое «внешный выделенный IP адрес», и понимающих, что такое dns, однако не знающих как работает почта, и желающих разобраться с ней по одному понятному мануалу.

Не обращайте внимания на тех, кто громко голосит о том, что сендмейл очень сложен и не нужен. Для моих простых целей (простой почтовый сервер) настроить сендмейл не сложнее, чем тот же vsftpd. Главное сделать это один раз и вы поймёте, что всё не так сложно.

Перед настройкой почтового сервера вам нужно зарегистрировать себе доменное имя, и правильно прописать почтовую запись в dns.
У меня это сделано следующим образом:

Пропишите имя почтового сервера в файле /etc/localhost
Запишите туда внешний ip адрес и имя, примерно вот так:
111.111.111.222 mx.somedomain.net mx

Авторизация:
Правильный почтовый сервер должен иметь авторизацию через имя пользователя и пароль. Я предполагаю, что пользователи должны авторизовываться из системных учётных записей и паролей, а письма будут лежать в их домашних директориях. Чтобы научить sendmail авторизовывать, нужен cyrus-sasl. В Slackware он уже идёт в комплекте, однако не умеет работать с нужными механизмами авторизации. Я скачал слакбилд к нему и исправил его, чтобы тот содержал опции сборки

—enable-login \
—enable-plain \
Если этого не сделать, многие клиенты не смогут авторизоваться.
Далее в каталоге /etc/sasl2 создаётся файл Sendmail.conf с содержанием:

Теперь надо создать конфирурационный файл для sendmail. В комплекте с сендмейлом обычно идёт ворох всяких конфигов, и я использовал один из них как основу.
Тот формат конфигов, которые понимает сендмейл, очень сложен. Я иногда представляю себе программиста, который пыхтел над кодом сендмейла, пытаясь сделать программу требующую конфиг сложнее, чем код на ассемблере. Однако добрые люди написали специальный язык макросов, который позволяет скомпилировать из простого конфига на этом языке сложный на языке сендмейла. Примеры конфигов обычно идут в каталоге

В принципе, описание ко всем опциям дано прямо в конфиге. Однако я изменил некоторые опции, которые приведу ниже.

Читайте также:  Настройка области уведомлений андроид

Надо настроить авторизацию:

define(`confAUTH_REALM’, `somedomain.net’)dnl
define(`confAUTH_OPTIONS’, `A p y’)dnl
define(`confAUTH_MECHANISMS’, `LOGIN PLAIN DIGEST-MD5 CRAM-MD5′)dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5′)dnl

Первая строка нужна для того, чтобы при авторизации на сервере не приходилось вводить логин полностью вместе с доменом. Только имя пользователя.
Вторая строка включет механизм авторизации, включает доверие к механизму plain только после того, как соединение будет зашифровано и запрещает анонимные логины.
Третья строка перечисляет механизмы авторизации, которые будут использоваться.
Последняя строка говорит сендмейлу, каким механизмам доверять.
В строке DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=Es’)dnl надо после Es дописать символ ‘a’, чтобы заставить сендмейл требовать авторизацию по защищённому smtp.

Вот в принципе и всё, что нужно. Дефайны для авторизации надо вводить после описаний MAILER. В макросе должна быть последовательность. Про порядок заполнения mc макросов есть документация, интересующиеся смогут её найти.

В каталоге /etc/mail находятся ещё несколько файлов, которые надо изменить. В local-host-names надо написать имя домена, для которого мы принимаем почту.
Например somehost.net mx.somehost.net

Для авторизации на сервере надо использовать защищённый протокол. Для его защиты нужны сертификаты. Сертификаты нужно сгененрировать. К сожалению, я не помню источник, в котором я прочёл как их сгенерировать. Потрудитесь найти источник сами и сгенерируйте нужные сертификаты. Они описаны в опциях
define(`confCACERT’, `/etc/mail/certs/CA.cert.pem’)
define(`confSERVER_CERT’, `/etc/mail/certs/smtp.cert.pem’)
define(`confSERVER_KEY’, `/etc/mail/certs/smtp.key.pem’)
Также можно использовать сертификаты от довекота (dovecot), описание которого будет дано ниже.
В принципе, если я ничего не забыл, можно запускать saslauthd и sendmail. Работать должно.

Далее установите довекот.
Его конфиг должен выглядеть так:

Ничего более для его настройки не нужно.

Теперь самое интересное. Чтобы всё это заработало, нужно чтобы сендмеил клал письма в каталог пользователя. Но перед этим надо установить фильтр спама. В слакваре это проще всего сделать, установив через cpan зависимости сендмейла (поищите их в интернете, это не трудно). А потом и сам сендмейл. Можно попробовать поставить через cpan и его, но работает это криво. Проще скачать пакет spamassassin с его родного сайта и собрать вот так:
perl Makefile.pl PREFIX=/usr SYSCONFDIR=/etc
make
make install

Теперь конфиг процмейл (procmail), он должен называться /etc/procmailrc
и содержание его должно быть такое:

Опция DROPPRIVS отвечает за то, чтобы письма к пользователям доставлялись в правильных правах доступа, и не приходилось создавать каждый раз procmailrc в папках пользователей. Достаточо один раз настроить процмейл.

Источник

postfix+dovecot+mysql в FreeBSD

Введение

Подготовка

Первым делом установим пакеты которые понадобятся для работы (postfix, dovecot и dovecot-pigeonhole необходимо установить из портов, dovecot-sieve можно в принципе установить из пакетов, но в портах версии бывают более новые и по этой причине может быть не совместимость dovecot с dovecot-sieve). Установим следующие пакеты:

После установки поместим необходимые службы в автозапуск:

Не забываем добавить в httpd.conf строки необходимые для работы php в apache и корректной работы postfixadmin:

Далее необходимо перейти в каталог и скачать postfixadmin

Скачаем postfixadmin (на момент написания актуальная версия была 3.2)

Читайте также:  Как изменить региональные настройки на айфоне

После этого необходимо распаковать архив в данный каталог и изменить владельца каталога:

Далее подготовим базу данных для postfixadmin, выполните скрипт mysql-secure-installation(тот пароль который Вы создадите в данном скрипте, необходимо будет создать и в mysql командой alter user), для первичной настройки mysql, далее войдите в mysql, создайте базу данных и права для неё:

После того как база данных настроена необходимо отредактировать файл config.inc.php, в данном примере этот файл находится в каталоге /usr/local/www/apache24/data/postfixadmin-3.2/, в данном файле необходимо отредактировать несколько строк и привести их к виду, после того как измените данные настройки, перезагрузите apache, также необходимо создать каталог templates_c в каталоге /usr/local/www/apache24/data/postfixadmin-3.2 и назначить на него владельца www:

Для генерации ключа будем использовать способ который предложен на сайте postfix.org, с созданием собственного центра сертификации, необходимо перейти в каталог /etc/ssl и выполнить скрипт:

Во время выполнения скрипта будет запрошено имя для сертификата, не чего не вводите, нажмите Enter, далее скрипт запросит создать пароль для сертификата, далее будут стандартные вопросы для создания сертификата.

Далее необходимо создать секретный ключ(без пароля) и не подписанный сертификат открытого ключа(Organizational Unit Name (eg, section) [] должен отличаться от того, что указан в сертификате созданном выше):

Подпишем сертификат открытого ключа(количество дней укажите столько, сколько вам необходимо):

Созданные сертификаты оставьте в данном каталоге, или перенесите их в тот каталог который Вам более удобен, «конфиги» postfix и dovecote будут настроены с учётом того, что сертификаты будут находиться в данном каталоге.

Пользователь vmail

Перед тем как приступить к установке postfix, dovecot и dovecot-pigeonhole, создадим пользователя и группу(группа создаться автоматически) vmail, а также каталог в котором будет располагаться почта.

Создадим каталог для почты и назначим владельцем пользователя vmail:

Postfix, dovecot, dovecot-pigeonhole

Как я писал ранее сборку данных приложений произведём из портов, выполните команду для скачивания и распаковки портов:

После распаковки портов перейдите в каталог dovecot, выполните настройку порта (необходимо отметить поддержку mysql) и запустите сборку(BATCH=yes укажет make не задавать вопросы при установке):

Те же действия проделать с postfix и dovecot-pigeonhole

postfix: также отметьте в настройке порта поддержку mysql

Перед запуском dovecot скопируйте «конфиги»:

После установки postfix и dovecot запустите службы:

Также необходимо создать каталог в котором будет компилироваться модуль для пересылки спама в папку спам, в моём случаи данный каталог находиться в папке /usr/local/etc/dovecot/conf.d, имя каталога def, создадим данный каталог и файл с кодом для компиляции и установим владельцем данного каталога пользователя vmail:

В данный файл поместите строки:

«Конфиги»

В данном разделе приведу примеры «конфигов» с комментариями в них, сомневаюсь только в «конфиге» spamassassin, так как корректных описаний в сети не нашёл(оставил «конфиг» по умолчанию), просьба дополнить в комментариях как лучше настроить spamassassin.

Postfix

Первым делом необходимо создать файлы для вытаскивания пользователей, доменов, квот из базы данных. Создайте каталог для хранения данных файлов и необходимые файлы:

Источник

Adblock
detector