- Postfix
- Содержание
- Postfix
- Установка
- Базовая настройка
- Аутентификация SMTP
- Настройка SASL
- Почтовый стек доставки
- Тестирование
- Решение проблем
- Отказ от режима chroot
- Файлы журналов
- Ссылки
- Почтовый сервер Postfix
- Содержание
- Установка Postfix
- Немного общих слов о настройках
- Основные параметры Postfix
- Карты данных
- Локальная доставка
- Создание псевдонимов для ящиков
- Пересылка почты
- Транспорты
- Безопасность и защита от спама
- Шифрование и аутентификация
- Примеры использования
- Почтовый сервер Postfix на CentOS 7 с виртуальными доменами, системой управления, веб-доступом и многим другим
- Содержание
- 1. Преднастройка системы
- Общие настройки
- Настройка безопасности
- Отключение SELinux
- 2. Настройка веб-сервера: NGINX + PHP + MariaDB
- Установка NGINX
- PHP + PHP-FPM + NGINX
- MariaDB
- 3. Установка и настройка PostfixAdmin
- 4. Настройка Postfix
- 5. Настройка Dovecot
Postfix
Содержание
Postfix
Postfix является агентом передачи почты (MTA) в Ubuntu по умолчанию. Он разработан чтобы быть быстрым, простым в администрировании и безопасным. Он совместим с MTA sendmail. Этот раздел описывает как установить и настроить postfix. Здесь также разъясняется как сделать его SMTP сервером, использующим безопасные соединения (для безопасной передачи сообщений).
Установка
Для установки postfix выполните следующую команду:
Просто нажимайте ввод когда процесс установки задает вопросы, очень детальная настройка будет выполнена на следующем этапе.
Базовая настройка
Для настройки postfix, выполните следующую команду:
Будет запущен пользовательский интерфейс. На каждом экране выбирайте следующие значения:
mail.example.com
steve
mail.example.com, localhost.localdomain, localhost
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/16
Теперь самое время решить какой формат почтового ящика вы хотите использовать. По умолчанию postfix использует формат mbox. Вместо непосредственного редактирования файла конфигурации вы можете использовать команду postconf для настройки параметров postfix. Параметры будут сохранены в файле /etc/postfix/main.cf. В дальнейшем если вы решите переконфигурировать отдельные параметры вы можете как запустить команду, так и вручную поправить файл.
Для настройки формата почтового ящика для Maildir:
Аутентификация SMTP
2. Далее создайте или получите цифровой сертификат для TLS. Смотрите подробности в разделе Сертификаты. Этот пример также использует Центр сертификации (CA). Для информации по созданию сертификатов CA смотрите раздел Центр сертификации.
3. Как только у вас появился сертификат, настройте Postfix на использование TLS шифрования как для входящей, так и для исходящей почты:
4. Если вы используете собственный Центр сертификации, для подписи сертификата введите:
Опять же, для подробностей смотрите раздел Сертификаты.
Начальная настройка postfix закончена. Выполните следующую команду для перезапуска сервиса postfix:
Postfix поддерживает SMTP -AUTH как описано в RFC2554. Он основан на SASL. Однако все-таки необходимо настроить аутентификацию перед тем, как вы сможете использовать SMTP -AUTH.
Настройка SASL
Postfix поддерживает две реализации SASL: Cyrus SASL и Dovecot SASL. Чтобы разрешить Dovecot SASL, требуется установить пакет dovecot-common. Для этого из терминала введите следующее:
Далее вам потребуется отредактировать /etc/dovecot/dovecot.conf. В секции auth default снимите комментарий с опции socket listen и измените ее следующим образом:
После того, как Dovecot настроен, перезапустите его:
Почтовый стек доставки
Чтобы установить пакет, введите в терминале:
У вас теперь рабочий почтовый сервер, но существует несколько опций, которые вы, возможно, захотите изменить в дальнейшем. Например, пакет использует сертификат и ключ от ssl-cert пакета, и в рабочей среде, вы должны использовать сертификат и ключ, сгенерированный для хоста. Смотрите радел Сертификаты для дополнительных деталей.
После того, как вы получили заказанный сертификат для сервера, замените следующую опцию в /etc/postfix/main.cf:
Тестирование
После установления соединения с почтовым сервером postfix введите:
Если среди прочего вы увидите следующие строки, все работает замечательно. Введите quit для выхода.
Решение проблем
Эта секция описывает несколько общих способов определения причин возникающих проблем.
Отказ от режима chroot
Пакет postfix в Ubuntu по умолчанию устанавливается в окружении chroot из соображений безопасности. Это может дополнительно усложнить процесс поиска решения проблем.
Для отключения функционирования chroot, найдите следующую строку в файле настроек /etc/postfix/master.cf:
И замените на следующее:
После этого вам придется перезапустить Postfix для использования новых настроек. Из терминал введите следующее:
Файлы журналов
Postfix посылает все сообщения в журнал /var/log/mail.log. Однако сообщения об ошибках и предупреждения могут иногда теряться в нормальном журнале, поэтому они отдельно сохраняются в /var/log/mail.err и /var/log/mail.warn соответственно.
Для просмотра сообщений журнала в режиме реального времени вы можете использовать команду tail -f:
Количество деталей, записываемых в журнал, может быть увеличено. Ниже приведено несколько опций настройки для увеличения уровня детализации некоторых областей, описанных выше.
1. Для увеличения TLS активности журнала, установите опции smtpd_tls_loglevel значение от 1 до 4.
2. Если вы испытываете трудности с отправкой или приемом почты отдельного домена, вы можете включить его в параметр debug_peer_list.
3. Вы можете увеличить детализацию любого сервиса Postfix редактированием /etc/postfix/master.cf, добавив -v после соответствующей записи. Для примера изменим запись smtp:
4. Для увеличения количества информации в журнале при поиске проблем с SASL, вы можете установить следующие опции в /etc/dovecot/dovecot.conf:
Ссылки
Администрирование сервера Postfix может быть очень сложной задачей. В какой-то момент вам может потребоваться обратиться к сообществу Ubuntu для более квалифицированной помощи.
Хорошее место задать вопрос по сопровождению Postfix и влиться в сообщество Ubuntu Server, это IRC канал #ubuntu-server на freenode. Вы также можете отправить сообщение на один из интернет форумов.
Для погружения в информацию по Postfix очень рекомендуется прочитать The Book of Postfix.
Наконец сайт Postfix также содержит много информации по всем возможным опциям настройки.
Кроме того страница Ubuntu Wiki Postfix содержит дополнительную информацию.
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Источник
Почтовый сервер Postfix
Содержание
Если вы решили настроить почту на своём сервере, то Postfix — определённо ваш выбор. Подробное описание всех возможностей Postfix, вы можете найти в официальном руководстве. В данном руководстве указан базовый пример настройки почтового сервера. Итак, перейдем к установке.
Установка Postfix
Установить Postfix можно командой:
При конфигурировании пакета вам зададут несколько вопросов, внимание стоит обратить лишь на предлагаемые профили первоначальной настройки. Вне зависимости от того, для чего вы хотите использовать Postfix, всегда выбирайте Internet Site. Это необходимо сделать для того, чтобы Postfix сгенерировал файл main.cf и сразу начал работу. В противном случае, Вам необходимо будет конфигурировать этот файл самостоятельно!
Немного общих слов о настройках
Итак, Postfix установлен. Все настройки этого почтового сервера хранятся в /etc/postfix . В этом каталоге Вас в первую очередь должен интересовать основной файл конфигурации, называющийся main.cf .
Теперь настала пора определиться с тем, какую функцию будет выполнять ваш почтовый сервер. Собственно, для каждого из обслуживаемых доменов тут есть два варианта:
Третьего собственно не дано. В настройках Postfix есть три основных группы параметров:
Как «правильный» почтовый сервер, Postfix занимается обработкой почты для указанных в конфигурации доменов. Так вот, каждый домен может обрабатываться ровно одним из указанных способов, то есть либо как конечный домен для почты, либо как домен для пересылки, либо как виртуальный домен.
Стандартная локальная доставка основана на системе авторизации и учёта пользователей вашей системы, что значительно уменьшает её гибкость, поэтому смысла её использовать обычно нет. Вместо этого следует использовать механизм «виртуальных доменов» для доставки почты в локальные почтовые ящики. Однако рассмотреть параметры, отвечающие за локальную доставку, всё же надо, ибо на них много что завязано.
Итак, откройте файл /etc/postfix/main.cf в вашем любимом текстовом редакторе. Записи этого файла имеют вид
Комментарии можно добавлять, поставив в начало строки символ # . Кстати, сразу хочу сказать, что параметры, имеющие несколько значений, можно записывать одним из следующих способов:
В третьем и четвёртом случае не забудьте про пробел в начале каждой строчки с параметром. В данном примере, рассмотрим конфигурирование по способу №3.
Кстати, после того, как вы задали значение какого-либо параметра, вы можете его использовать для задания значений другим параметрам. Вам просто нужно указать имя параметра с символом $ вначале в том месте, куда вы хотите подставить его значение. Например вот так:
Теперь немного конкретики.
Основные параметры Postfix
Прежде всего вам надо настроить следующие параметры, отвечающие за домен и имя сервера:
Теперь можно немного похимичить с общими параметрами сервера:
Ну и наконец, если у вашего провайдера есть релей, через который вы хотите пересылать исходящую почту, то его можно указать в параметре relayhost :
Кстати, что такое и зачем нужны релеи — стоит почитать в интернете.
Карты данных
Локальная доставка
Как я уже говорил, для организации локальной доставки мы будем использовать не стандартный механизм Postfix, доставшийся в наследство от Sendmail, а механизм виртуальных доменов. Это позволит нам не зависеть от списка локальных пользователей вашего сервера и добавлять ящики даже для пользователей, не имеющих учётных записей на сервере. Да и вообще, конфигурировать виртуальные домены гораздо проще локальных, плюс есть много очень мощных возможностей, доступных только для виртуальных доменов.
Создание псевдонимов для ящиков
Пересылка почты
Транспорты
Безопасность и защита от спама
Спам — это огромная проблема современного интернета. Поэтому очень важно максимально правильно настроить почтовый сервер в контексте противодействия спаму. Основные моменты расписаны в отдельной статье, посвящённой основам работы SMTP протокола передачи корреспонденции в сети:
Кроме того, всегда указывайте в конфигурационном файле Postfix следующие параметры:
Без них ваш сервер будет сам помогать злоумышленникам в рассылке спама, что, надо надеяться, не является вашей целью.
Один из популярных методов фильтрации спама — грейлистинг, можно реализовать с помощью программы postgrey, которой посвящена отдельная небольшая статья:
Также существует огромное количество других сторонних продуктов, способных интегрироваться с Postfix и фильтровать спам. Список большинства из них можно найти на официальном сайте Postfix:
Шифрование и аутентификация
Примеры использования
С помощью Postfix можно легко предоставить пользователям вашего сайта почтовые адреса, привязанные к их профилям. Этому посвящена отдельная статья:
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Источник
Почтовый сервер Postfix на CentOS 7 с виртуальными доменами, системой управления, веб-доступом и многим другим
В данной инструкции выполнена настройка полноценного почтового сервера. Список всех особенностей и возможностей:
- Почтовая система на базе Postfix;
- Поддержка виртуальных доменов;
- Хранение почты на сервере;
- Подключение к почтовым ящикам по POP3 и IMAP (Dovecot);
- Поддержка шифрования;
- Хранение части настроек в MariaDB;
- Защита от СПАМа и вирусов;
- Доступ к почте с помощью веб-интерфейса (Roundcube);
- Возможность управление почтовыми ящиками с помощью PostfixAdmin.
Содержание
1. Преднастройка системы
Напоминаю, данная инструкция написана под систему Linux CentOS версии 7.
Общие настройки
Задаем правильное имя серверу — это важный шаг, так как большинство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа.
hostnamectl set-hostname relay.dmosk.ru
* необходимо указать FQDN-имя, которое будет доступно из глобальной сети. В данном примере указано relay.dmosk.ru.
Устанавливаем служебные пакеты (они понадобятся в процессе настройки сервера):
yum install chrony wget
* chrony для возможности синхронизировать время на сервере; wget — клиент для загрузки файлов.
Задаем временную зону (в данном примере московское время):
timedatectl set-timezone Europe/Moscow
Разрешаем сервис для синхронизации времени и запускаем его:
systemctl enable chronyd —now
Настройка безопасности
Заранее открываем порты на брандмауэре с помощью firewalld:
firewall-cmd —permanent —add-port=25/tcp —add-port=80/tcp —add-port=110/tcp —add-port=143/tcp —add-port=443/tcp —add-port=465/tcp —add-port=587/tcp —add-port=993/tcp —add-port=995/tcp
* где мы откроем следующие порты:
- 25 — стандартный SMTP через STARTTLS;
- 80 — HTTP для порталов Postfixadmin и Roundcube;
- 110 — стандартный POP3 через STARTTLS;
- 143 — стандартный IMAP через STARTTLS;
- 443 — защищенный HTTPS для порталов Postfixadmin и Roundcube;
- 465 — защищенный SMTP через SSL/TLS;
- 587 — защищенный SMTP через STARTTLS;
- 993 — защищенный IMAP через SSL/TLS;
- 995 — защищенный POP3 через SSL/TLS.
В CentOS также может использоваться утилита iptables — в таком случае команды будут следующие:
iptables -I INPUT 1 -p tcp —match multiport —dports 25,465,587 -j ACCEPT
iptables -I INPUT 1 -p tcp —match multiport —dports 110,143,993,995 -j ACCEPT
iptables -I INPUT 1 -p tcp —match multiport —dports 80,443 -j ACCEPT
Отключение SELinux
Для отключения дополнительного компонента безопасности вводим 2 команды:
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
* первая команда отключит SELinux для текущей загрузки. Вторая оставит его отключенным на постоянной основе.
2. Настройка веб-сервера: NGINX + PHP + MariaDB
Система управления PostfixAdmin работает как веб-приложение, разработанное на PHP, а информацию хранит в базе данных. В нашем примере будет использоваться веб-сервер на NGINX, а база данных — MariaDB.
Установка NGINX
Устанавливаем репозиторий EPEL:
yum install epel-release
yum install nginx
Разрешаем автозапуск сервиса и запускаем его:
systemctl enable nginx
systemctl start nginx
Проверяем работоспособность веб-сервера, обратившись к нему в браузере по IP-адресу. Если видим заголовок «Welcome to nginx!», NGINX настроен верно.
PHP + PHP-FPM + NGINX
Устанавливаем php и php-fpm:
yum install php php-fpm
server <
listen 80 default_server;
set $root_path /usr/share/nginx/html;
location / <
root $root_path;
index index.php index.html;
>
location \.php$ <
fastcgi_pass unix:/var/run/php-fpm/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>
>
* где /usr/share/nginx/html — каталог для размещения портала управления Postfix.
* здесь мы поменяли строку 127.0.0.1:9000.
systemctl enable php-fpm
systemctl start php-fpm
systemctl restart nginx
* если в процессе перезапуска nginx выскочит ошибка nginx: [emerg] a duplicate default server, необходимо найти настройку виртуального домена, в которой также указана опция default_server — опцию нужно убрать. Или можно самостоятельно настроить другой виртуальный домен.
Для проверки, создаем индексный файл в директории сайта со следующим содержимым:
Открываем сайт в браузере по его IP-адресу. На открывшейся странице мы должны увидеть подробную информацию по php:
MariaDB
Устанавливаем сервер баз данных следующей командой:
yum install mariadb-server
Включаем автозапуск сервиса и запускаем его:
systemctl enable mariadb
systemctl start mariadb
Задаем пароль для пользователя sql root:
mysqladmin -u root password
3. Установка и настройка PostfixAdmin
Устанавливаем дополнительные компоненты для PHP:
yum install php-mysql php-mbstring php-imap
Для применения установленных пакетов, перезапускаем обработчик скриптов:
systemctl restart php-fpm
wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz
В директории сайтов nginx создаем каталог для postfixadmin и распаковываем в него архив:
tar -C /usr/share/nginx/html/postfixadmin -xvf postfixadmin.tar.gz —strip-components 1
Создаем каталог templates_c внутри папки портала (без него не запустится установка):
Задаем права на каталог:
chown -R apache:apache /usr/share/nginx/html/postfixadmin
* несмотря на то, что мы используем веб-сервер nginx, php-fpm по умолчанию, запускается от пользователя apache.
Создаем базу данных postfix и учетную запись в mariadb:
> CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* где postfix — имя базы.
> GRANT ALL ON postfix.* TO ‘postfix’@’localhost’ IDENTIFIED BY ‘postfix123’;
* где postfix — имя учетной записи; postfix123 — пароль; localhost разрешает подключение только с локального сервера.
Выходим из командной оболочки MariaDB:
Создаем конфигурационный файл postfixadmin:
* в предыдущих версиях использовался файл config.inc.php. В новых версиях его не рекомендуется править, а использовать config.local.php, который переопределяет настройки.
И добавим следующее:
* где configured говорит приложению, что администратор закончил его конфигурирование; default_language — используемый язык по умолчанию; database_password — пароль для базы данных, который мы задали на предыдущем шаге; emailcheck_resolve_domain — задает необходимость проверки домена при создании ящиков и псевдонимов.
Запускаем браузер и вводим адрес http:// /postfixadmin/public/setup.php
Задаем дважды пароль установки и генерируем хэш, кликнув по Generate setup_password hash:
После перезагрузки страницы копируем хэш:
Открываем конфигурационный файл:
И добавляем строчку:
.
$CONF[‘setup_password’] = ‘$2y$10. BMK’;
* где ‘$2y$10. BMK’ — скопированный хэш.
Загружаем по новой страницу http:// /postfixadmin/public/setup.php — теперь у нас появится форма для ввода нашего пароля, созданного на предыдущем этапе. Вводим его и кликаем по Login with setup_password:
* где Setup password — пароль, который мы ввели на предыдущей странице; Пароль — новый пароль для создаваемой учетной записи.
Будет выполнена установка PostfixAdmin.
Если в процессе установки система выведет ошибки, необходимо самостоятельно с ними разобраться. Как правило, они могут сводиться к отсутствию необходимых пакетов, которых может не оказаться в системе по умолчанию.
После установки в нижней части страницы должна быть форма добавления суперпользователя — вводим данные:
И переходим в браузере на страницу http:// /postfixadmin/public/
Вводим логин и пароль для созданного пользователя.
Однако, конкретно, в моем случае, пользователь не создавался при установке системы и необходимо было создать администратора вручную. Если это потребуется, в консоли сервера подключаемся к СУБД:
Переходим к использованию базы postfix:
Добавляем администратора запросом:
> INSERT INTO admin (`username`, `password`, `superadmin`, `active`) VALUES (‘root@dmosk.ru’, ‘$1$1b7ff416$/KKYqdyAd3viA3.PNu5hh/’, ‘1’, ‘1’);
Выходим из sql-оболочки:
Теперь переходим на страницу http:// /postfixadmin/public/login.php вводим логин root@dmosk.ru и пароль qwe12345 — мы должны оказаться в системе управления почтой.
4. Настройка Postfix
По умолчанию, Postfix уже установлен в CentOS 7. Но если встретится сервер без него, выполним установку простой командой:
yum install postfix
Создаем учетную запись, от которой мы будем работать с каталогом виртуальных почтовых ящиков:
groupadd -g 1024 vmail
useradd -d /home/mail -g 1024 -u 1024 vmail -m
* сначала мы создаем группу vmail и guid 1024, после — пользователя vmail с uid 1024 и домашней директорией /home/mail. Обратите внимание, что в некоторых системах идентификатор группы и пользователя 1024 может быть занят. В таком случае необходимо создать другой, а в данной инструкции ниже заменить все 1024 на альтернативный.
Теперь открываем на редактирование конфигурационный файл почтового сервера:
И редактируем следующие строки:
* данная настройка указывает, какой домен подставлять отправителю, если он не указан в заголовке FROM.
mydestination = localhost.$mydomain, localhost, localhost.localdomain
* указываем, для каких доменов принимаем входящую почту.
local_recipient_maps = unix:passwd.byname $alias_maps
* указываем, откуда брать список локальных пользователей.
* разрешаем отправлять сообщения локальному серверу.
* необходимо убедиться, что postfix будет слушать на всех необходимых интерфейсах, в данном случае, на всех (all). Также можно задать варианты loopback-only (127.0.0.1) или конкретный IP-адрес интерфейса.
* данный параметр задаст протокол для работы postfix. В данном примере на всех (all). Также можно задать значения ipv4 или ipv6.
Если имя сервера отличается от имени, по которому сервер будет зарегистрирован в DNS, задаем опцию:
Теперь в конец конфигурационного файла допишем следующее:
virtual_mailbox_base = /home/mail
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1024
virtual_uid_maps = static:1024
virtual_gid_maps = static:1024
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_tls_cert_file = /etc/ssl/mail/public.pem
smtpd_tls_key_file = /etc/ssl/mail/private.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_helo_required = yes
- virtual_mailbox_base — базовый путь хранения почтовых ящиков в системе UNIX.
- virtual_alias_maps — формат и путь хранения алиасов для виртуальных пользователей.
- virtual_mailbox_domains — формат и путь хранения доменов виртуальных пользователей.
- virtual_mailbox_maps — формат и путь хранения почтовых ящиков для виртуальных пользователей.
- virtual_minimum_uid — с какого номера присваивать идентификаторы пользователям.
- virtual_uid_maps — идентификатор пользователя, от которого записываются сообщения.
- virtual_gid_maps — идентификатор группы, от которой записываются сообщения.
- virtual_transport — задает доставщика сообщений.
- dovecot_destination_recipient_limit — передача сообщений от Postfix в Dovecot выполняется по заданному количеству (в нашем примере, по 1 шт.).
- smtpd_sasl_auth_enable — разрешает sasl аутентификацию.
- smtpd_sasl_exceptions_networks — исключение сетей от использования шифрования.
- smtpd_sasl_security_options — дополнительные опции настройки sasl.
- broken_sasl_auth_clients — эту опцию прописываем для клиентов MS Outlook.
- smtpd_sasl_type — указывает тип аутентификации.
- smtpd_sasl_path — путь до временных файлов обмена информацией с Dovecot. Указывается либо абсолютный путь, либо относительный queue_directory (по умолчанию /var/spool/postfix). Итого, полный путь — /var/spool/postfix/private/auth.
- smtpd_tls_cert_file — полный путь до публичного сертификата.
- smtpd_tls_key_file — полный путь до приватного сертификата.
- smtpd_use_tls — указывает клиентам на наличие поддержки TLS.
- smtpd_tls_auth_only — использовать только TLS.
- smtpd_helo_required — требовать начинать сессию с приветствия.
Создаем файл с настройками обращения к базе с алиасами:
user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address=’%s’ AND active = ‘1’
* где user и password — логин и пароль для подключения к MySQL; hosts — имя сервера баз данных (в нашем случае, локальный сервер); dbname — имя базы данных; query — шаблон запроса к данным.
Создаем файл с инструкцией получения данных по виртуальным доменам:
user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain=’%u’
И файл с почтовыми ящиками:
user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,’/’,maildir) FROM mailbox WHERE username=’%s’ AND active = ‘1’
Открываем файл master.cf и дописываем в самый конец:
submission inet n — n — — smtpd
-o smtpd_tls_security_level=may
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=/var/spool/postfix/private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
smtps inet n — n — — smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot unix — n n — — pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d $
* необходимо убедиться, что в содержимом файла нет других раскомментированных опций для submission, smtps и dovecot (по умолчанию, их нет). В данном случае, мы настроили работу postfix на портах 25, 465 и 587. В файле master.cf мы настраиваем работу вспомогательных сервисов для Postfix. Описание каждого сервиса начинается с новой строки без отступа. Затем идут настройки для сервиса и параметры запуска. Для примера, рассмотрим первую добавленную строку —
submission inet n — n — — smtpd:
- submission — имя сервиса. Возможно использование заранее определенных в postfix служб или создание своих. В данном примере submission для подключения MUA по порту 587 при отправке почты.
- inet — тип обслуживания. Возможны варианты inet (сокет TCP/IP), unix (потоковый сокет), unix-dgram (сокет дейтаграммы), fifo (именованный канал очереди), pass (потоковый сокет UNIX-домена).
- первый «n» — является ли сервис частным и должен быть ограниченным. Возможны варианты y или n. Для типа обслуживания inet может быть только n.
- первый «-« — работает ли служба с правами root. Возможны варианты y, n и —. Прочерк означает неприменимость данного параметра к конкретному сервису.
- второй «n» — должна ли служба работать в окружении chroot. Возможны варианты y или n.
- второй «-« — через какое время в секундах пробудить службу, если она неактивна.
- третий «-« — максимальное количество одновременно выполняемых процессов, которые может запустить данный сервис.
- smtpd — выполняемая команда.
* после команды идут аргументы ее запуска. Они могут переопределять параметры, заданные в main.cf. Каждый аргумент записывается с новой строки и начинается с двух пробелов. В данном примере мы используем слудующие аргументы:
- smtpd_tls_security_level — задает уровень безопасности с применением TLS. В данном примере may говорит о возможности его использования.
- smtpd_sasl_auth_enable — разрешает sasl аутентификацию.
- smtpd_sasl_type — указывает тип аутентификации.
- smtpd_sasl_path — путь до временных файлов обмена информацией с сервером хранения почты (в нашем случае Dovecot). Указывается либо абсолютный путь, либо относительный queue_directory.
- smtpd_sasl_security_options — дополнительные опции настройки sasl.
- smtpd_sasl_local_domain — добавить домен для пользователей, которые проходят smtp-аутентификацию.
- syslog_name — префикс названия службы при занесении ее в системный журнал.
- smtpd_tls_wrappermode — запускать ли службу в нестандартном режиме (для поддержки TLS).
- smtpd_client_restrictions — настройки ограничения клиентских соединений. В данном примере разрешить только авторизованных.
systemctl restart postfix
5. Настройка Dovecot
Устанавливаем Dovecot с компонентом для работы с СУБД:
Источник