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

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

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

Требования

  • Сервер Debian 9, настроенный по этому мануалу (включая не-root пользователя с доступом к 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
. . .

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

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

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

Примечание: Если на одном сервере вы разместили несколько доменов, можно добавить остальные домены в настройки 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 9 этот файл выглядит так:

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: , , , ,