Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Как самостоятельно создать почтовый сервер

38431
14 минут чтения
Средний рейтинг статьи: 3.3

Почтовый сервер, как следует из названия, — это устройство, которое отвечает за корректную доставку электронных писем от отправителя получателю. Так, например, когда вы отправляете почту через Gmail, вероятнее всего вы используете почтовый сервер Google. 

Почтовый клиент — это программа, которая используется непосредственно для работы с почтой: чтения, отправки и хранения. Примеры таких клиентов — Microsoft Outlook, Thunderbird и так далее. 

Перенос серверов в облако

Перенесем вашу инфраструктуру в облако — быстро,
безопасно и с гарантией результата.

Предоставим грант до 1 000 000 ₽ на облачную
инфраструктуру и возьмем на себя весь процесс.

Протоколы для приёма и отправки почты

SMTP

Сервер исходящей почты использует протокол SMTP — simple mail transfer protocol — дословно переводится как «простой протокол передачи почты». Главная задача протокола — быть ретранслятором между отправителем и получателем. Она заключается в выполнении каждой из двух ключевых функций: проверять конфигурацию и разрешать отправку устройству-отправителю, отправлять сообщение и получать код ответа. 

SMTP-сервер использует 25 и 465 порты для отправки почты с шифрованием и без шифрования соответственно. 

POP3

POP3 (Post Office Protocol) — протокол для получения электронной почты. Он позволяет установить соединение с сервером и загрузить письмо на локальное устройство, чтобы отобразить его в почтовом клиенте. При этом на удалённом сервере информация не сохраняется (однако существует опция создания дублей).

Этот протокол использует 110 и 995 порты (без шифрования и SSL/TLS). 

IMAP

IMAP (Internet Message Access Protocol) — протокол с теми же задачами и функциями, что и POP3. Ключевое отличие в том, что IMAP позволяет работать с почтой непосредственно на сервере, без дублирования почты на локальное устройство. 

Используются порты 143 и 993 (без шифрования и SSL/TLS).

Зачем нужен собственный почтовый сервер? 

Чаще всего ответ на этот вопрос: «если настроить свой сервер, можно использовать свой домен в адресе электронной почты». Это верный, однако не совсем точный ответ. 

Настроить почту на своём домене вы сможете и без создания собственного сервера. Такую услугу, например, предоставляют VK Group, Яндекс.Почта и Google. Вам нужно только купить домен и привязать его к серверам компании в личном кабинете. 

Основное преимущество такого подхода — уже настроенный SMTP-сервер. То есть вам не придётся заниматься настройками переадресации, антиспам-фильтрами и прочими сложными настройками. Достаточно лишь грамотно указать NS-записи, а это не так сложно, как создать свой почтовый сервер. Кроме того, стоимость обслуживания и настройки гораздо ниже по сравнению с конфигурацией собственного сервера.

Однако при использовании сторонних сервисов вы не будете иметь полный контроль над работой почты. Во-первых, количество отправляемых писем будет ограничено. У каждой компании установлены свои лимиты, но вам не хватит квоты, если вы работаете с большими объёмами электронной почты: корпоративная почта, рассылки и так далее. 

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

Создание почтового сервера

В этой статье мы рассмотрим способы создания собственного почтового сервера. Для наших целей отлично подойдут облачные серверы Timeweb — мы выберем себе устройство с ОС Ubuntu версии 20.04. 

Настроенная нами почта будет поддерживать шифрование, мы обеспечим защиту от спама, а также настроим панель администрирования писем в веб-среде.

Подготовка сервера

Первый шаг — переход в режим суперпользователя root:

    

Перед установкой необходимого программного обеспечения обновим пакеты на сервере:

    

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

    

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

    

где mail.hostname.ru — имя хоста.  

Далее для корректной работы всех планировщиков и непосредственно почты настраиваем временную зону — устанавливаем пакет для синхронизации времени chrony:

    

Если ваша временная зона отличается от МСК, выберите подходящую, воспользовавшись командой timedatectl list-timezones.

Запускаем chrony:

    

Теперь нужно открыть порты, необходимые для работы почтового сервера, с помощью утилиты iptables. Нам нужен следующий набор портов: 

  1. 25, 465 — SMTP
  2. 110, 995 — POP3
  3. 143, 993 — IMAP
  4. 80, 443 — HTTP 

В списке выше первыми идут порты для стандартных соединений, а вторыми — для защищённых. Воспользуемся утилитой iptables:

    

Правила iptables сохраняются в течение одного сеанса, то есть после перезагрузки устройства они сбросятся. Чтобы этого избежать, используем пакет iptables-persistent:

    

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

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

Postfix — агент передачи почты (mail transfer agent) с открытым исходным кодом. Он имеет модульную архитектуру, которая не требует работы из-под суперпользователя root. Установим приложение postfix и postfix-mysql для работы с базой данных:

    

В диалоговом окне в процессе установки выбираем Internet Site. Это предполагает, что у вас есть доступ к редактированию DNS-записей и вы можете указать FQDN — полное имя домена. В следующем окне оставляем имя сервера и переходим далее. 

Image3

После установки создаём новую учётную запись в системе, из-под этого пользователя будем работать с почтой. С помощью утилиты groupadd создаём группу vmail:

    

Далее создадим пользователя vmail и назначим ему домашнюю директорию /home/mail:

    

… где 1080 — guid группы и uid пользователя. Если он занят, вы можете заменить его на любой другой. 

Проверим, что права на директорию /home/mail принадлежат пользователю vmail и группе vmail:

    

Конфигурация почтового сервера

После создания пользователя можно приступить к настройке postfix. Для этого открываем файл /etc/postfix/main.cf в любом текстовом редакторе:

    

… и редактируем строки:

    

Далее в этот же файл дописываем дополнительные опции, которые необходимы для корректной работы Postfix:

    

Теперь создадим файлы, которые указывали в этой конфигурации. Сперва укажем, где Postfix должен брать псевдонимы. Открываем файл /etc/postfix/mysql_virtual_alias_maps.cf:

    

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

    

Здесь dbname, user и password — база данных, имя пользователя и пароль для подключения к MySQL (настроим позже), query — шаблон запроса.

Делаем аналогичные действия с файлом для получения данных доменов:

    

Записываем:

    

Следом — файл с почтовыми ящиками:

    

Записываем:

    

На этом этапе мы можем перейти к настройке файла master.cf:

    

И записываем туда следующие настройки:

    

Генерация сертификатов безопасности

Для корректной работы почты нужно сгенерировать сертификаты безопасности с помощью утилиты openssl. В первую очередь создаём директорию, в которой будем хранить сертификаты (указывали в файле main.cf):

    

Запускаем и перезагружаем postfix:

    

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

Dovecot — IMAP и POP3 сервер с открытым исходным кодом. Установим его и модули для работы с БД:

    

Настраиваем способ хранения сообщений:

    

Записываем в файл каталог для хранения почты. Будем использовать иерархию домен → пользователь:

    

В этом же файле настраиваем метод аутентификации:

    

Настраиваем аутентификацию в Dovecot:

    

Заменяем строку !include auth-system.conf.ext на !include auth-sql.conf.ext, указывая, что использовать нужно sql-авторизацию.

Редактируем настройки шифрования:

    

В файле указываем:

    

При первом подключении пользователей создаём каталоги в домашней директории:

    

Добавляем строку:

    

Настраиваем подключение к базе данных:

    

И добавим в него:

    

Настраиваем интерфейс Dovecot:

    

Указываем:

    

Запускаем и перезагружаем Dovecot:

    

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

Для корректной работы PostfixAdmin нужен настроенный веб-сервер, PHP и база данных MySQL (стеки LAMP или LEMP). В этом руководстве пропустим конфигурацию веб-сервера и приступим непосредственно к установке PostfixAdmin.

Устанавливаем необходимые расширения php:

    

Скачиваем PostfixAdmin в корневой каталог веб-сервера с помощью утилиты wget:

    

Создаём каталог postfixadmin и помещаем туда содержимое архива:

    

И создаём каталог для хранения кэша шаблонов:

    

Ставим на весь каталог права веб-сервера:

    

База данных

Создаём базу данных и пользователя:

    

Если у вас MySQL версии ниже 8.0.11:

    

Если у вас MySQL 8.0.11 и выше:

    

В локальном файле конфигурации postfix добавим конфигурацию базы данных: 

    

Содержимое файла:

    

Заходим на страницу установщика postfixadmin в браузере — /postfixadmin/public/setup.php. Здесь нам будет предложено сгенерировать хэш для авторизации.

Image1

Вводим пароль и нажимаем на кнопку. Под формой увидим сообщение, в котором содержится хэш, его мы должны вставить в файл /var/www/html/postfixadmin/config.local.php:

    

Image5

Обновляем страницу /postfixadmin/public/setup.php и входим на страницу с паролем, который вводили для генерации хэша. Если сервер настроен верно, в результате мы увидим страницу с проверками конфигурации. 

В самом низу расположена форма, в ней создаём админа. После успешного создания переходим на страницу /postfixadmin/public/login.php и авторизуемся в аккаунт, который только что создали.

В итоге вы будете перенаправлены на стартовый экран панели администрирования. 

Image2

Создаём почтовый ящик в PostfixAdmin

В браузере переходим по адресу /postfixadmin/public/. В верхнем меню выбираем «Список доменов → Новый домен». 

Далее в разделе «Обзор → создать ящик» вводим данные для тестового почтового ящика. 

Image4

Теперь вы можете проверить подключение с помощью почтовых клиентов. Параметры для подключения:

  1. Сервер — имя вашего сервера
  2. IMAP — 143 STARTTLS
  3. POP3 — 110 STARTTLS
  4. SMTP — 25 STARTTLS
  5. Логин и пароль — данные, которые вы указали при создании ящика

Выгодные тарифы на облачные серверы

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Заключение

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

Основное преимущество владения своим почтовым сервером — возможность полностью настроить его под себя: создать неограниченное количество почтовых ящиков, привязать псевдонимы, включать и выключать пользователей. Все эти возможности можно реализовать, арендовав облачное решение Timeweb Cloud и настроив сервер по инструкции из этой статьи. 

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

38431
14 минут чтения
Средний рейтинг статьи: 3.3

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server