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

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

Требования

  • Предварительно настроенный сервер Ubuntu 16.04 и учетная запись пользователя с расширенными привилегиями sudo (инструкции по начальной настройке – здесь);
  • Валидное доменное имя (в данном руководстве используется условный домен example.com).

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

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

Для начала обновите индекс пакетов, а затем установите программу. Передайте переменную окружения DEBIAN_PRIORITY=low, чтобы ответить на дополнительные запросы программы.

sudo apt-get update
sudo DEBIAN_PRIORITY=low apt-get install postfix

Программа запросит следующие данные:

  • General type of mail configuration? Выберите один из предложенных типов настройки, соответствующий вашим требованиям. В данном случае используется Internet Site.
  • System mail name: базовый домен, который будет указан в адресе после @. В имени хоста, скорее всего, указано mail.example.com, но в этом параметре лучше указать example.com. Тогда почта пользователя user1 будет выглядеть так: user1@example.com.
  • Root and postmaster mail recipient: аккаунт Linux, который будет получать почту, предназначенную для root@ или postmaster@.
  • Other destinations to accept mail for: определяет получателей почты, которые будут разрешены Postfix. Другими словами, юда можно добавить какие-либо другие домены, за прием почты которых будет отвечать этот сервер Postfix.
  • Force synchronous updates on mail queue?: Если вы используете журнальную файловую систему, выберите No.
  • Local networks: список сетей, сообщения которых будут ретранслироваться почтовым сервером. В большинстве случаев подойдёт значение по умолчанию. Если вы решите изменить его, строго ограничьте диапазон сети.
  • Mailbox size limit: устанавливает ограничения размеров сообщения. Значение 0 снимает все ограничения.
  • Local address extension character: символ, который используется для разделения обычной части адреса и расширения (используется для создания динамических алиасов).
  • Internet protocols to use: позволяет ограничить поддержку версий IP.

В данном руководстве используются такие параметры:

  • General type of mail configuration?: Internet Site
  • System mail name: example.com (не mail.example.com)
  • Root and postmaster mail recipient: 8host
  • Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
  • Force synchronous updates on mail queue?: No
  • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Mailbox size limit: 0
  • Local address extension character: +
  • Internet protocols to use: all

Если в дальнейшем вам понадобится изменить эти параметры, введите:

sudo dpkg-reconfigure postfix

При этом все строки будут содержать предыдущие значения.

2: Тонкая настройка Postfix

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

Для начала нужно настроить почтовый ящик. В руководстве будет использоваться формат maildir, определяющий сообщения в отдельные файлы, которые затем перемещаются между каталогами в зависимости от действий пользователя. Также можно выбрать формат mbox, который хранит все сообщения в одном файле.

Установите переменной home_mailbox значение Maildir/,это создаст структуру каталогов под этим именем в домашнем каталоге пользователя. Команда postconf позволяет запрашивать и устанавливать параметры настроек. Чтобы настроить home_mailbox, введите:

sudo postconf -e 'home_mailbox= Maildir/'

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

sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

3: Привязка почтовых адресов к аккаунтам Linux

Теперь нужно создать эту таблицу. Откройте файл в текстовом редакторе:

sudo nano /etc/postfix/virtual

Таблица использует очень простой формат. Слева перечислены все адреса, которые должны принимать почту. Через пробел указаны системные пользователи, которые будут получать почту того или другого адреса.

К примеру, чтобы системный пользователь 8host мог принимать почту по адресам contact@example.com и admin@example.com, нужно ввести:

contact@example.com 8host
admin@example.com 8host

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

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

sudo postmap /etc/postfix/virtual

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

sudo systemctl restart postfix

4: Настройка брандмауэра

При использовании брандмауэра UFW (согласно руководству по начальной настройке сервера) нужно открыть порт Postfix.

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

sudo ufw allow Postfix

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

5: Настройка окружения

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

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

echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

Чтобы переменная была считана в текущей сессии, введите:

source /etc/profile.d/mail.sh

6: Установка и настройка почтового клиента

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

Чтобы установить s-nail, введите:

sudo apt-get install s-nail

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

sudo nano /etc/s-nail.rc

В конец файла добавьте:

. . .
set emptystart
set folder=Maildir
set record=+sent

Это позволит открывать клиент, даже если почтовый ящик пуст. Также это установит каталог Maildir в переменной folder и использует его для создания mbox-файла sent для хранения отправленной почты.

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

7: Запуск и тестирование клиента

Инициализация структуры каталогов

Самый простой способ создать структуру Maildir в домашнем каталоге – это отправить себе электронную почту. Это делается с помощью команды mail.

Поскольку отправленный файл будет доступен только после создания Maildir, нужно закрыть каталог для записи. Для этого используйте флаг –Snorecord.

Отправьте сообщение, заменив 8host именем своего системного пользователя.

echo 'init' | mail -s 'init' -Snorecord 8host

Команда должна вернуть:

Can't canonicalize "/home/8host/Maildir"

Это нормальное поведение программы при отправке первого сообщения. Убедитесь в том, что каталог ~/Maildir был создан:

ls -R ~/Maildir

На экране должна появиться структура каталогов и сообщение в каталоге ~/Maildir/new:

/home/8host/Maildir/:
cur  new  tmp
/home/8host/Maildir/cur:
/home/8host/Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com
/home/8host/Maildir/tmp:

Управление почтовым клиентом

Чтобы проверить почту, введите:

mail
s-nail version v14.8.6.  Type ? for help.
"/home/8host/Maildir": 1 message 1 new
>N  1 8host@example.com     Wed Dec 31 19:00   14/369   init

Чтобы просмотреть сообщение, просто нажмите Enter:

[-- Message  1 -- 14 lines, 369 bytes --]:
From 8host@example.com Wed Dec 31 19:00:00 1969
Date: Fri, 13 May 2016 18:07:49 -0400
To: 8host@example.com
Subject: init
Message-Id: <20160513220749.A278F228D9@mail.example.com>
From: 8host@example.com
init

Чтобы вернуться к списку сообщений, нажмите h:

h
s-nail version v14.8.6.  Type ? for help.
"/home/8host/Maildir": 1 message 1 new
>R  1 8host@example.com     Wed Dec 31 19:00   14/369   init

Чтобы удалить сообщение, нажмите d:

d

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

q

Отправка сообщений с помощью клиента

Введите сообщение в текстовый редактор:

nano ~/test_message
Hello,
This is a test.  Please confirm receipt!

При помощи команды cat передайте сообщение процессу mail. Отправителем сообщения по умолчанию будет текущий системный пользователь.

Отредактировать поле From можно при помощи флага –r.

cat ~/test_message | mail -s 'Test email subject line' -r from_field_account user@email.com

В команде использованы опции:

  • -s: тема сообщения.
  • -r: опция для изменения отправителя (строка From). По умолчанию отправителем письма является текущий системный пользователь Linux. С помощью этой опции такое поведение можно обойти.
  • user@email.com: получатель сообщения.

Клиент mail позволяет просматривать отправленные сообщения. Запустите клиент в интерактивном режиме:

mail

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

file +sent

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

Заключение

Теперь почтовый сервер Postfix установлен и настроен на сервере Ubuntu 16.04.

Tags: , ,

Добавить комментарий