Установка и настройка SMTP-сервера исходящей почты Postfix в Debian 10

Postfix – это агент пересылки сообщений (Mail Transfer Agent, или MTA), то есть приложение для отправки и получения электронной почты. Данный мануал поможет вам установить и настроить Postfix только для отправки сообщений локальных приложений (установленных на одном сервере с Postfix).

Зачем нужен сервер исходящей почты?

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

Данный мануал расскажет, как установить SMTP-сервер исходящей почты Postfix на виртуальный сервер Debian 10.

Требования

  • Сервер Debian 10, настроенный по этому мануалу (включая пользователя с доступом к sudo).
  • Валидный домен (в мануале используется условный домен example.com).

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

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

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

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

sudo apt update

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

sudo apt install mailutils

После этого установите postfix:

sudo apt install postfix

В конце установки будет предложено выбрать тип настройки. Рекомендуется выбрать стандартную опцию Internet Site. Для этого нажмите TAB и ENTER.

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

После этого программа предложит выбрать имя почты, которое определяется параметром System mail name. Это поле должно совпадать с именем сервера, которое вы выбрали при его создании. Укажите имя, а затем нажмите TAB и ENTER. Если в поле автоматически введён поддомен типа subdomain.example.com, замените его доменом example.com.

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

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

Теперь нужно настроить Postfix для отправки сообщений с локального хоста.

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

sudo nano /etc/postfix/main.cf

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

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

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

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

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

/etc/postfix/main.cf
. . .
mydestination = $myhostname, example.com, localhost.com, , localhost
. . .

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

/etc/postfix/main.cf
. . .
mydestination = $myhostname, localhost.$mydomain, $mydomain
. . .

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

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

Перезапустите сервер Postfix:

sudo systemctl restart postfix

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

Теперь нужно проверить, может ли Postfix отправлять сообщения на внешний электронный адрес. Для этого используется команда mail, которая также входит в пакет mailutils.

Чтобы отправить тестовое сообщение, введите:

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

Примечание: Укажите другую тему и тело сообщения. Вместо your_email_address используйте валидный адрес электронной почты, это может быть gmail.com, fastmail.com, yahoo.com. Он также может принадлежать любому другому почтовому провайдеру.

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

При такой настройке в поле From будет указываться адрес 8host@example.com, где 8host – имя вашего пользователя системы Linux, а example.com – имя хоста. Если вы измените имя пользователя, адрес в поле From тоже изменится.

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

Осталось только настроить пересылку почты (или форвардинг), чтобы сервер мог предавать сообщения, отправленные пользователю root, на ваш персональный внешний адрес.

Чтобы Postfix отправлял сообщения, сгенерированные системой, на ваш почтовый адрес, отредактируйте файл /etc/aliases.

sudo nano /etc/aliases

В стандартной установке Debian 10 этот файл выглядит так:

mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root

Директива postmaster: root  передает сообщения системы пользователю root. Теперь нужно сделать так, чтобы сообщения перенаправлялись на ваш адрес электронной почты. Для этого измените файл:

mailer-daemon: postmaster
postmaster:    root
root:          your_email_address
. . .

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

sudo newaliases

Теперь протестируйте пересылку, отправив сообщение пользователю root:

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

Это сообщение должно появиться в вашем почтовом ящике (если его нет – проверьте папку спама).

Заключение

Теперь у вас есть почтовый сервер Postfix для передачи сообщений. После установки Postfix рекомендуется защитить сервер от спама.

Если вы хотите получать уведомления с вашего сервера по одному адресу, то спам – не проблема, ведь вы можете создать белый список. Но если вы отправляете сообщения потенциальным пользователям сайта (к примеру, письма с подтверждением регистрации), вам нужно настроить запись SPF и DKIM. Информацию об этом можно найти в статьях:

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

Tags: , , ,