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

Вступление

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

В этом руководстве мы научим вас, как быстро начать работу с Postfix на сервере Ubuntu 18.04.

Предпосылки

Чтобы следовать этому руководству, у вас должен быть доступ к пользователю без полномочий root с правами + sudo +. Вы можете следовать нашему Ubuntu 18.04 начальному руководству по настройке сервера, чтобы создать нужного пользователя.

Чтобы правильно настроить Postfix, вам понадобится Полное доменное имя, указанное на вашем сервере Ubuntu 18.04. Вы можете найти помощь по настройке вашего доменного имени с помощью DigitalOcean, следуя this guide. Если вы планируете принимать почту, вам необходимо убедиться, что у вас есть запись MX, указывающая также на ваш почтовый сервер.

Для целей данного руководства мы будем предполагать, что вы настраиваете хост с полным доменным именем + mail.example.com +.

Шаг 1 - Установите Postfix

Postfix включен в стандартные репозитории Ubuntu, поэтому установка проста.

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

sudo apt update
sudo DEBIAN_PRIORITY=low apt install postfix

Используйте следующую информацию для правильного заполнения ваших запросов в вашей среде:

  • * Общий тип конфигурации почты? *: Для этого мы выберем * Интернет-сайт *, так как это соответствует потребностям нашей инфраструктуры.

  • * Имя системной почты *: это базовый домен, используемый для создания действительного адреса электронной почты, когда указывается только часть учетной записи. Например, именем хоста нашего сервера является + mail.example.com +, но мы, вероятно, хотим установить системное почтовое имя равным + example.com +, чтобы при наличии имени пользователя + user1 + Postfix использовал адрес + user1 @ example.com +.

  • * Получатель почты root и postmaster *: это учетная запись Linux, которая будет пересылать почту, адресованную + root @ + и + postmaster @ +. Используйте ваш основной аккаунт для этого. В нашем случае * Сэмми *.

  • * Другие места назначения для приема почты для *: это определяет места назначения почты, которые будет принимать этот экземпляр Postfix. Если вам нужно добавить какие-либо другие домены, за которые этот сервер будет отвечать за получение, добавьте их сюда, в противном случае по умолчанию все должно работать нормально.

  • * Принудительно выполнять синхронные обновления в почтовой очереди? *: Поскольку вы, скорее всего, используете журнализированную файловую систему, примите здесь * Нет *.

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

  • * Ограничение размера почтового ящика *: это может быть использовано для ограничения размера сообщений. Установка его в «0» отключает любое ограничение размера.

  • * Локальный символ расширения адреса *: это символ, который можно использовать для отделения обычной части адреса от расширения (используется для создания динамических псевдонимов).

  • * Используемые интернет-протоколы *: Выберите, следует ли ограничить версию IP, поддерживаемую Postfix. Мы выберем «все» для наших целей.

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

  • * Общий тип конфигурации почты? *: Интернет-сайт

  • * Имя системной почты *: example.com (не mail.example.com)

  • * Получатель почты от root и postmaster *: sammy

  • * Другие направления для приема почты для *: $ myhostname, example.com, mail.example.com, localhost.example.com, localhost

  • * Принудительное синхронное обновление почтовой очереди? *: Нет

  • * Локальные сети *: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [:: 1] / 128

  • * Ограничение размера почтового ящика *: 0

  • * Расширение локального адреса *:

  • * Интернет-протоколы для использования *: все

Если вам когда-либо понадобится вернуться для повторной настройки этих настроек, вы можете сделать это, набрав:

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. Опять же, мы можем использовать команду + postconf +:

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

Шаг 3 - сопоставьте почтовые адреса с учетными записями Linux

Далее мы можем настроить файл виртуальных карт. Откройте файл в вашем текстовом редакторе:

sudo nano /etc/postfix/virtual

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

Например, если вы хотите принимать электронную почту в + contact @ example.com + и + admin @ example.com + и хотите, чтобы эти электронные письма доставлялись пользователю + sammy + Linux, вы можете настроить файл как это:

/ И т.д. / постфикса / виртуальный

contact@ sammy
admin@ sammy

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

Мы можем применить сопоставление, набрав:

sudo postmap /etc/postfix/virtual

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

sudo systemctl restart postfix

Шаг 4 - Настройте брандмауэр

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

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

sudo ufw allow Postfix

Серверный компонент 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

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

source /etc/profile.d/mail.sh

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

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

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

sudo apt install s-nail

Мы должны настроить несколько параметров. Откройте файл + / etc / s-nail.rc + в вашем редакторе:

sudo nano /etc/s-nail.rc

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

/etc/s-nail.rc

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

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

Сохраните и закройте файл, когда вы закончите.

Шаг 7 - Инициализируйте Maildir и протестируйте клиент

Теперь мы можем проверить клиента.

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

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

Отправьте электронное письмо, отправив строку в команду + s-nail +. Настройте команду, чтобы пометить пользователя Linux как получателя:

echo 'init' | s-nail -s 'init' -Snorecord

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

OutputCan't canonicalize "/home//Maildir"

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

ls -R ~/Maildir

Вы должны увидеть, что структура каталогов была создана и что новый файл сообщений находится в каталоге + ~ / Maildir / new +:

Output/home//Maildir/:
cur  new  tmp

/home//Maildir/cur:

/home//Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com

/home//Maildir/tmp:

Похоже, наша почта была доставлена.

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

Используйте клиент для проверки вашей почты:

s-nail

Вы должны увидеть ваше новое сообщение в ожидании:

Outputs-nail version v14.8.6.  Type ? for help.
"/home/sammy/Maildir": 1 message 1 new
>N  1 [email protected]     Wed Dec 31 19:00   14/369   init

Просто нажмите + ENTER +, чтобы отобразить ваше сообщение:

Output[-- Message  1 -- 14 lines, 369 bytes --]:
From [email protected] Wed Dec 31 19:00:00 1969
Date: Fri, 13 May 2016 18:07:49 -0400
To: [email protected]
Subject: init
Message-Id: <[email protected]>
From: [email protected]

init

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

h
Outputs-nail version v14.8.6.  Type ? for help.
"/home/sammy/Maildir": 1 message 1 new
>R  1 [email protected]     Wed Dec 31 19:00   14/369   init

Поскольку это сообщение не очень полезно, мы можем удалить его с помощью + d +, а затем + ENTER +:

d

Выйдите, чтобы вернуться к терминалу, набрав + q + и затем + ENTER +:

q

Отправка почты клиенту

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

nano ~/test_message

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

~ / Test_message

Hello,

This is a test.  Please confirm receipt!

Используя команду + cat +, мы можем передать сообщение процессу + s-nail +. Это отправит сообщение как ваш пользователь Linux по умолчанию. Вы можете настроить поле «От» с помощью флага «+ -r +», если хотите изменить это значение на другое:

cat ~/ | s-nail -s '' -r  @

Варианты выше:

  • + -s +: строка темы письма

  • + -r +: необязательное изменение поля «От:» электронного письма. По умолчанию пользователь Linux, в который вы вошли, будет использоваться для заполнения этого поля. Опция + -r + позволяет вам переопределить это.

  • + user @ email.com +: учетная запись для отправки электронного письма. Измените это, чтобы быть действительной учетной записью, к которой у вас есть доступ.

Вы можете просматривать отправленные сообщения в вашем клиенте + s-nail +. Запустите интерактивный клиент еще раз, набрав:

s-nail

После этого просмотрите отправленные сообщения, набрав:

file +sent

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

Заключение

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

Related