Postfix relay настройка ubuntu

Обновлено: 06.07.2024

В этом руководстве мы установим и настроим Postfix как SMTP-сервер исходящей почты. Также мы расскажем, как запрашивать бесплатные сертификаты TLS от Let’s Encrypt и шифровать исходящие электронные письма с их помощью.

Требования

  • Сервер Ubuntu 20.04, настроенный по этому мануалу (включая пользователя с доступом к sudo).
  • Валидный домен (в мануале используется условный домен your_domain).
  • DNS- запись А для домена your_domain, указывающая на IP-адрес вашего сервера.

Примечание: Имя хоста сервера должно соответствовать этому домену или поддомену. Чтобы проверить имя хоста своего сервера, введите команду hostname. Вывод должен совпадать с именем сервера, которое он получил при создании.

1: Установка Postfix

Чтобы установить Postfix, а вместе с ним и ряд вспомогательных программ, необходимых для настройки почты, просто установите пакет mailutils.

Обновите индекс пакетов:

sudo apt update

А затем установите mailtuils:

sudo apt install mailutils

В конце установки будет предложено выбрать тип настройки.

Please select the mail configuration type that best meets your needs.
[…] General type of mail configuration:
No configuration
Internet site
Internet with smarthost
Satellite system
Local only

Рекомендуется выбрать стандартную опцию Internet site. Для этого нажмите Tab и Enter. Если вы видите только описательный текст, нажмите Tab, чтобы выбрать OK, а затем нажмите Enter.

Если диалоговое окно не запустилось автоматически, откройте его вручную:

sudo dpkg-reconfigure postfix

После этого программа предложит выбрать имя почты, которое определяется параметром System mail name.

The ‘mail name’ is the domain name used to ‘qualify’ _ALL_ mail addresses without a domain name.
[…] System mail name:

Поле System mail name должно совпадать с именем сервера, которое вы выбрали при его создании. Укажите имя, а затем нажмите Tab и Enter.

2: Настройка Postfix

Для этого Postfix должен прослушивать интерфейс loopback – это виртуальный сетевой интерфейс, который используется сервером для внутреннего взаимодействия. Откройте конфигурационный файл Postfix в текстовом редакторе:

sudo nano /etc/postfix/main.cf

Найдите там эти строки:

. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
. . .

Измените значение строки inet_interfaces на loopback-only.

. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
. . .

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

Вместо стандартного списка нужно использовать этот:

. . .
mydestination = localhost.$mydomain, localhost, $myhostname
. . .

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

Дополнительный параметр masquerade_domains указывает, для каких доменов нужно удалять часть поддомена в адресе электронной почты.

Сохраните и закройте файл.

Примечание: Если вы разместили несколько доменов в рамках одного сервера, остальные домены можно добавить в настройки Postfix с помощью директивы mydestination.

sudo systemctl restart postfix

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

echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

Обратите внимание, в этой конфигурации адрес в поле From для отправляемых вами тестовых электронных писем будет иметь вид your_user_name@your_domain, где your_user_name – это пользователь сервера, от имени которого вы запускали команду.

4: Пересылка почты

sudo nano /etc/aliases

Стандартный файл выглядит так:

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

Эта команда составит базу алиасов, которые использует команда mail.

echo "This is the body of the email" | mail -s "This is the subject line" root

5: Настройка SMTP-шифрования

Ubuntu включает Certbot в стандартный репозиторий пакетов. Чтобы установить его, введите следующую команду:

sudo apt install certbot

Чтобы подтвердить установку, нажмите Y и Enter.

sudo ufw allow 80

Вывод будет выглядеть так:

Rule added
Rule added (v6)

Теперь, когда порт открыт, запустите Certbot, чтобы получить сертификат:

Вы получите такой вывод:

Как написано в примечаниях в выводе, ваш сертификат и файл закрытого ключа были сохранены в /etc/letsencrypt/live/your_domain.

Теперь, когда у вас есть сертификат, откройте файл main.cf в редакторе:

sudo nano /etc/postfix/main.cf

Найдите такой раздел:

Обновите в нем параметры TLS для Postfix (вместо your_domain укажите ваш домен).

Сохраните и закройте файл.

Чтоб применить новые настройки, перезапустите Postfix.

sudo systemctl restart postfix

echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

Заключение

Postfix — популярный почтовый агент (MTA) с открытым исходным кодом, который можно использовать для маршрутизации и доставки почты в системе Linux. Согласно оценкам, примерно 25% публичных почтовых серверов в Интернете используют Postfix.

В этом руководстве мы расскажем, как установить и настроить Postfix на сервере Ubuntu 20.04. Затем мы протестируем способность Postfix правильно выполнять маршрутизацию, выполнив установку s-nail , почтового пользовательского агента (MUA), также называемого клиентом электронной почты.

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

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

Для прохождения этого обучающего модуля вам потребуется следующее:

  • Сервер под управлением Ubuntu 20.04, который будет работать как ваш почтовый сервер Postfix. Этот сервер должен иметь пользователя без прав root с привилегиями sudo , а также брандмауэр, настроенный с помощью UFW. Для выполнения этого требования следуйте указаниям нашего руководства по начальной настройке сервера Ubuntu 20.04.
  • Полное доменное имя, указывающее на ваш сервер Ubuntu 20.04. Помощь по настройке доменного имени в DigitalOcean можно найти в нашей документации по доменам и сетям DNS. Помните, что если вы планируете получать доступ к почте из внешнего источника, вам также потребуется запись MX, указывающая на ваш почтовый сервер.

Шаг 1 — Установка Postfix

Postfix включен в репозиторий Ubuntu по умолчанию, так что вы можете установить его с помощью APT.

Для начала обновите локальный кэш пакетов apt :

Затем установите пакет postfix с помощью следующей команды. Обратите внимание, что мы передаем переменную среды DEBIAN_PRIORITY=low в эту команду установки. В связи с этим, процедура установки предложит вам настроить некоторые дополнительные опции:

Процедура установки откроет серию интерактивных диалогов. Для целей данного обучающего модуля введите в диалогах следующие данные:

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

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

Для параметров будут указаны заданные ранее значения.

После завершения процедуры установки можно внести некоторые изменения в конфигурацию Postfix.

Шаг 2 — Изменение конфигурации Postfix

Теперь вы можете изменить дополнительные настройки, которые не предлагались в диалогах процедуры установки. Многие параметры конфигурации Postfix заданы в файле /etc/postfix/main.cf . Вместо того, чтобы редактировать этот файл напрямую, вы можете использовать команду Postfix postconf для запроса или установки параметров конфигурации.

Задайте для переменной home_mailbox значение Maildir/ . Впоследствии вы создадите структуру каталогов с этим именем в своем домашнем каталоге пользователя. Настройте home_mailbox с помощью следующей команды:

Задайте расположение таблицы virtual_alias_maps , где произвольные учетные записи электронной почты сопоставляются с системными учетными записями Linux. Запустите следующую команду, сопоставляющую расположение таблицы с файлом базы данных хэша под именем /etc/postfix/virtual :

Мы определили расположение файла виртуальной карты в файле main.cf и теперь можем создать сам файл и начать сопоставление учетных записей электронной почты с учетными записями пользователей в системе Linux. Создайте файл в nano или другом предпочитаемом текстовом редакторе:

Укажите все адреса, для которых вы хотите получать электронную почту, а затем укажите через пробел имя пользователя Linux, которому должна доставляться эта почта.

После сопоставления всех почтовых адресов с соответствующими учетными записями сервера вы можете сохранить и закрыть файл. Если вы использовали nano , нажмите CTRL + X , Y , а затем ENTER .

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

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

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

Теперь Postfix настроен и готов принимать внешние подключения. Однако мы еще не готовы тестировать его с помощью почтового клиента. Прежде чем устанавливать почтовый клиент и использовать его для взаимодействия с доставляемой на сервер почтой, необходимо внести некоторые изменения в настройки сервера Ubuntu.

Шаг 3 — Установка почтового клиента и инициализация структуры Maildir

Этот шаг поможет вам установить пакет s-nail для взаимодействия с доставляемой почтой. Это функциональный вариант почтового клиента BSD xmail , правильно работающий с форматом Maildir.

Перед установкой клиента желательно проверить настройку переменной среды MAIL . Клиент s-nail использует эту переменную для определения мест поиска почты для вашего пользователя.

Если требуется гарантированно задать переменную MAIL вне зависимости от способа доступа к учетной записи (через ssh , su , su - , sudo и т. п.), необходимо задать переменную в файле /etc/bash.bashrc и добавить ее в файл /etc/profile.d , чтобы она использовалась всеми пользователями по умолчанию.

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

Чтобы прочитать переменную для текущего сеанса, в качестве источника можно использовать файл /etc/profile.d/mail.sh :

Выполнив этот шаг, установите клиент электронной почты s-nail с помощью APT:

Перед запуском клиента необходимо изменить несколько настроек. Откройте файл /etc/s-nail.rc в своем редакторе:

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

Вот что делают эти строки:

  • set emptystart : позволяет клиенту открываться даже при пустом почтовом ящике
  • set folder=Maildir : задает для каталога Maildir внутреннюю переменную folder
  • set record=+sent создает файл sent в формате mbox для хранения отправленной почты в каталоге, заданном в переменной folder , в данном случае Maildir

Сохраните файл и закройте его после завершения. Теперь вы готовы инициализировать структуру Maildir в вашей системе.

Чтобы быстро создать структуру Maildir в домашнем каталоге, отправьте себе электронное письмо с помощью команды s-nail . Поскольку файл sent будет доступен только после создания Maildir, для этого первого письма нужно отключить запись в этот файл. Используйте для этого опцию -Snorecord .

Для отправки письма добавьте строку в команду s-nail . Измените команду, чтобы сделать получателем вашего пользователя Linux:

Примечание. Вы можете получить следующий ответ:

Для проверки создания каталога выполните поиск каталога

Шаг 5 — Тестирование клиента

Чтобы открыть клиент, запустите команду s-nail :

Чтобы вернуться к терминалу, введите q и нажмите ENTER :

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

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

Заключение

Теперь почтовая система Postfix настроена на вашем сервере Ubuntu 20.04. Управление серверами электронной почты может оказаться непростой задачей для начинающих системных администраторов, но с этой конфигурацией у вас должно быть достаточно функций MTA для работы с электронной почтой, чтобы начать эту работу.

В одной организации использовалась корпоративная электронная почта от Microsoft под названием office 365. Это Exchange Online — облачный сервис электронной почты для организаций.

Все работали в одной локальной сети, т.е. почтовые клиенты были в одной локальной сети.

Поставили такую задачу.

Нужно поднять Relay (почтовый пересыпщик), для того, чтобы все письма из локальной сети попадали на локальный Relay, а этот Relay будет пересылать почту через основной почтовый сервер, находящийся где-то в облаке - office 365.


  • Письма от клиентов будут идти на Relay по протоколу SMTP.
  • Relay будет работать для клиентов только из локальной сети.
  • От Relay к почтовому серверу по протоколу SMTP.
  • На Relay почтовых ящиков нет, они на почтовом сервере.
  • Забираются письма с сервера клиентами по протоколу POP3.
  • Почтовый сервер в облаке требует SMTP аутентификацию.
  • На почтовом сервере 50 ящиков, которые принадлежат этой компании.

Решение.

Устанавливать postfix будем на ubuntu 14.04. И так, у нас есть установленная система, обновленная. Приступаем устанавливать:

Во время установки появится всплывающее окно. Выберите в качестве сервера Internet Site, а в качестве FQDN укажите hostname сервера.

Далее нужно отредактировать главный конфигурационный файл postfix - /etc/postfix/main.cf

Указываем в качестве значения параметра relayhost - адрес smtp сервера:

Указываем сеть, из которой разрешено принимать соединения на нашем relay - это наша локальная сеть:

И ниже дописываем секцию:

На этом редактирование заканчиваем, сохраняем конфигурационный файл и закрываем его.

Далее нужно занести учетные данные для аутентификации на почтовом сервере. Редактируем /etc/postfix/sender_relay, добовляя учетные данные, для пересылки на наш сервер:

Далее правим /etc/postfix/sasl_passwd, тут нужно указать учетные данные с паролями:

Вносим в таком формате - учетные данные приходящие (они записаны в /etc/postfix/sender_relay), далее учетные данные на сервере, двоеточие и пароль от почтового ящика:

Сохраняем конфигурационный файл, закрываем.

Меняем права доступа к файлу, где у нас хранятся пароли:

Делаем hash из файлов /etc/postfix/sender_relay и /etc/postfix/sasl_passwd. У нас получатся файлы sasl_passwd.db и sender_relay.db. Именно этими файлами и будет пользоваться postfix.

Добавляем в postfix сертификат этой командой. Главное проверьте, что у вас есть файл /etc/ssl/certs/Thawte_Premium_Server_CA.pem, или выберете другой:

Действия на клиенте.

В почтовом клиенте до создания локального Relay, были такие настройки:

После создания нашего relay, изменился только адрес smtp:

Какие изменения это дало?

Тут мы преследовали одну задачу, а именно ускорить отправку писем. Почтовый relay решил эту задачу, почта из клиента уходит моментально, так как relay и клиент находится в одной локальной сети.

Установка и настройка Postfix и Dovecot на Ubuntu

Postfix – это программный продукт, позволяющий организовать почтовый сервер. Он был создан как альтернатива Sendmail – старейшему агенту передачи почты (MTA – Mail Transfer Agent). Postfix распространяется с открытым исходным кодом и используется разработчиками для маршрутизации и пересылки почтовых писем внутри системы Linux.

В ходе сегодняшней статьи мы подробно рассмотрим, как выполняется установка и настройка Postfix на сервере Ubuntu 20.04, а также поговорим о том, что представляет собой Dovecot и как правильно его установить в связке с Postfix.

Требования

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

  • Сервер на Ubuntu 20.04, который будет функционировать в режиме почтовой службы. Требуется, чтобы он включал в себя пользователя без прав root с привилегиями sudo. Вместе с этим также необходим брандмауэр, настроенный с помощью Uncomplicated Firewall (UFW).
  • Доменное имя сервера. Если вам потребуется получить доступ к почте из внешнего источника, то нужно также позаботиться об MX-записи, которая будет указывать на почтовый сервер.

Как установить Postfix

По умолчания Postfix включен в репозиторий операционной системы Ubuntu, поэтому с установкой не должно возникнуть никаких проблем. Провести ее мы можем с использованием команды apt.

Первым делом обновляем кэш пакетов:

Затем устанавливаем непосредственно сам пакет Postfix. Здесь важно обратить внимание на значение DEBIAN_PRIORITY=low – оно позволяет нам подключить некоторые дополнительные опции.

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

На этом установка Postfix на Ubuntu завершена, теперь можем переходить к более детальным настройкам.

Настройка Postfix

Большинство настроек конфигурации Postfix заданы в файле main.cf, который можно найти по адресу /etc/postfix/main.cf. Здесь мы можем пойти следующим образом: изменять параметры непосредственно в самом файле либо воспользоваться командой postconf.

Указываем значение Maildir для переменной home_mailbox. Настроить ее можно с помощью команды:

Прописываем расположение таблицы virtual_alias_maps, где все учетные записи почты сопоставляются с аккаунтами системы Linux. Также активируем еще одну команду, с помощью которой мы сопоставим расположение таблицы с файлом базы данных хэша в /etc/postfix/virtual:

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

После успешного ввода данных сохраняемся и выходим из файла. В нашем случае это редактор nano, поэтому зажимаем на клавиатуре комбинацию клавиш «CTRL+X, Y» и жмем «Enter». После этого осуществляем сопоставление строчкой кода:

Затем перезагружаемся командой:

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

Готово! Настройка Postfix на Ubuntu 20.04 прошла успешно. Теперь было бы хорошо его протестировать на почтовом клиенте, но сделать этого мы пока не можем. Прежде чем установить почтовый клиент, для начала нам нужно внести некоторые корректировки в параметры сервера Ubuntu.

Установка почтового клиента

В данном разделе мы установим пакет s-nail для взаимодействия с доставляемой почтой. Перед тем как начать установку, рекомендуем проверить настройку переменной среды «MAIL». Клиенту эта переменная необходима для того, чтобы определять места почты для пользователя.

Если необходимо гарантированно задать переменную MAIL, вне зависимости от способа доступа к учетной записи, потребуется указать ее в файле /etc/bash.bashrc и добавить в /etc/profile.d, чтобы она использовалась всеми юзерами.

Для этого введем следующее:

Чтобы прочитать переменную текущего сеанса, можно ввести:

Теперь мы можем переходить к установке клиента s-nail. Прописываем для этого:

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

В конец вставим следующее:

Расшифруем каждую строчку:

  • set emptystart – дает возможность клиенту открываться даже при пустом почтовом ящике;
  • set folder=Maildir – прописывает для директории Maildir переменную folder;
  • set record=+sent – создает файл sent в формате mbox для хранения отправленной почты в каталоге, заданном в переменной folder.

Для отправки письма добавим строку в команду s-nail. Обратите внимание, что в конце указывается имя пользователя – вам потребуется изменить его на свое.

Убедимся, что каталог был создан:

В результате должно отобразиться примерно следующее:

Теперь мы можем перейти к тестированию почтового клиента.

Тестирование отправки почты

Для начала запустим клиент, для этого используем команду:

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

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

Dovecot – это свободный IMAP- и POP3-сервер, разработанный с упором на безопасность. Нам он потребуется для того, чтобы подключить авторизацию по протоколу SMTP.

Устанавливаем Dovecot с компонентом для работы с СУБД:

Пропишем в него следующее:

Далее настраиваем слушателя для аутентификации:

В файле прописываем:

На этом примере мы настраиваем сервис для аутентификации и создаем два прослушивателя: /var/spool/postfix/private/auth – для возможности Постфиксом использовать авторизацию через Dovecot, auth-userdb – сокет для авторизации через dovecot-lda.

В этот же файл добавляем:

Переходим к настройке аутентификации в Dovecot, открываем файл 10-auth.conf:

Задаем в нем следующие значения:

Открываем файл 10-ssl.conf командой vi /etc/dovecot/conf.d/10-ssl.conf и настраиваем в нем использование шифрования:

  • ssl = required – прикажет Dovecot требовать от клиентов использование шифрования;
  • ssl_cert – путь до открытого сертификата;
  • ssl_key – путь к закрытому ключу.

Добавляем автоматическое создания каталогов в файле vi /etc/dovecot/conf.d/15-lda.conf:

Настраиваем подключение к базе данных. Для начала открываем нужный файл:

Вставляем в него:

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

Переходим к корректированию файла с настройками работы mySQL:

В конце файла добавляем:

Таким образом, мы смогли настроить запрос на получение данных из БД. Осталось сконфигурировать интерфейс, на котором мы будем слушать Dovecot:

В этот файл прописываем:

По умолчанию Dovecot слушает и на ipv6 (listen = *, ::). Если на сервере не используется 6-я версия протокола TCP/IP, то в логах могут быть ошибки.

Разрешаем запуск Dovecot:

Изменение конфигурации Postfix для Dovecot

Так как для отправки писем мы используем протокол SMTP через Dovecot, нам потребуется внести некоторые изменения в основном файле. Откроем его:

Изменяем в нем следующее:

Также комментируем строки:

Вместо них прописываем:

Откроем файл sudo nano /etc/postfix/master.cf и раскомментируем в нем строчку:

Осталось перезагрузиться в Postfix:

Теперь вы можете протестировать отправку почты. Обратите внимание, что у Dovecot также есть лог – чтобы его включить, необходимо открыть файл sudo nano /etc/dovecot/conf.d/10-logging.conf и внести в него корректировки:

Первая строка указывает на путь к логу, а вторая показывает неудачные попытки авторизации.

Заключение

Теперь вы знаете, как выполняется установка и настройка Postfix и Dovecot на Ubuntu 20.04. Начинающим системным администраторам на первый взгляд это может показаться непосильной задачей, но с данными инструкциями все должно получиться. Удачи!

Читайте также: