Настройка почтового сервера ubuntu

Обновлено: 04.07.2024

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

В этом руководстве мы расскажем, как установить и настроить Postfix на сервере Ubuntu 20.04. Затем мы протестируем способность Postfix правильно выполнять маршрутизацию, выполнив установку s-nail , почтового пользовательского агента (MUA), также называемого клиентом электронной почты.

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

Предварительные требования

Для прохождения этого обучающего модуля вам потребуется следующее:

  • Сервер под управлением Ubuntu 20.04, который будет работать как ваш почтовый сервер Postfix. Этот сервер должен иметь пользователя без прав root с привилегиями sudo , а также брандмауэр, настроенный с помощью UFW. Для выполнения этого требования следуйте указаниям нашего руководства по начальной настройке сервера Ubuntu 20.04.
  • Полное доменное имя, указывающее на ваш сервер Ubuntu 20.04. Помощь по настройке доменного имени в DigitalOcean можно найти в нашей документации по доменам и сетям DNS. Помните, что если вы планируете получать доступ к почте из внешнего источника, вам также потребуется запись MX, указывающая на ваш почтовый сервер.

Шаг 1 — Установка Postfix

Postfix включен в репозиторий Ubuntu по умолчанию, так что вы можете установить его с помощью APT.

Для начала обновите локальный кэш пакетов apt :

Затем установите пакет postfix с помощью следующей команды. Обратите внимание, что мы передаем переменную среды DEBIAN_PRIORITY=low в эту команду установки. В связи с этим, процедура установки предложит вам настроить некоторые дополнительные опции:

Процедура установки откроет серию интерактивных диалогов. Для целей данного обучающего модуля введите в диалогах следующие данные:

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

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

Для параметров будут указаны заданные ранее значения.

После завершения процедуры установки можно внести некоторые изменения в конфигурацию Postfix.

Шаг 2 — Изменение конфигурации Postfix

Теперь вы можете изменить дополнительные настройки, которые не предлагались в диалогах процедуры установки. Многие параметры конфигурации Postfix заданы в файле /etc/postfix/main.cf . Вместо того, чтобы редактировать этот файл напрямую, вы можете использовать команду Postfix postconf для запроса или установки параметров конфигурации.

Задайте для переменной home_mailbox значение Maildir/ . Впоследствии вы создадите структуру каталогов с этим именем в своем домашнем каталоге пользователя. Настройте home_mailbox с помощью следующей команды:

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

Мы определили расположение файла виртуальной карты в файле main.cf и теперь можем создать сам файл и начать сопоставление учетных записей электронной почты с учетными записями пользователей в системе Linux. Создайте файл в nano или другом предпочитаемом текстовом редакторе:

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

После сопоставления всех почтовых адресов с соответствующими учетными записями сервера вы можете сохранить и закрыть файл. Если вы использовали nano , нажмите CTRL + X , Y , а затем ENTER .

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

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

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

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

Шаг 3 — Установка почтового клиента и инициализация структуры Maildir

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

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

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

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

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

Выполнив этот шаг, установите клиент электронной почты s-nail с помощью APT:

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

Добавьте в конец файла следующие опции:

Вот что делают эти строки:

  • set emptystart : позволяет клиенту открываться даже при пустом почтовом ящике
  • set folder=Maildir : задает для каталога Maildir внутреннюю переменную folder
  • set record=+sent создает файл sent в формате mbox для хранения отправленной почты в каталоге, заданном в переменной folder , в данном случае Maildir

Сохраните файл и закройте его после завершения. Теперь вы готовы инициализировать структуру Maildir в вашей системе.

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

Для отправки письма добавьте строку в команду s-nail . Измените команду, чтобы сделать получателем вашего пользователя Linux:

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

Для проверки создания каталога выполните поиск каталога

Шаг 5 — Тестирование клиента

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

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

Вывод будет выглядеть следующим образом:

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

Заключение

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

Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.

Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.


Начнём с SMTP-сервера на Linux

SMTP-сервер

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

Сегодня в большинство дистрибутивов Linux встроены две наиболее распространённых реализации SMTP: sendmail и postfix.

Sendmail — это популярный почтовый сервер с открытым кодом, используемый во многих дистрибутивах Linux. К его минусам можно отнести несколько усложнённую архитектуру и недостаточно высокий уровень защиты.

Postfix — система немного более продвинутая, при разработке этого почтового сервера особое внимание было уделено вопросам безопасности.

Компоненты почтовой службы

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

Почтовый клиент, который ещё называют почтовым агентом (Mail User Agent, MUA). Именно с ним взаимодействует пользователь, например — это почтовые клиенты Thunderbird или Microsoft Outlook. Они позволяют пользователю читать почту и писать электронные письма.

Установка почтового сервера

Для настройки нашего сервера был выбран пакет Postfix. Это — популярный среди системных администраторов выбор, стандартный почтовый сервер в большинстве современных дистрибутивов Linux.

Начнём, проверив, установлен ли Postfix в системе:


Если обнаружить Postfix не удалось, установить его, например, в дистрибутивах, основанных на Red Hat, можно с помощью такой команды:


Затем запустим службу postfix и организуем её автозапуск при загрузке системы:


В дистрибутивах, основанных на Debian, вроде Ubuntu, установить Postfix можно так:


В ходе установки будет предложено выбрать конфигурацию сервера. Среди доступных четырёх вариантов (No configuration, Internet site, Internet with smarthost, Satellite system and Local only), мы выберем No configuration, что приведёт к созданию необходимых Postfix учётных записей пользователя и группы.

Настройка сервера

После установки почтового сервера Postfix, его нужно настроить. Большинство конфигурационных файлов находятся в директории /etc/postfix/.

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

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

Настраивают этот параметр так:

Этот параметр позволяет указать доменное имя, используемое в почте, отправленной с сервера. Присвоим ему значение $mydomain:


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

mydestination

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

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


mail_spool_directory

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

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

Эта переменная — важный параметр настройки. Она позволяет указывать то, какие сервера могут пересылать почту через сервер Postfix.

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

Если неправильно настроить параметр mynetworks, спамеры вполне смогут воспользоваться сервером как ретранслятором почты. Это очень быстро приведёт к тому, что какая-нибудь система борьбы со спамом поместит его в один из чёрных списков, вроде DNS Blacklist (DNSBL), или Realtime Blackhole List (RBL). Как только сервер попадёт в подобный список, очень немногие смогут получить письма, отправленные с его помощью.

Вот как может выглядеть настройка этого параметра:


smtpd_banner

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

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

inet_protocols

Эта переменная позволяет задавать версию IP, которую будет использовать Postfix при установлении соединений.


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


На самом деле, в конфигурационном файле Postfix можно ещё много чего настроить. Например — управлять уровнями безопасности, задавать опции отладки и другие параметры.

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


Если теперь проверить очередь, она должна оказаться пустой.

Тестирование почтового сервера

После настройки сервера на Postfix, его надо протестировать. Первый шаг в тестировании — использование локального почтового клиента, вроде mailx или mail (это — символьная ссылка на mailx).


Затем попробуйте принять письмо, отправленное с другого сервера.

Если вы столкнётесь с проблемами — проверьте логи. В дистрибутивах, основанных на Red Hat, то, что вам надо, можно найти по адресу /var/log/maillog. В Debian-дистрибутивах нужный файл можно найти здесь: /var/log/mail.log, или же по пути, заданному в настройках rsyslogd. Вот, если нужно, материал о логировании в Linux, и о том, как настраивать rsyslogd.

Если проблемы всё ещё не решены, попытайтесь проверить настройки DNS, взгляните на MX-записи, используя сетевые команды Linux.

Борьба со спамом


Затем надо запустить соответствующую службу и добавить её в автозагрузку:


После установки SpamAssassin, взгляните на его настройки в файле /etc/mail/spamassassin/local.cf.

SpamAssassin умеет отличать обычные письма от спама, основываясь на результатах исследования корреспонденции с помощью различных скриптов. Результаты проверок оцениваются в баллах.

Чем выше итоговая оценка письма — тем выше и вероятность того, что оно является спамом.

Параметр report_safe принимает значения 0, 1, или 2. Установка его в 0 означает, что письма, помеченные как спам, пересылаются в исходном виде, но их заголовок модифицируется с указанием на то, что они являются спамом.

Если этот параметр установлен в значение 1 или 2, SpamAssassin сгенерирует отчёт и отправит его получателю.

После установки и настройки SpamAssassin, нужно интегрировать его с Postfix. Пожалуй, легче всего это сделать с помощью использования procmail.

Создадим файл /etc/procmailrc и добавим в него следующее:


Затем отредактируем файл настроек Postfix — /etc/postfix/main.cf, задав параметр mailbox_command следующим образом:


И, наконец, перезапустим службы Postfix и SpamAssassin:


Надо сказать, что SpamAssassin не всегда распознаёт спам, что ведёт к наполнению почтовых ящиков ненужными письмами.

Откройте конфигурационный файл Postfix /etc/postfix/main.cf, измените параметр smtpd_recipient_restrictions и настройте другие параметры следующим образом:


Затем перезагрузите сервер Postfix:


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

Защита SMTP-соединения

Лучше всего передавать SMTP-трафик по TLS для защиты его от атаки через посредника.
Для начала нужно сгенерировать сертификат и ключ с использованием команды openssl:


Затем надо добавить в файл настроек Postfix /etc/postfix/main.cf следующее:


И, наконец, нужно перезагрузить службу Postfix:


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

Основы протоколов POP3 и IMAP

Итак, мы наладили процесс отправки и получения электронных писем по SMTP, но на этом организация полноценной почтовой службы не заканчивается. Рассмотрим следующие ситуации:

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

Сильнее всего распространены два популярных протокола доступа к почте — POP (Post Office Protocol), и IMAP (Internet Message Access Protocol).

В основе POP лежит очень простая идея. Центральный почтовый сервер на Linux всё время подключён к интернету, он получает и сохраняет письма для всех пользователей. Все полученные письма остаются в очереди на сервере до тех пор, пока пользователь не подключится к нему по протоколу POP и не загрузит письма.

Обратите внимание на то, что SMTP-сервер и POP-сервер могут без проблем работать на одной и той же машине. В наши дни это — обычная практика.

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

Используя IMAP, сервер будет поддерживать три режима доступа к почте:

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

Сервера POP3, POP3S, IMAP, и IMAPS слушают, соответственно, порты 110, 995, 143, и 993.

Установка Dovecot

Большинство дистрибутивов Linux содержат предустановленный Dovecot, однако, его можно установить и самостоятельно. В системах, основанных на Red Hat, это делается так:


В системах, основанных на Debian, функционал IMAP и POP3 предоставляются в двух разных пакетах:


Тут вам предложат создать самозаверенный сертификат для работы с IMAP и POP3 по SSL/TLS. Ответьте на вопрос yes и, при появлении соответствующего запроса, введите имя хоста вашей системы.

Затем можно запустить соответствующую службу и добавить её в автозагрузку:

Настройка Dovecot

Главный файл настроек Dovecot расположен по адресу /etc/dovecot/dovecot.conf. В некоторых дистрибутивах Linux этот файл размещается в папке /etc/dovecot/conf.d/ и, для подключения файлов настроек, используется директива include.

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

protocols: протоколы, которые надо поддерживать.


Здесь lmtp означает Local Mail Transfer Protocol. listen: IP-адрес, который будет слушать сервер.


Здесь звёздочка означает все интерфейсы IPv4, двойное двоеточие означает все интерфейсы IPv6.

userdb: база данных пользователей для аутентификации.


mail_location: это запись в файле /etc/dovecot/conf.d/10-mail.conf. Выглядит она так:


Dovecot поставляется со стандартными SSL-сертификатами и файлами ключей, которые используются в файле /etc/dovecot/conf.d/10-ssl.conf.


Когда пользователь пытается подключиться к Dovecot, сервер покажет предупреждение, так как сертификаты не подписаны. Если нужно, подписанные сертификаты можно приобрести в подходящем центре сертификации.

Не забудьте открыть порты сервера Dovecot на файрволе.


И про SMTP-порт не забудьте.


Затем сохраните правила. Если хотите освежить в памяти особенности работы с iptables в Linux, взгляните на этот материал.
Или, если вы используете firewalld, можете поступить так:


А, если что-то пошло не так, посмотрите лог-файлы /var/log/messages, /var/log/maillog, и /var/log/mail.log.

Итоги

Теперь вы можете настроить почтовую службу на своём Linux-сервере. Как видите, много времени это не займёт. Конечно, у рассмотренных здесь пакетов, вроде Postfix, уйма настроек, но если вы освоили описанную здесь последовательность действий и разобрались с основами, то всё, что вам понадобится, несложно будет выяснить из документации.

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

Перед началом установки всех необходимых компонентов, подготовим сервер. Это будет выделенный сервер с готовой конфигурацией.

В панели управления Selectel перейдем в представление Серверы и оборудование и нажмем на кнопку Заказать сервер.


На следующем представлении на вкладке Готовые серверы выберем сервер.


Выбираем сервер EL 10-SSD с процессором Intel Xeon E3-1230v5 3.4 ГГц, 4 ядра, памятью 32 ГБ DDR4 и двумя SSD-дисками по 240 ГБ. На сервер установим Ubuntu 20.04 LTS (64-bit).


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


В появившемся pop-up окне также нажимаем кнопку Оплатить.

После заказа сервера мы увидим таймлайн с шагами подготовки сервера: заказ сервера, оплата и настройка. Еще раз проверим конфигурацию и дождемся готовности сервера.


Через несколько минут сервер будет готов к работе.


Теперь можем приступать к установке программного обеспечения. Почтовый сервер Postfix можно установить с хранением учетных данных пользователей в базе данных и на файловой системе. Ниже расскажем про работу Postfix с базой данных MySQL, об установке интерфейса PostfixAdmin для управления почтовым сервером и Dovecot для авторизации. Вы также узнаете про работу с письмами через Roundcube и о повышении доверия почтовых сервисов при помощи SPF, DKIM и DMARC. Поехали!

Подготовительные действия

Перед началом установки пакетов, подготовим учетную запись postfix, от имени которой будем в дальнейшем выполнять все действия. Дополнительно выдадим учетной записи права sudo:

Установка и настройка MySQL для Postfix и Roundcube

Базу данных MySQL мы будем использовать сразу для двух целей: хранение учетных данных пользователей Postfix и хранение конфигурации и данных Roundcube.

Установим базу данных MySQL, PHP и веб-сервер Apache:

Запускаем MySQL, веб-сервер и добавим их в автозагрузку:

После установки базы данных, зададим пароль для учетной записи root и создадим базы данных для Postfix и Roundcube:

В консоли mysql> выполняем следующие команды, подтверждая каждую нажатием Enter:

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

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

Загрузим PostfixAdmin, перенесем исполнимые файлы в /usr

Чтобы веб-сервер мог работать с директорией PostfixAdmin, изменим владельца соответствующей директории (и всех вложенных) на www-data:

Далее добавим символическую ссылку из директории веб-сервера:

Осталось создать файл конфигурации PostfixAdmin, перезагрузить веб-сервер и можно будет открывать веб-интерфейс PostfixAdmin.

В файле конфигурации PostfixAdmin содержатся следующие параметры:

  • mysql для MySQL 3.23 и 4.0, 4.1 или 5;
  • mysqli для MySQL 4.1+ или MariaDB;
  • pgsql для PostgreSQL;
  • sqlite для SQLite 3.

Альтернативный способ создать привилегированного пользователя — выполнить специальную команду в консоли:


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



Установка Postfix

Установим из пакетов сам Postfix и коннектор к базе данных MySQL:

После окончания установки в консоли откроется графический интерфейс первоначальной настройки.

На первом экране настройки выбираем Internet Site:


На следующем экране нужно указать FQDN сервера, на котором работает почтовый сервис:


Затем добавляем следующее:

Открываем файл конфигурации /etc/postfix/master.cf на редактирование:

Добавляем в конец файла следующие строки:

На следующих шагах создадим конфигурационные файлы, при помощи которых Postfix сможет обращаться к базе данных MySQL.

Осталось сгенерировать самоподписанный сертификат. При выполнении команды openssl будут задаваться вопросы. Ответы на них могут быть любыми, на работу сервиса это никак не повлияет.

На этом настройка Postfix завершена и можно проверить ее корректность и запускать сервис:

Настройка брандмауэра для postfix

Для внесения изменений изменений в правила брандмауэра воспользуемся специальной утилитой ufw (расшифровывается как uncomplicated firewall). По сравнению с известным iptables, у ufw проще синтаксис. Установим и запустим ufw:

Проверим текущее правило для Postfix:

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

Настройка почтового сервера Dovecot

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

Создадим специализированную учетную запись для работы с Dovecot и добавим права sudo:

Далее создадим конфигурационный файл /etc/dovecot/local.conf, в который впишем настройки сервиса. Обратите внимание, что сертификат из переменных ssl_key и ssl_cert будет использоваться тот же самый, который был сгенерирован для Postfix.

Теперь создадим конфигурацию для подключения к базе данных MySQL:

Настройки выполнены, остается перезапустить сервис:

Настройка брандмауэра для Dovecot

Аналогично Postfix, для настроек будем использовать утилиту ufw. Проверим текущее правило для сервисов Dovecot (их два):

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

Установка веб-интерфейса Roundcube

Веб-сервис Roundcube представляет из себя почтовый клиент, который предназначен для получения и отправки электронной почты. Работает на основе сервера приложений Apache и базы данных MySQL, которые мы уже подготовили к работе.

Начнем с создания конфигурации для Apache:

После этого перезагрузим Apache:

Загрузим пакет Roundcube из репозитория на Github, распакуем его и копируем в созданную папку сервера Apache:

Теперь нужно дать веб-серверу права на доступ к директории с файлами Roundcube:


Видим для начала, что в PHP-интерпретаторе не хватает расширения php-xml, отвечающий за поддержку формата XML и программного интерфейса DOM. Также у нас отсутствует расширение функций интернационализации php-intl. Устанавливаем оба недостающих пакета:

Перезагружаем веб-сервер для активации расширений:

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

Желательно также установить и опциональные расширения по той же схеме, например:


Следующим этапом надо проверить, что у нас есть необходимый коннектор к базе данных. Поскольку в инструкции мы рассматриваем классический вариант с MySQL, то будет достаточно только его. Еще нужно установить правильную временную зону.

Открываем на редактирование конфигурационный файл PHP:

Нажимаем Ctrl + W и вводим слово timezone. Подтверждаем выполнение поиска нажатием Enter. Раскомментируем строку (убрав символ ;) date.timezone и приводим ее к виду:

Выходим из режима редактирования Ctrl + X, подтверждаем сохранение изменений и еще раз перезагружаем веб-сервер:

Еще раз обновляем страничку инсталлятора и видим, что переменная date.timezone успешно определена:


В нижней части интерфейса нужно нажать Next и перейти к следующему представлению. Здесь мы укажем настройки базы данных. Имя базы данных, равно как и имя пользователя задаем roundcube. При первой проверке соединения Roundcube сообщит о том, что у нас нет схемы данных. Позволяем ее создать, нажав на кнопку Initialize database.


Далее убедимся, что схема данных корректно создана и отсутствуют критические ошибки.



На этом настройка Roundcube завершена. Для безопасности не забудьте удалить директорию installer из корня сайта по адресу /var/www/html/sites/roundcube или выставьте переменную enable_installer в config.inc.php в disabled.

Настройка DKIM, SPF и DMARC записей

Настройка DKIM

Для чего нужен DKIM? Этот инструментарий добавляет к заголовкам письма цифровую электронную подпись, что по задумке должно гарантировать подлинность того, что письмо отправлено именно от указанного в заголовках домена. Для генерации DKIM-ключа мы будем использовать утилиту opendkim. Установим утилиту, запустим ее и добавим в автозапуск.

Теперь создадим специальную директорию с ключами, сгенерируем ключи (закрытый и открытый), внесем изменения в конфигурационные файлы и перезапустим сервис.

Теперь посмотрим содержимое файла /etc/opendkim/keys/<ваш домен>/dkim.txt. В нем содержится публичный ключ, который необходимо указать в настройках домена.

Копируем значение без кавычек, которое указано в круглых скобках и вставляем в значение новой TXT-записи в настройках DNS. Для этого в панели управления Selectel перейдем в представление DNS-хостинг, откроем настройки домена и нажмём кнопку Добавить запись. В выпадающем меню нужно выбрать тип записи TXT.


Настройка SPF

Этот инструмент помогает внешним интернет-сервисам (а особенно сервисам электронной почты) однозначно определять серверы, с которых может отправляться почта от домена. Для этого, аналогично примеру выше, нужно создать новую TXT-запись в настройках домена.


Настройка DMARC


Заключение

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

Еще одна важная задача при эксплуатации этих инструментов — следить за выходом обновлений для каждого из них и своевременно их применять.

Многие пользователи Убунту используют систему не только для домашних нужд. Такой подход вполне оправдан, ведь на Linux-системах гораздо удобнее заниматься программированием, созданием серверов и веб-сайтов. Одно из удобств — создание сервера электронной почты. Для новичков эта задача покажется ужасно трудной, однако если вы разберётесь, как установить и настроить почтовый сервер для Ubuntu, задача уже не покажется вам такой уж тяжёлой.

Как настроить почтовый сервер

Как выполняется настройка почтового сервера на базе Ubuntu.

Немного теории

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

Настроенный почтовый сервер, если говорить очень просто — это почтальон, который получает «письмо» от одного почтового клиента и отдаёт другому. В этом, в принципе, вся суть работы этого программного обеспечения. Почтовый сервер нужен не только для передачи электронной почты. На сайтах он отвечает за регистрацию пользователей, передачу заполняемых форм и другие важные действия, без которых сайт стал бы подобием книги, на которую можно только смотреть, перелистывая страницы, а вот что-то сделать трудновато.

Почтовые серверы на Linux существенно отличаются от оных на Windows и других системах. На Винде это уже готовая закрытая программа, которой остаётся только начать пользоваться. Дистрибутивы Линукса же предполагают самостоятельную настройку всех компонентов. Причём сервер будет в итоге состоять не из одной программы, а из нескольких. Мы будем использовать Postfix в сочетании с Dovecot.

Почтовый агент Postfix

Почему Postfix?

На Убунту существует несколько почтовых клиентов, но всё же мы выбрали именно этот. Настройка Posfix на Ubuntu гораздо легче, чем того же SendMail, а это важно для начинающего пользователя. В сочетании с Dovecot Postfix способен выполнять всё то, что обычно требуют от почтовых серверов.

Postfix — это непосредственно сам агент передачи почты. Ему и предстоит сыграть главную роль во всём представлении. Это программа с открытым исходным кодом, которую используют по умолчанию многие серверы и веб-сайты. Dovecot — это агент получения доставки почты.

Установка Postfix

Первым делом нужно воспользоваться командой для обновления локальной базы пакетов:

Сам агент Postfix можно свободно установить из репозитория, и это будет следующий шаг:

Команда sudo apt-get install postfix

Когда запустится интерфейс этого приложения, нужно выбрать пункт «Internet Site», после чего произойдёт создание файла конфигурации с именем main.cf.

Пункт «Internet Site»

Настройка Postfix

Теперь нужно произвести настройки почтового агента. Для этого нужно первым делом создать файл с именем virtual в папке /etc/postfix// Для этого можно воспользоваться командой touch:

Теперь нужно создать папку private в директории /etc/postfix/. В ней будут храниться настройки почты:

Далее нужно создать ещё несколько файлов в директории /etc/postfix/private/:

touch canonical sender_relay sasl_passwd

Теперь нужно поменять некоторые настройки в файле конфигурации main.cf. Откройте его в блокноте в привилегированном режиме:

Посмотрите использующийся IP-адрес с помощью такой команды:

Этот IP-адрес нужно вписать в параметры mydestination. Параметр alias_maps замените на virtual_alias_maps, тогда письма смогут пересылаться на другие адреса.

Теперь нужно поменять расположение хэша:

Для параметра mynetworks установите такие значения:

Если вы хотите, чтобы сервер мог работать с почтой Яндекса, в конце файла добавьте следующие параметры:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
sender_canonical_maps = hash:/etc/postfix/private/canonical

В файле /etc/postfix/private/canonical добавьте свою почту Яндекса:

В файл /etc/postfix/private/sender_relay добавьте:

Если вы используете Ubuntu Server 16, нужно открыть порты для работы почтовых служб. Для этого используйте команду:

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

Проверка работы Postfix

Полезно установить утилиту mutt, чтобы работать с почтой было удобнее. Это можно сделать с помощью команды:

Если всё хорошо, то письмо будет получено. Но учтите, что в Google такие письма обычно попадают в спам.

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

Сначала нужно установить утилиту:

sudo apt-get install dovecot-imapd dovecot-pop3d

Теперь откройте файл /etc/dovecot/dovecot.conf и добавьте в него перечень протоколов:

protocols = pop3 pop3s imap imaps

Далее откройте файл /etc/dovecot/conf.d/10-mail.conf и посмотрите, есть ли там такая строка:

Если эта строка имеет другое содержимое, нужно его изменить на указанное. Если её нет вовсе, то нужно её добавить.

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

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

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