Назад в блог

Руководство по настройке почтового сервера: как использовать Postfix, Dovecot, MySQL и SpamAssassin

Руководство по настройке почтового сервера: как использовать Postfix, Dovecot, MySQL и SpamAssassin

Введение

На Ubuntu 20.04, вы можете использовать такие инструменты, как Postfix, Dovecot, MySQL, и SpamAssassin для настройки почтового сервера. Этот процесс может показаться сложным для тех, кто делает это впервые. Это руководство призвано упростить для вас процесс настройки почтового сервера с помощью подробных шагов. В конце этого руководства вы узнаете, как добавлять виртуальные домены, пользователей и псевдонимы. В конечном итоге вы сделаете свой виртуальный сервер более защищенным от спам-хабов.

Предварительные требования

Прежде чем приступить к настройке почтового сервера, необходимо выполнить некоторые предварительные требования. Во-первых, убедитесь, что у вашего виртуального частного сервера есть домен, который перенаправляет запросы на ваш сервер. Вам также необходимо установить и настроить MySQL. Кроме того, вам необходимо иметь пользователя с предоставленными правами root и установить SSL-сертификат. Наконец, убедитесь, что ваш FQDN  настроен и идентифицирован.

Если вы устанавливаете пакеты от имени пользователя root, вы будете обладать всеми привилегиями. Вот почему мы рекомендуем это:

Введите пароль вашего пользователя. В этот момент вы увидите, что символ $ изменился на #. Далее давайте по очереди рассмотрим различные аспекты конфигурации.

Шаг 1: Установка пакетов

Мы начнем с изучения того, как устанавливать пакеты:

Когда появится окно настройки Postfix, выберите Internet Site:

Mail Server postfix config

Вас спросят об имени System mail. Здесь вы можете использовать FQDN или основной домен:

postfix configuration 2

Шаг 2: Создание базы данных MySQL, виртуальных доменов, пользователей и псевдонимов

Далее, после установки всех пакетов, мы перейдем к настройке. Наша цель — настроить три таблицы. Одна будет для доменов, одна для пользователей и одна для псевдонимов. Они будут размещены в базе данных MySQL, которую мы создадим.

Допустим, мы хотим назвать нашу базу данных servermail. Вы можете использовать любое имя по вашему выбору. Вот как мы ее создадим:

Вам необходимо войти в систему как пользователь root в MySQL:

Затем введите свой пароль. В случае успешной попытки вы увидите следующий результат:

Далее мы создадим нового пользователя специально для аутентификации почты. Предоставьте разрешение SELECT следующим образом:

После этого перезагрузите привилегии MySQL, чтобы успешно применить разрешения:

Далее мы будем использовать нашу базу данных для создания таблиц и ввода данных:

Мы создадим отдельные таблицы для конкретных доменов, которые признаны авторизованными доменами:

Цель состоит в том, чтобы добавить пользователей в таблицу. Следовательно, мы будем добавлять соответствующий адрес электронной почты и пароль. Имейте в виду, что вам необходимо связать каждого пользователя с доменом:

Затем мы создадим таблицу для всех наших виртуальных алиасов, чтобы указать все адреса электронной почты, которые мы будем перенаправлять на другой адрес:

К концу этого процесса вы успешно создадите три таблицы. Далее нам нужно ввести данные.

  • Виртуальные домены

В этом разделе мы узнаем, как вводить домены в virtual_domains таблицу. В частности, мы сосредоточимся на том, как ввести основной домен (example.com) и FQDN (hostname.example.com):

  • Виртуальные почтовые ящики

Затем введите адрес электронной почты и связанные с ним пароли для каждого из доменов. Убедитесь, что вся информация заменена на ваши конкретные данные:

  • Виртуальные алиасы

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

Затем вы можете выйти из MySQL:

Шаг 3: Настройка Postfix

Важно настроить Postfix так, чтобы он мог управлять SMTP-соединениями. Он также должен иметь возможность отправлять сообщения для всех пользователей, внесенных в базу данных MySQL. Начнем с создания копии файла по умолчанию. Это необходимо для того, чтобы вы могли легко вернуться к конфигурации по умолчанию в случае необходимости:

Теперь откройте файл main.cf для его изменения:

Начните с комментирования параметров TLS, а затем добавьте любые другие параметры. В нашем примере мы используем бесплатные SSL-сертификаты. Вы, конечно, можете изменить конфигурацию в соответствии со своими требованиями:

Затем вы добавите эти параметры под настройками TLS:

После этого нам нужно закомментировать mydestination настройки по умолчанию. Затем мы заменим их на localhost. Благодаря этому изменению VPS сможет использовать виртуальные домены из таблицы MySQL:

Теперь используйте эту команду, чтобы убедиться, что параметр myhostname настроен в вашем FQDN:

Кроме того, добавьте эту строку, чтобы активировать локальную доставку почты для всех виртуальных доменов, указанных в таблице:

Наконец, мы добавим следующие параметры, чтобы указать Postfix настроить виртуальные домены, пользователей и псевдонимы:

Чтобы убедиться в отсутствии ошибок, сравните эти изменения со следующим файлом:

https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt

После того как все это будет проверено, вы создадите три файла для добавления в main.cf файл. Цель здесь — дать Postfix инструкции по подключению к MySQL. Для этого мы начнем с создания mysql-virtual-mailbox-domains.cf файла. Конечно, в своем файле вы внесете изменения в соответствии с вашей личной конфигурацией:

Затем перезапустите Postfix:

Вы должны убедиться, что Postfix может найти ваш домен. Чтобы протестировать это, используйте следующую команду:

В случае успеха команда вернет 1. В этом случае вы можете перейти к созданию mysql-virtual-mailbox-maps.cf файла:

Снова перезапустите Postfix:

Снова убедимся, что Postfix может найти первый адрес электронной почты. Для проверки используйте следующую команду:

В случае успеха вы получите в ответ 1. Таким образом, мы перейдем к созданию последнего файла:

На этом настройка между Postfix и MySQL завершена. Перезапустите Postfix, чтобы применить изменения:

Чтобы убедиться, что Postfix действительно находит ваши алиасы, используйте эту команду:

В идеале в качестве вывода вы должны получить письмо, перенаправленное на алиас. Вы также можете изменить /etc/postfix/master.cf файл следующим образом, если вы хотите безопасно подключить порт 587 к почтовым клиентам:

Вот как раскомментировать определенные строки и добавить параметры:

Иногда может потребоваться перезапустить Postfix, чтобы убедиться, что порт открыт:

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

Шаг 4: Настройка Dovecot

Теперь пришло время настроить Dovecot. В этом разделе нам придется скопировать 7 файлов, которые вы хотите изменить. Это необходимо для того, чтобы вы могли вернуться к исходному состоянию при необходимости. Вводите эти команды по одной:

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

Убедитесь, что эта опция раскомментирована:

Далее мы включим протоколы под строкой !include_try /usr/share/dovecot/protocols.d/*.protocol . При желании вы также можете добавить pop3:

Чтобы исключить ошибки, сравните его с этим файлом:

https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt

Далее отредактируйте файл конфигурации почты:

Найдите строку mail_location . Вам нужно раскомментировать ее и добавить этот параметр:

После этого найдите строку mail_privileged_group . Снова раскомментируйте ее и добавить параметр mail:

Чтобы исключить любую возможность ошибок, сравните его с этим файлом:

https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-mail.conf.txt

  • Проверка прав доступа

Чтобы проверить права доступа, используйте эту команду:

Убедитесь, что ваши права доступа выглядят следующим образом:

Вы можете создать папку для каждого домена. Все эти папки будут зарегистрированы в таблице MySQL:

Создайте пользователя и группу vmail, используя ID 5000:

Затем необходимо изменить владельца папки /var/mail на пользователя vmail:

Теперь отредактируйте файл /etc/dovecot/conf.d/10-auth.conf :

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

Используйте это для изменения параметра auth_mechanisms :

Теперь закомментируйте эту строку:

Чтобы включить авторизацию MySQL, вам нужно раскомментировать следующую строку:

Для обнаружения и исправления ошибок используйте следующий файл:

https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txt

Создание файла /etc/dovecot/dovecot-sql.conf.ext с вашей информацией позволит вам пройти аутентификацию:

Введите этот код в файл:

Мы будем использовать нашу собственную информацию MySQL для изменения файла /etc/dovecot/dovecot-sql.conf.ext :

Установите MySQL в качестве параметра после раскомментирования параметра driver следующим образом:

Вы можете ввести свою специфическую информацию MySQL, раскомментировав строку connect :

Теперь вам нужно раскомментировать строку default_pass_scheme и изменить ее на SHA-512:

Добавьте следующую информацию после раскомментирования password_query:

Для обнаружения ошибок используйте этот файл для сравнения:

https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txt

Затем вы можете изменить владельца и группу папки dovecot на пользователя vmail:

Следующим шагом является изменение файла /etc/dovecot/conf.d/10-master.conf . Здесь нужно быть предельно осторожным, так как будут изменены различные параметры:

Используйте следующий код, чтобы изменить параметр unix_listener на service_auth:

Затем вам нужно отредактировать service auth-рабочий процесс следующим образом:

Обнаружьте ошибки, сравнив с этим файлом:

https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt

Следующим шагом будет изменение конфигурационного файла SSL от Dovecot. Если вы планируете использовать конфигурацию по умолчанию, вы можете пропустить этот шаг и перейти к следующему разделу:

Затем измените параметр ssl на required следующим образом:

Мы также изменим путь как для ssl_cert , так и для ssl_key:

Перезапустите Dovecot:

Обязательно убедитесь, что порт 993 открыт. Если вы включили pop3, то также проверьте порт 995:

Если вы выполнили все шаги до этого момента, поздравляем! Вы успешно настроили свой почтовый сервер. Чтобы убедиться, что вы все сделали правильно, вы можете протестировать свою учетную запись с помощью почтового клиента следующим образом:

Порт 993 используется для безопасного IMAP, а порт 587/порт 25 для SMTP.

Шаг 5. Настройка SpamAssassin

Наконец, мы подошли к последнему разделу руководства, в котором мы настроим SpamAssassin. Начнем с установки SpamAssassin:

Создайте пользователя для SpamAssassin следующим образом:

Чтобы настроить SpamAssassin, необходимо открыть и изменить параметры конфигурации:

Теперь вам нужно изменить параметр ENABLED для включения демона SpamAssassin:

Измените параметры home и options с помощью этого кода:

Используйте эту строку, чтобы указать параметр PID_File :

Затем используйте эту команду, чтобы указать, что правила SpamAssassin будут обновляться автоматически:

Проверьте на наличие ошибок, сравнив со следующим документом:

https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt

Если вы хотите настроить правила защиты от спама, вам необходимо снова открыть файл /etc/spamassassin/local.cf :

Принцип работы SpamAssassin заключается в том, что он оценивает каждое письмо, полученное пользователем. Он выставляет оценки для писем, и если при проверке на спам оценка превышает 5.0, письмо помечается как спам. Вот параметры, которые вы можете использовать для настройки этих правил защиты от спама:

После настройки правил защиты от спама вам необходимо указать Postfix, что каждое электронное письмо должно проверяться с помощью SpamAssassin. Для этого нам нужно изменить /etc/postfix/master.cf файл:

Найдите следующую строку и добавьте spamassassin фильтр:

Теперь вы можете добавить эти параметры:

Наконец, запустите SpamAssassin и перезапустите Postfix, чтобы применить изменения. После перезапуска Postfix начнет проверять электронную почту на наличие спама:

Вот и все! Вы успешно настроили свой почтовый сервер с помощью Postfix и Dovecot. Вы также настроили аутентификацию MySQL и фильтрацию спама с помощью SpamAssassin.

Заключение

В этом руководстве описаны шаги, которые необходимо выполнить для настройки почтового сервера с помощью вышеупомянутых инструментов. Его можно использовать как подробное руководство для самостоятельной настройки почтового сервера. Если вас интересует использование функции SMTP-сервера Google, следуйте этому руководству.

Приятной работы!

author

Pranay Kapgate

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.