Назад в блог

Установка и настройка Postfix в качестве SMTP-сервера только для отправки на Ubuntu 20.04

Установка и настройка Postfix в качестве SMTP-сервера только для отправки на Ubuntu 20.04

Postfix — это популярное бесплатное программное обеспечение с открытым исходным кодом, выполняющее функции агента передачи почты (MTA). Задача Postfix — маршрутизация и доставка электронной почты. Помимо классического использования, Postfix также можно настроить для отправки писем только локальными приложениями.

Такое применение Postfix — полезный прием для развертывания в различных ситуациях. Например, его можно использовать при регулярной отправке уведомлений по электронной почте, работе со сторонним поставщиком услуг электронной почты с ограниченным исходящим трафиком и т. д. По сравнению с любым полноценным SMTP сервером, Postfix является более легкой альтернативой, которая в то же время сохраняет все необходимые функции.

В этом руководстве вы узнаете, как установить и настроить Postfix в качестве SMTP-сервера только для отправки на Ubuntu.

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

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

Установка Postfix

Как только предварительные условия будут выполнены, сервер готов к развертыванию Postfix. Самый простой способ установки Postfix — установить пакет mailutils. Он доступен напрямую из официальных репозиториев Ubuntu.

Сначала запустите терминал и обновите базу данных пакетов APT :

Package Update

Затем вы можете установить Postfix:

Install MailUtils

В процессе установки появится следующее окно конфигурации. Опция по умолчанию — Internet Site. Чтобы подтвердить выбор, нажмите TAB, чтобы переместить курсор в следующий раздел. Затем нажмите Enter:

Mail Server Config

На следующем шаге будет запрошено системное имя почты (System mail name). Это будет имя, присвоенное серверу во время создания. Как описано в скрипте, если почтовый адрес для локального хоста — «foo@example.org», то системным именем почты будет example.org:

Mail Name Config

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

Настройка Postfix

На этом шаге Postfix будет настроен на отправку и получение писем только от localhost. Для этого требуется, чтобы Postfix слушал интерфейс loopback. Это виртуальный сетевой интерфейс, который сервер использует для внутреннего взаимодействия. Затем откройте конфигурационный файл Postfix с помощью текстового редактора по вашему выбору:

Измените значение inet_interface на loopback-only:

Inet Interface

Еще одна директива, которую вам нужно изменить, — это mydestination. Она определяет список доменов, доставка на которые осуществляется через транспорт доставки почты local_transport . Значение по умолчанию будет примерно следующим:

Mydestination Old

Измените его значение на следующее:

Mydestination

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

Postfix Masquerade Domains

Чтобы изменения вступили в силу, перезапустите Postfix:

restart_postfix

Тестирование SMTP-сервера

Если процесс настройки прошел успешно, пришло время его протестировать. Для этого проверьте, может ли Postfix отправить электронное письмо на внешний почтовый ящик с помощью команды mail. Она является частью пакета mailutils :

Сообщение должно прийти на указанный адрес электронной почты. На данный момент все отправляемые письма не зашифрованы. Поставщики услуг обычно помечают такие письма как спам, поэтому обязательно проверьте папку со спамом.

Если mail сообщает об ошибке или письмо не пришло по истечении длительного времени, перепроверьте конфигурацию Postfix и убедитесь, что имя сервера и имя хоста настроены правильно. При такой конфигурации письма будут отправляться со следующего адреса:

Здесь username будет именем пользователя сервера, запустившего команду mail .

Пересылка системной почты

Мы успешно убедились, что почтовый сервер настроен правильно и работает. Теперь его необходимо настроить для пересылки почты для root. Все системные сообщения, отправленные на сервер, будут пересылаться на внешний адрес электронной почты. Для получателей писем файл /etc/aliases содержит список альтернативных имен. Откройте его с помощью любого текстового редактора:

По умолчанию он будет выглядеть следующим образом:

Postfix Aliases

В конце файла добавьте следующую строку:

Postfix Newaliases

Это указывает на то, что письма, отправленные на root, будут пересылаться на адрес электронной почты. Чтобы изменения вступили в силу, выполните следующую команду. Она перестроит базу данных псевдонимов, которую использует команда mail :

sudo newaliases

Затем вам нужно проверить, было ли изменение успешным. Отправьте тестовое письмо на root:

Письмо должно прийти на указанный адрес электронной почты. Не забудьте проверить папку со спамом, так как шифрование еще не настроено.

Включение шифрования SMTP

Отправка писем в незашифрованном виде — рискованный шаг. Для обеспечения безопасности необходимо включить шифрование SMTP. Для этого мы запросим бесплатный сертификат TLS от Let’s Encrypt для вашего домена.

Для Ubuntu эту задачу выполняет инструмент Certbot. К счастью, он доступен напрямую из официального репозитория Ubuntu. Установите Certbot с помощью следующей команды:

Postfix Install certbot

Если на сервере настроен UFW, необходимо открыть порт 80, чтобы можно было выполнить проверку домена. Выполните следующую команду, чтобы включить его:

ufw allow Postfix

Теперь запустите Certbot для генерации сертификата. Это даст команду Certbot выпустить сертификаты с 4096-битным ключом RSA. Проверка будет проходить через порт 80 (HTTP):

Вывод будет примерно следующим:

Ключ будет сохранен в следующем каталоге:

Теперь, когда ваш сертификат сгенерирован, откройте конфигурационный файл Postfix в текстовом редакторе:

Найдите раздел TLS параметры:

Postfix tls conf old

После этого измените значение директив smtpd_tls_cert_file и smtpd_tls_key_file:

Postfix tls conf

Затем сохраните и закройте файл. Чтобы изменения вступили в силу, перезапустите Postfix:

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

Теперь письмо должно отображаться как обычно, как и другие письма. Если вы проверите техническую информацию письма, оно будет зашифровано.

Заключительные мысли

Поздравляем! Вы успешно настроили почтовый сервер только для отправки на базе Postfix. Передача писем также защищена с помощью соответствующего ключа шифрования.

Другие способы оптимизации передачи электронной почты см. в этом руководстве Лучшие способы использования SMTP-сервера Google.

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

author

Pranay Kapgate

Автор · CloudSigma

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

Комментарии

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