Поиск по сайту:

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


Введение

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

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

Предпосылки

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

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

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

Шаг 1: Установите Постфикс

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

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

  1. sudo apt-get update
  2. sudo DEBIAN_PRIORITY=low apt-get install postfix

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

  • Общий тип почтовой конфигурации? Для этого мы выберем Интернет-сайт, поскольку он соответствует потребностям нашей инфраструктуры.
  • Системное почтовое имя: это базовый домен, используемый для создания действительного адреса электронной почты, когда указана только часть адреса, относящаяся к учетной записи. Например, имя хоста нашего сервера — mail.example.com, но мы, вероятно, захотим установить системное почтовое имя example.com, чтобы с учетом имени пользователя user1, Postfix будет использовать адрес user1@example.com.
  • Корневой получатель почты и почтовый мастер: это учетная запись Linux, которая будет пересылать почту, адресованную root@ и postmaster@. Используйте для этого свою основную учетную запись. В нашем случае Сэмми.
  • Другие адресаты для приема почты: это определяет адресатов почты, которые будет принимать этот экземпляр Postfix. Если вам нужно добавить какие-либо другие домены, за получение которых будет отвечать этот сервер, добавьте их здесь, в противном случае все должно работать нормально по умолчанию.
  • Принудительно выполнять синхронные обновления в почтовой очереди? Поскольку вы, вероятно, используете журналируемую файловую систему, примите здесь вариант Нет.
  • Локальные сети. Это список сетей, для которых ваш почтовый сервер настроен на ретрансляцию сообщений. Значение по умолчанию должно работать для большинства сценариев. Если вы решите изменить его, убедитесь, что вы очень ограничили диапазон сети.
  • Ограничение размера почтового ящика. Это можно использовать для ограничения размера сообщений. Установка значения \0 отключает любые ограничения размера.
  • Символ расширения локального адреса. Этот символ можно использовать для отделения обычной части адреса от расширения (используемого для создания динамических псевдонимов).
  • Интернет-протоколы для использования: выберите, следует ли ограничивать версию IP, поддерживаемую Postfix. Мы выберем \все для наших целей.

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

  • Общий тип конфигурации почты?: Интернет-сайт
  • Имя системной почты: mail.example.com)
  • Корневой получатель почты и почтовый администратор: Сэмми
  • Другие адресаты для приема почты: $myhostname, localhost.example.com, localhost
  • Принудительно выполнять синхронные обновления в почтовой очереди?: Нет
  • Локальные сети: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Ограничение размера почтового ящика: 0
  • Символ расширения локального адреса: +
  • Используемые интернет-протоколы: все

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

  1. sudo dpkg-reconfigure postfix

Подсказки будут предварительно заполнены вашими предыдущими ответами.

Когда вы закончите, мы можем немного больше настроить нашу систему так, как нам хотелось бы.

Шаг 2: Настройте конфигурацию Postfix

Далее мы можем настроить некоторые параметры, которые пакет нам не предлагал.

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

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

  1. sudo postconf -e 'home_mailbox= Maildir/'

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

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

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

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

  1. sudo nano /etc/postfix/virtual

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

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

contact@example.com sammy
admin@example.com sammy

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

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

  1. sudo postmap /etc/postfix/virtual

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

  1. sudo systemctl restart postfix

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

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

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

  1. sudo ufw allow Postfix

Компонент сервера Postfix установлен и готов. Далее мы настроим клиент, который сможет обрабатывать почту, которую будет обрабатывать Postfix.

Шаг 5. Настройка среды в соответствии с местоположением почты

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

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

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

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

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

  1. source /etc/profile.d/mail.sh

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

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

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

  1. sudo apt-get install s-nail

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

  1. sudo nano /etc/s-nail.rc

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

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

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

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

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

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

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

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

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

  1. echo 'init' | mail -s 'init' -Snorecord sammy

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

Output
Can't canonicalize "/home/sammy/Maildir"

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

  1. ls -R ~/Maildir

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

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

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

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

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

  1. mail

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

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

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

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

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

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

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

  1. d

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

  1. q

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

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

  1. nano ~/test_message

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

Hello,

This is a test.  Please confirm receipt!

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

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

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

  • -s: строка темы электронного письма.
  • -r: необязательное изменение в поле \От: электронной почты. По умолчанию для заполнения этого поля будет использоваться пользователь Linux, под которым вы вошли в систему. Опция >-r позволяет переопределить это.
  • user@email.com: учетная запись, на которую будет отправлено электронное письмо. Измените это на действительный аккаунт, к которому у вас есть доступ.

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

  1. mail

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

  1. file +sent

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

Заключение

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