Автор ХостМастерНа чтение 32 минПросмотров10Опубликовано
I already showed you how to setup your own email server on Ubuntu using Postfix and Dovecot. We also added Roundcube to our setup to have web interface for our mailing solution.
Postfix is a Mail Transfer Agent(MTA) for routing and delivering electronic mail(email). Dovecot is a secure IMAP and POP3 Mail Delivery Agent(MDA). These two open-source applications work well with Roundcube, an email client primarily famous for its clever use of Ajax technology. In this guide, you’ll install Postfix, Dovecot, and Roundcube on Ubuntu 20.04. This guide uses the domain example.com and the server name mail.example.com .
Before we begin
You need functional LAMP stack, I already wrote about that , so make sure you prepare it.
You also need functioning email server on Ubuntu 20.04. I already wrote about that too, and you can find all the details on my blog.
Also, you will need ssl certificates ( described in my email server guide ) for this guide.
You will also need postfix A record in your DNS (0.123.456.789 represents IP address)
I’m doing all of this on my email server which has Postfix, Dovecot and Roundcube on it.
Ok, lets start
SMTP (Simple Mail Transfer Protocol) — простой протокол передачи почты.
POP3 (Post Office Protocol Version 3) — протокол почтового отделения, версия 3.
IMAP (Internet Message Access Protocol) — протокол доступа к почте в Интернете.
MTA (Mail Transfer Agent) — агент пересылки почты.
MUA (Mail user agent) — почтовый агент пользователя (почтовый клиент);
Sieve — язык описания правил фильтрации для почтовых сообщений.
В современном мире электронная почта является далеко не последним средством коммуникации, только представьте себе, сколько людей сегодня имеет собственный почтовый адрес, а сколько электронных сообщений пересылается в мире только за один час. Данная технология используется практически повсюду, начиная от персонального использования, заканчивая использованием на корпоративном и государственном уровнях.
В данной статье описан процесс настройки почтовой системы на базе операционной системы Ubuntu Linux и программного обеспечения Exim, Dovecot, Roundcube. Здесь я не буду рассказывать про основы работы электронной почты, поскольку предполагается, что читатель уже знаком с основными терминами и понятиями, а также знает какие службы отвечают за работу той или иной части электронной почты (имеется ввиду MTA, MDA, MUA). Очень полезным и даже необходимым будет прочтение документов, описывающих протоколы SMTP, POP3, IMAP (это тот базис, который любой уважающий себя админ почтовых систем должен знать). Перевод данных документов будет не сложно найти на просторах Интернета.
В будущей конфигурации почтового сервера предполагается, что Exim занимается только передачей электронных сообщений, а Dovecot работает непосредственно с почтовыми ящиками пользователей. Взаимодействие Exim и Dovecot организовано через программу LDA, входящую в состав пакета Dovecot. Защита от спама будет реализована средствами Exim, о методике защиты будет подробно рассказано в соответствующем разделе. К Dovecot будет подключен плагин Sieve, который позволит пользователям создавать собственные фильтры. Доступ к почтовым ящикам и управление ими, а также управление пользовательскими фильтрами будет организовано с помощью веб интерфейса Roundcube. Задача хранения всей служебной информации будет возложена на систему управления базами данных PostgreSQL.
В современном мире электронная почта является далеко не последним средством коммуникации, только представьте себе, сколько людей сегодня имеет собственный почтовый адрес, а сколько электронных сообщений пересылается в мире только за один час. Данная технология используется практически повсюду, начиная от персонального использования, заканчивая использованием на корпоративном и государственном уровнях.
В данной статье описан процесс настройки почтовой системы на базе операционной системы Ubuntu Linux и программного обеспечения Exim, Dovecot, Roundcube. Здесь я не буду рассказывать про основы работы электронной почты, поскольку предполагается, что читатель уже знаком с основными терминами и понятиями, а также знает какие службы отвечают за работу той или иной части электронной почты (имеется ввиду MTA, MDA, MUA). Очень полезным и даже необходимым будет прочтение документов, описывающих протоколы SMTP, POP3, IMAP (это тот базис, который любой уважающий себя админ почтовых систем должен знать). Перевод данных документов будет не сложно найти на просторах Интернета.
В будущей конфигурации почтового сервера предполагается, что Exim занимается только передачей электронных сообщений, а Dovecot работает непосредственно с почтовыми ящиками пользователей. Взаимодействие Exim и Dovecot организовано через программу LDA, входящую в состав пакета Dovecot. Защита от спама будет реализована средствами Exim, о методике защиты будет подробно рассказано в соответствующем разделе. К Dovecot будет подключен плагин Sieve, который позволит пользователям создавать собственные фильтры. Доступ к почтовым ящикам и управление ими, а также управление пользовательскими фильтрами будет организовано с помощью веб интерфейса Roundcube. Задача хранения всей служебной информации будет возложена на систему управления базами данных PostgreSQL.
Агент пересылки почты Exim
В моей конфигурации предполагается использование антивируса ClamAV. Про его установку здесь я писать не буду, но может быть, потом вынесу это дело в отдельную статью. В общем, там нет ничего сложного: залезть в порты, установить, подправить конфигурационный файл под себя, обновить базы и запустить. Если вам антивирус не нужен, то закомментируйте ответственные за сканирование почты строки в конфиге.
Хочу отметить, что не маловажным при конфигурировании почтового сервера будет использование таких технологий, как SPF и DKIM. Поскольку такие почтовики, как yandex, gmail и другие гиганты очень сильно не доверяют хостам, не имеющих даже той же записи SPF. Например, пока я не настроил на своих серверах DKIM, почтовик гугла помечал все письма с моих серверов как спам и размещал их в соответствующей папке у пользователей.
# aptitude install exim4 exim4-daemon-heavy
Конфигурационный файл Exim распологается здесь — /etc/exim4/exim4.conf.template. Файл очень большой, но при желании его можно разбить на небольшие и отвечающие за определенный функционал файлы, как например, это сделали во второй версии Dovecot (смотрите в документации Exim директиву include). У меня конфигурационный файл имеет следующий вид:
Содержимое файла /etc/exim4/extra/dynamic_pools:
Выше я говорил, что записи из таблиц (необходимых для работы серого списка) подчищаются скриптом, который у меня запускается раз в день. Собственно, вот код этого скрипта (для его работы необходим установленный модуль p5-DBD-Pg):
Запуск и проверка конфигурации
Теперь можно запустить сервис:
# service exim4 start
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 15760/exim4
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 15760/exim4
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 15760/exim4
Если сервис не запустился, то смотрите логи (которые распологаются в /var/log/exim4) и ищите проблему. Теперь проверим работоспособность сервиса, для этого подключимся telnet,ом к серверу и сымитируем обычную SMTP сессию. Не забываем, что перед проверкой работы сервиса необходимо создать пару почтовых ящиков в базе данных.
Посмотрим теперь на записи в логах:
2013-02-24 01:09:28 1U9KRy-000M9i-7F Completed
Из логов видно, что почта ходит нормально, то есть отправляется и принимается. На этом шаге настройку MTA Exim можно считать завершенной. Также можно сказать, что у нас уже есть готовая почтовая система, которой могут пользоваться зарегистрированные пользователи. Напоследок стоит отметить, что не будет лишним проверить почтовый сервер на возможность использования его как открытого релея. Сервисов могущих помочь в этом сейчас довольно много в интернете.
Earlier, if you configured email server with my guide, we configured mail_location to use maildir.
mail_home = /var/vmail/%d/%n/
I mentioned this part also in my email guide, but now, we need it, so make sure it is enabled and configured.
Save and close
We now need to edit 10-auth.conf file.
sudo nano /etc/dovecot/conf.d/10-auth.conf
auth_username_format = %u
!include auth-sql.conf.ext
#!include auth-system.conf.ext
auth_debug = yes
auth_debug_passwords = yes
Save and close file.
Ok, we now need to create and edit dovecot-sql.conf.ext file
sudo nano /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfixadmin user=postfixadmin password=password
default_pass_scheme = ARGON2I
password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1'
user_query = SELECT maildir, 2000 AS uid, 2000 AS gid FROM mailbox WHERE username = '%u' AND active='1'
iterate_query = SELECT username AS user FROM mailbox
sudo systemctl restart dovecot
Структура таблиц в базе данных
;
Таким образом добавляется домен, который будет обслуживать почтовый сервер. Далее необходимо посмотреть какой идентификатор (поле «id» таблицы «domains_tb») был присвоен новой записи. Он будет использоваться при добавлении синонимов и учетных записей пользователей. В данном случае пусть он будет равным единице.
Install & Configure Roundcube
To access Postfix and Dovecot servers, install Roundcube email client.
$ sudo apt install -y roundcube
Press ENTER to configure the database for use with Roundcube.
On the next screen, enter a MySQL password to use with Roundcube.
Press TAB and ENTER .
Repeat the same password then hit TAB and ENTER to continue.
Open your website SSL configuration file from the /etc/apache2/sites-enabled directory. Run the command below and replace example.com with your domain name.
The main.cf configuration file instructs postfix to look for email domains in the /etc/postfix/virtual_mailbox_domains file. Create the file:
$ sudo nano /etc/postfix/virtual_mailbox_domains
Add the information below to the file and replace example.com with your domain name.
example.com #domain
Use the postmap command to change /etc/postfix/virtual_mailbox_domains to a format recognizable by Postfix. Run this command every time you edit the file, for instance, after adding more domains to the file.
user = postfixadmin
password = password
hosts = localhost
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
#query = SELECT domain FROM domain WHERE domain='%s'
#optional query to use when relaying for backup MX
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
#expansion_limit = 100
Next, we will create mysql_virtual_mailbox_maps.cf
user = postfixadmin
password = password
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100
В моей конфигурации предполагается использование антивируса ClamAV. Про его установку здесь я писать не буду, но может быть, потом вынесу это дело в отдельную статью. В общем, там нет ничего сложного: залезть в порты, установить, подправить конфигурационный файл под себя, обновить базы и запустить. Если вам антивирус не нужен, то закомментируйте ответственные за сканирование почты строки в конфиге.
Хочу отметить, что не маловажным при конфигурировании почтового сервера будет использование таких технологий, как SPF и DKIM. Поскольку такие почтовики, как yandex, gmail и другие гиганты очень сильно не доверяют хостам, не имеющих даже той же записи SPF. Например, пока я не настроил на своих серверах DKIM, почтовик гугла помечал все письма с моих серверов как спам и размещал их в соответствующей папке у пользователей.
# aptitude install exim4 exim4-daemon-heavy
Конфигурационный файл Exim распологается здесь — /etc/exim4/exim4.conf.template. Файл очень большой, но при желании его можно разбить на небольшие и отвечающие за определенный функционал файлы, как например, это сделали во второй версии Dovecot (смотрите в документации Exim директиву include). У меня конфигурационный файл имеет следующий вид:
Содержимое файла /etc/exim4/extra/dynamic_pools:
Выше я говорил, что записи из таблиц (необходимых для работы серого списка) подчищаются скриптом, который у меня запускается раз в день. Собственно, вот код этого скрипта (для его работы необходим установленный модуль p5-DBD-Pg):
Запуск и проверка конфигурации
Теперь можно запустить сервис:
# service exim4 start
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 15760/exim4
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 15760/exim4
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 15760/exim4
Если сервис не запустился, то смотрите логи (которые распологаются в /var/log/exim4) и ищите проблему. Теперь проверим работоспособность сервиса, для этого подключимся telnet,ом к серверу и сымитируем обычную SMTP сессию. Не забываем, что перед проверкой работы сервиса необходимо создать пару почтовых ящиков в базе данных.
Посмотрим теперь на записи в логах:
2013-02-24 01:09:28 1U9KRy-000M9i-7F Completed
Из логов видно, что почта ходит нормально, то есть отправляется и принимается. На этом шаге настройку MTA Exim можно считать завершенной. Также можно сказать, что у нас уже есть готовая почтовая система, которой могут пользоваться зарегистрированные пользователи. Напоследок стоит отметить, что не будет лишним проверить почтовый сервер на возможность использования его как открытого релея. Сервисов могущих помочь в этом сейчас довольно много в интернете.
Check database
sudo mysql -u root
We will now change to postfix database
USE postfixadmin;
Let’s see created tables
SHOW TABLES;
There should be 13 tables, most important are – domain, mailbox and alias.
To logout of MariaDB, enter
EXIT;
Веб интерфейс Roundcube
Roundcube — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на языке PHP с использованием CSS и XHTML и технологии AJAX. Roundсube предоставляет возможность работы с почтовыми ящиками по протоколам IMAP и SMTP. Для хранения своей служебной информации может использовать любую поддерживаемую базу данных (PostgreSQL, MySQL и т.д.). Позволяет подключать адресную книгу, хранящуюся в LDAP, а также возможно ведение своей адресной книги для каждого пользователя отдельно.
В данной конфигурации Roundcube используется, как основное средство доступа к почтовым ящикам и управления ими для пользователей почтовой системы. Roundcube имеет интерфейс для написания собственных плагинов, расширяющих его функциональность, что может оказаться очень полезным при необходимости. Также хорошим моментом является то, что в нем имеется плагин для управления фильтрами Sieve, совместимый с Dovecot.
Установка Roundcube ничем не отличается от установки другого софта. При необходимости его можно установить руками в удобное для вас место, скачав дистрибутив с официального сайта.
После установки Roundcube необходимо создать базу данных, создать пользователя и дать ему права на созданную ранее базу данных. Далее необходимо создать структуру таблиц в базе данных, взять ее для своей базы данных можно в папке SQL (смотреть файл db.initial.sql, где db — ваша СУБД).
Конфигурационные файлы Roundcube находятся в папке «config», относительно корня установки. Настройка Roundcube заключается в правке двух конфигурационных файлов: main.inc.php — основной конфигурационный файл и db.inc.php — здесь указываются параметры доступа к базе данных. Стоит отметить, что при использовании некоторых плагинов, может потребоваться правка конфигурационных файлов этих плагинов.
В файле db.inc.php я поправил всего одну строчку:
Проверка работоспособности Roundcube заключается попыткой подключения к какому-нибудь почтовому ящику. Если что-то не работает, то смотрите в логи веб сервера или куда у вас там PHP выводит отладочные сообщения. Для примера приведу пару скриншотов рабочего интерфейса (жмякните на картинку, чтобы увеличить ее):
В SPF записи мы указываем какие сервера имеют право отправлять почту с вашего домена. В самом простом случае эта запись выглядит следующим образом:
mydomain.ru. I N TXT "v=spf1 a mx ~all"
или/и (если NS позволяет создавать SPF записи)
mydomain.ru. I N SPF "v=spf1 a mx ~all"
Т.е. отправлять почту имеют право сервер с DNS записью в секции «a» и почтовый сервер в секции «mx».
DKIM необходим для массовых рассылок и отправки автоматических писем с сайта. Без наличия этой технологии спам фильтры Gmail не пропускают письма, отправленные скриптами. Для того чтобы Exim оправлял письма, подписанные ключем DKIM, необходимо поставить дополнительную утилиту OpenDKIM. Ранее использовалась утилита dkim-filter, разработчики прекратили ее поддержку.
aptitude install opendkim opendkim-tools
Генерируем ключи и настраиваем OpenDKIM и DNS записи
Для начала нужно сгенерировать пару ключей — внешний и внутренний. Внешний будет храниться в DNS записях, а внутренний – на сервере.
/var/db/opendkim — директория, где будут лежать ключи <domain.name> — доменное имя (example.com) selector — указываем селектор, (например, mail). Селектор будет использоваться в DNS записи и указываться в настройке транспортов exim`а.
В нашем случае пишем следующее:
opendkim-genkey -D /var/db/opendkim -d example.com -s mail
Итак, создается два файла — mail.txt (mail — выбранный нами селектор) и mail.private. Посмотрим их содержимое:
Содержимое файла mail.txt добавим в DNS зону example.com, причем вот в таком виде (скобки и кавычки нужно удалить):
Советуют еще добавить вот такую DNS запись:
_adsp._domainkey.example.com IN TXT "dkim=unknown"
Дальше на файл mail.private устанавливаем права, чтобы его мог прочитать exim и только он. В нашем случае вот так:
chown mailnull:mail /var/db/opendkim/mail.private
chmod 600 /var/db/opendkim/mail.private
Добавим в config файле opendkim путь к mail.private. Покажу пример моего config:
Так как мы настраивали подпись только к одному домену, то сложностей не возникло.
C opendkim`ом закончили. Перейдем к настройке Exim.
Поправим секцию transports: Находим begin transports и сразу же ниже добавляем:
DKIM_FILE = /var/db/opendkim/mail.private #- важно!!!! Пишем путь к приватному ключу
driver = smtp
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = mail # - выбранный нами селектор.
dkim_private_key = DKIM_PRIVATE_KEY
Exim запустился, делаем пробную отправку письма.
После успешного запуска DKIM в оригинале письма появится следующая запись:
Received: from example by xxx.freehost.com.ua with local (Exim 4.80.1 (FreeBSD))
Если запись не появилась – DKIM не запустился.
Веб интерфейс Roundcube
Roundcube — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на языке PHP с использованием CSS и XHTML и технологии AJAX. Roundсube предоставляет возможность работы с почтовыми ящиками по протоколам IMAP и SMTP. Для хранения своей служебной информации может использовать любую поддерживаемую базу данных (PostgreSQL, MySQL и т.д.). Позволяет подключать адресную книгу, хранящуюся в LDAP, а также возможно ведение своей адресной книги для каждого пользователя отдельно.
В данной конфигурации Roundcube используется, как основное средство доступа к почтовым ящикам и управления ими для пользователей почтовой системы. Roundcube имеет интерфейс для написания собственных плагинов, расширяющих его функциональность, что может оказаться очень полезным при необходимости. Также хорошим моментом является то, что в нем имеется плагин для управления фильтрами Sieve, совместимый с Dovecot.
Установка Roundcube ничем не отличается от установки другого софта. При необходимости его можно установить руками в удобное для вас место, скачав дистрибутив с официального сайта.
После установки Roundcube необходимо создать базу данных, создать пользователя и дать ему права на созданную ранее базу данных. Далее необходимо создать структуру таблиц в базе данных, взять ее для своей базы данных можно в папке SQL (смотреть файл db.initial.sql, где db — ваша СУБД).
Конфигурационные файлы Roundcube находятся в папке «config», относительно корня установки. Настройка Roundcube заключается в правке двух конфигурационных файлов: main.inc.php — основной конфигурационный файл и db.inc.php — здесь указываются параметры доступа к базе данных. Стоит отметить, что при использовании некоторых плагинов, может потребоваться правка конфигурационных файлов этих плагинов.
В файле db.inc.php я поправил всего одну строчку:
Проверка работоспособности Roundcube заключается попыткой подключения к какому-нибудь почтовому ящику. Если что-то не работает, то смотрите в логи веб сервера или куда у вас там PHP выводит отладочные сообщения. Для примера приведу пару скриншотов рабочего интерфейса (жмякните на картинку, чтобы увеличить ее):
DKIM необходим для массовых рассылок и отправки автоматических писем с сайта. Без наличия этой технологии спам фильтры Gmail не пропускают письма, отправленные скриптами. Для того чтобы Exim оправлял письма, подписанные ключем DKIM, необходимо поставить дополнительную утилиту OpenDKIM. Ранее использовалась утилита dkim-filter, разработчики прекратили ее поддержку.
aptitude install opendkim opendkim-tools
Генерируем ключи и настраиваем OpenDKIM и DNS записи
Для начала нужно сгенерировать пару ключей — внешний и внутренний. Внешний будет храниться в DNS записях, а внутренний – на сервере.
/var/db/opendkim — директория, где будут лежать ключи <domain.name> — доменное имя (example.com) selector — указываем селектор, (например, mail). Селектор будет использоваться в DNS записи и указываться в настройке транспортов exim`а.
В нашем случае пишем следующее:
opendkim-genkey -D /var/db/opendkim -d example.com -s mail
Итак, создается два файла — mail.txt (mail — выбранный нами селектор) и mail.private. Посмотрим их содержимое:
Содержимое файла mail.txt добавим в DNS зону example.com, причем вот в таком виде (скобки и кавычки нужно удалить):
Советуют еще добавить вот такую DNS запись:
_adsp._domainkey.example.com IN TXT "dkim=unknown"
Дальше на файл mail.private устанавливаем права, чтобы его мог прочитать exim и только он. В нашем случае вот так:
chown mailnull:mail /var/db/opendkim/mail.private
chmod 600 /var/db/opendkim/mail.private
Добавим в config файле opendkim путь к mail.private. Покажу пример моего config:
Так как мы настраивали подпись только к одному домену, то сложностей не возникло.
C opendkim`ом закончили. Перейдем к настройке Exim.
Поправим секцию transports:
Находим begin transports и сразу же ниже добавляем:
DKIM_FILE = /var/db/opendkim/mail.private #- важно!!!! Пишем путь к приватному ключу
driver = smtp
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = mail # - выбранный нами селектор.
dkim_private_key = DKIM_PRIVATE_KEY
Exim запустился, делаем пробную отправку письма.
После успешного запуска DKIM в оригинале письма появится следующая запись:
Received: from example by xxx.freehost.com.ua with local (Exim 4.80.1 (FreeBSD))
Если запись не появилась – DKIM не запустился.
Структура таблиц в базе данных
;
Таким образом добавляется домен, который будет обслуживать почтовый сервер. Далее необходимо посмотреть какой идентификатор (поле "id" таблицы "domains_tb") был присвоен новой записи. Он будет использоваться при добавлении синонимов и учетных записей пользователей. В данном случае пусть он будет равным единице.
Агент доставки почты Dovecot
Dovecot - это свободный IMAP и POP3 сервер для Unix/Linux систем, при разработке которого безопасности уделяется много внимания. Также хорошими достоинствами данного сервера являются: быстрота, простота установки и малое потребление памяти. Основные особенности:
поддержка форматов почтовых ящиков mbox и Maildir;
высокое быстродействие благодаря индексации содержимого почтовых ящиков;
полное соответствие стандартам IMAP;
возможность работы с почтовыми язиками и их индексами с нескольких компьютеров, что позволяет хранить данные на кластерных файловых системах и NFS;
возможность расширения функционала с помощью плагинов;
поддержка Sieve;
поддержка различных хранилищ аутентификационной информации и режимов аутентификации;
Postfix и Exim могут проводить аутентификацию пользователей через Dovecot;
простота миграции с большинства других IMAP и POP3 серверов.
В данной конфигурации почтовой системы работа с почтовыми ящиками пользователй переложена полностью на Dovecot, что позволяет использовать фильтры на языке Sieve и вести Dovecot,у собственный индексный файл в каждом ящике для ускорения работы с ним.
Если сервис не запустился, то смотрите логи и ищите проблему. Теперь проверим работоспособность сервиса (достаточно будет проверить работоспособность сервиса по одному протоколу, например POP3), для этого подключимся telnet,ом к серверу и сымитируем обычную сессию пользователя. Не забываем, что перед проверкой необходимо создать почтовый ящик в базе данных.
# telnet server.name 110
+OK POP3/IMAP server ready.
+OK Logged in.
+OK 228 66786803
+OK Logging out.
Если имитация сессии пользователя прошла успешно, то настройку Dovecot можно считать завершенной. Если же возникли проблемы, то смотрите логи на предмет ошибок и исправляйте их.
Prerequisites
An Ubuntu 20.04 server configured with a Fully Qualified Domain Name (FQDN).
A LAMP stack with an SSL certificate installed. This guide uses a free Let's Encrypt certificate.
Verify the server's outbound port status
.
Installing PostfixAdmin on Ubuntu 20
First we will install dbconfig-no-thanks to prevent automatic db wizard.
sudo apt install dbconfig-no-thanks
sudo apt install postfixadmin
Теперь мы удалим dbconfig-no-thanks
sudo apt remove dbconfig-no-thanks
sudo dpkg-reconfigure postfixadmin
Метод подключения для MySQL – сокет Unix
Вам также потребуется подтвердить пароль
mysql -u postfixadmin -p
После входа в систему выдается команда показать базы данных
SHOW DATABASES;
EXIT;
sudo nano /etc/dbconfig-common/postfixadmin.conf
Изменить значение с mysql на mysqli
dbc_dbtype='mysqli'
Сохранить и выйти
sudo mkdir /usr/share/postfixadmin/templates_c
Теперь нам нужно установить некоторые разрешения
Но перед этим нам нужно установить пакет acl
sudo apt install acl
и теперь мы можем выполнить команду и предоставить права на www-data в папку templates_c.
Чтобы войти на сервер электронной почты с помощью Roundcube, введите указанный ниже URL-адрес и замените example.com с вашим доменным именем.
https://mail.example.com/mail
После входа в систему вы можете отправлять и получать электронные письма с панели управления Roundcube.
Добавление домена в PostfixAdmin
Перейдите в Список доменов и нажмите Добавить домен
Определите свой домен и нажмите «Добавить домен»
Если вы вернетесь к списку доменов, вы должны увидеть свой домен в списке
Теперь добавим новый почтовый ящик. Нажмите «Виртуальный список» — «Добавить почтовый ящик»
.
Я успешно вошел в новую созданную учетную запись через Roundcube. Вы также можете добавить эту учетную запись через почтовый клиент, я уже показывал эту часть в своем руководстве по настройке электронной почты.
Пробовал отправлять/получать электронные письма и другие функции, все работает хорошо.
Виртуальный хост Apache
Введите имя своего домена и при необходимости измените имя и путь к SSL-сертификатам!
Сохранить файл и выйти
Проверьте свою конфигурацию
Если все в порядке, перезапустите apache
Пока не открываем
наш веб-сайт, но теперь наша установка должна быть доступна по адресу
Мы создадим собственный файл настроек внутри config.local.php
Argon2 является важным параметром, он обеспечивает надежную схему пароля
Сохранить и закрыть файл
Теперь нам нужно перейти на (изменить informaticar.net на ваш домен)
Введите пароль для установки и нажмите «Создать хэш пароля»
Скопируйте эту строку в config.local.php
Сохраните и закройте файл.
Вернуться на страницу. Убедитесь, что ваш пароль состоит как минимум из одной заглавной буквы, двух цифр и специального знака.
Хорошо, мы закончили настройку.
Наш сайт входа теперь должен быть доступен по адресу
Мы в деле.
We are still not done with this setup, we have couple more steps to do.
Агент доставки почты Dovecot
Dovecot - это свободный IMAP и POP3 сервер для Unix/Linux систем, при разработке которого безопасности уделяется много внимания. Также хорошими достоинствами данного сервера являются: быстрота, простота установки и малое потребление памяти. Основные особенности:
поддержка форматов почтовых ящиков mbox и Maildir;
высокое быстродействие благодаря индексации содержимого почтовых ящиков;
полное соответствие стандартам IMAP;
возможность работы с почтовыми язиками и их индексами с нескольких компьютеров, что позволяет хранить данные на кластерных файловых системах и NFS;
возможность расширения функционала с помощью плагинов;
поддержка Sieve;
поддержка различных хранилищ аутентификационной информации и режимов аутентификации;
Postfix и Exim могут проводить аутентификацию пользователей через Dovecot;
простота миграции с большинства других IMAP и POP3 серверов.
В данной конфигурации почтовой системы работа с почтовыми ящиками пользователй переложена полностью на Dovecot, что позволяет использовать фильтры на языке Sieve и вести Dovecot,у собственный индексный файл в каждом ящике для ускорения работы с ним.
Если сервис не запустился, то смотрите логи и ищите проблему. Теперь проверим работоспособность сервиса (достаточно будет проверить работоспособность сервиса по одному протоколу, например POP3), для этого подключимся telnet,ом к серверу и сымитируем обычную сессию пользователя. Не забываем, что перед проверкой необходимо создать почтовый ящик в базе данных.
# telnet server.name 110
+OK POP3/IMAP server ready.
+OK Logged in.
+OK 228 66786803
+OK Logging out.
Если имитация сессии пользователя прошла успешно, то настройку Dovecot можно считать завершенной. Если же возникли проблемы, то смотрите логи на предмет ошибок и исправляйте их.
Цель данной статьи - оставить для себя память что и как я делал. Статья не претендует на авторство и большей частью представляет собой копипасту с изменениями и небольшими дополнениями. Все оригиналы использованных статей указаны в подвале.
Install & Configure Postfix
SSH to your server and install the Postfix server by running the command below.
Enter the information below to the new file. Replace example.com with your domain name throughout the file. Make sure the value of smtpd tls cert_file and smtpd tls key_file point to your SSL certificate.
Цель данной статьи - оставить для себя память что и как я делал. Статья не претендует на авторство и большей частью представляет собой копипасту с изменениями и небольшими дополнениями. Все оригиналы использованных статей указаны в подвале.
В SPF записи мы указываем какие сервера имеют право отправлять почту с вашего домена. В самом простом случае эта запись выглядит следующим образом:
mydomain.ru. I N TXT "v=spf1 a mx ~all"
или/и (если NS позволяет создавать SPF записи)
mydomain.ru. I N SPF "v=spf1 a mx ~all"
Т.е. отправлять почту имеют право сервер с DNS записью в секции «a» и почтовый сервер в секции «mx».