Поднимаем свой почтовый сервер на Postfix.

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

Что же такое почтовый сервер ?

Электронная почта устроена не очень сложно. В основе всего лежит MTA ( mail transfer agent) собственно он получает , отправляет почту. Для своей работы он использует протокол SMTP (англ. Simple Mail Transfer Protocol ). Собственно это и есть почтовый сервер. Серверу совсем не интересно как пользователь будет читать свою почту.

Агент доставки электронной почты (Mail Delivery Agent, MDA). Этот компонент ответственен за распределение полученных сообщений по почтовым ящикам пользователей. Тоже не отъемлемая часть почтового сервера. Например, это Postfix-maildrop.

Думаю вы прекрасно знаете как выглядит почтовый адрес, возьмем для примера test@hostname.ru . Для определения IP почтового сервера используется DNS, а точнее запись MX. То есть для домана hostname.ru есть запись MX  которая указывает на почтовый сервер. Этого уже вполне достаточно для работы электронно почты.

Но как же пользователям получать свою почту. Тут приходит на помощь протоколы POP3 (англ. Post Office Protocol Version 3) — стандартный интернет-протокол прикладного уровня, используемый клиентами электронной почты для получения почты с удалённого сервера по TCP-соединению. IMAP (англ. Internet Message Access Protocol) — протокол прикладного уровня для доступа к электронной почте. Есть специальный программы —
mail user agent, MUA (например Microsoft Outlook) которые делают за пользователя всю грязную работу. Подключаются к серверу, получают и отправляют почту.

Установка и настройка.

Я буду использовать дистрибутив Debian, но это не принципиально:

apt-get install postfix

Для вновь установленного Postfix настройка начинается с выбора типа почтовой конфигурации:

  • No configuration – в процессе установки не будут настраиваться какие-либо параметры.
  • Internet Site – Postfix будет настроен для отправки электронной почты другим почтовым серверам и приема сообщений от них.
  • Internet with smarthost – сервер Postfix будет использоваться для получения электронных сообщений от других почтовых серверов, но отправка писем будет осуществляться через сервер-ретранслятор.
  • Satellite system – ретранслятор будет использоваться и для получения, и для отсылки почты.
  • Local only – электронная почта будет пересылаться только внутри локальной учетной записи.

Выбираем Internet Site , будем исходить из того что домен у нас есть и мы его указываем в процессе настройки

Главный конфигурационный файл находиться в /etc/postfix/main.cf
Здесь имеется множество параметров, рассмотрим самые важные.

  • myhostname  используется для указания имени хоста почтовой системы. Это — имя хоста в интернете, для которого Postfix будет получать почту. Например mail.exempel.com
  • mydomain  позволяет указать почтовый домен, обслуживанием которого занимается сервер, например — example.com
  • myorigin  параметр позволяет указать доменное имя, используемое в почте, отправленной с сервера. От имени кого будет отправлена почта. Присвоим ему значение $mydomain, $ знак переменно. Можно указать и явно exempel.com
  • mydestination этот параметр содержит список доменов, которые сервер Postfix будет считать конечными пунктами назначения для входящей почты.
  • mynetworks важный параметр настройки. Она позволяет указывать то, какие сервера могут пересылать почту через сервер Postfix. Если не правильно настроить, вас просто атакую спамеры и ваш сервер попадет в черные списки.

Почтовый сервер Postfix может использовать два режима доставки почты:

  • Непосредственно в почтовый ящик пользователя.
  • В центральную директорию очередей, при этом почта попадает в папку /var/spool/mail, где имеется файл для каждого пользователя. mail_spool_directory = /var/spool/mail

Собственно вот сервер уже и запустился, проверим что порты открыт и сервер получат и отправляет почту :

netstat -lptn

Давайте теперь попробуем отправить тестовое письмо из консоли с помощью почтового агента mailx :

echo " It is test mail" | mail -s "Test" exempel@exempel.com

С первым этапом мы успешно справились и развернули MTA на базе postfix на сервере. Мы уже можем отправлять и получать( для локальных пользователей) почту.