Postfix и Dovecot: Как установить и настроить почтовый сервер на Linux Ubuntu

В этой статье мы подробно рассмотрим, как установить и настроить почтовый сервер Postfix с Dovecot в Linux Ubuntu.Как настроить почтовый сервер чтобы ваша почта не попала в спам, как добавить DNS записи SPF, DKIM и DMARC. Шаг за шагом мы пройдемся по процессу установки и настройки, чтобы вы смогли создать свой собственный почтовый сервер на своем компьютере!

Postfix и Dovecot: Как установить и настроить почтовый сервер на Linux Ubuntu

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

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

Dovecot — это агент доставки почты, написанный в первую очередь с учетом требований безопасности. Я покажу, как его настроить в качестве сервера IMAP или POP3.

Шаг Этап Описание
1 Что нужно для установки 1. Доступ к серверу с Ubuntu.
2. Административные права (root доступ) или доступ через sudo.
3. Доменное имя или поддомен для почтового сервера.
4. Возможность создания записей DNS для вашего домена.
2 Введите имя хоста и создайте записи DNS для домена 1. Установите имя хоста командой:
sudo hostnamectl set-hostname mail.example.com
2. Настройте DNS-записи для домена:
A-запись: Указывает на IP-адрес вашего сервера.
MX-запись: Указывает на доменное имя почтового сервера (например, mail.example.com).
3 Установка почтового сервера Postfix в Ubuntu 1. Обновите список пакетов:
sudo apt update
2. Установите Postfix:
sudo apt install postfix
3. Во время установки выберите режим Internet Site и введите домен.
4. Измените конфигурационный файл Postfix:
sudo nano /etc/postfix/main.cf
5. Добавьте или измените следующие параметры:
myhostname = mail.example.com
mydomain = example.com
myorigin = /etc/mailname
inet_interfaces = all
mydestination = $myhostname, $mydomain, localhost.localdomain, localhost
4 Тестирование почтового сервера Postfix на Ubuntu 1. Перезапустите Postfix:
sudo systemctl restart postfix
2. Отправьте тестовое письмо командой:
echo "Тестовое письмо" | mail -s "Test" user@example.com
3. Проверьте журнал Postfix:
sudo tail -f /var/log/mail.log
5 Установка Dovecot IMAP и POP в Ubuntu 1. Установите Dovecot IMAP и POP3:
sudo apt install dovecot-imapd dovecot-pop3d
2. Измените конфигурационный файл Dovecot:
sudo nano /etc/dovecot/dovecot.conf
3. Добавьте или проверьте следующие параметры:
protocols = imap pop3 lmtp
mail_location = maildir:~/Maildir

4. Перезапустите Dovecot:
sudo systemctl restart dovecot
Перейти к просмотру
Как установить и настроить почтовый сервер postfix с dovecot в Linix Ubuntu

Как установить и настроить почтовый сервер postfix с dovecot в Linix Ubuntu

Шаг 1. Что нужно для установки

Для начала установки вам потребуется настроенный с полным доменным именем (FQDN), сервер Linux Ubuntu. На сервере нужно добавить пользователя без root полномочий, но с привилегиями sudo. И открыть соответствующие порты в вашей сети. Сервер с нужными настройками у меня уже есть, настроены порты для него, осталось добавить пользователя и приступать к установке почтовых приложений.

Для добавления пользователя откройте терминал, сочетанием клавиш Ctrl + Alt + T, и выполните такую команду:

adduser demo

Добавление пользователя через терминал

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

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

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

usermod -aG sudo demo

Добавление пользователя через терминал

Шаг 2. Задайте имя хоста и создайте записи DNS для домена

Следующее что нужно сделать это установить действительное доменное имя для вашего сервера.

Для этого есть специальная команда hostnamectl:

sudo hostnamectl set-hostname hetmansoftware.com

Установить действительное доменное имя для вашего сервера

Затем нужно добавить MX и A записи для домена в панель управления DNS. Эти записи будут указывать другим почтовым агентам что ваш домен отвечает за доставку электронной почты.

Добавить MX и A записи для домена в панель управления DNS

Откройте панель управления DNS и добавьте эти записи, нужно указать публичный IP адрес вашего сервера.

Шаг 3. Установка почтового сервера Postfix в Ubuntu

Теперь можно приступать к установке почтового агента Postfix.

Для его установки выполните такую команду:

$ sudo apt-get install postfix

Добавить MX и A записи для домена в панель управления DNS

В открывшемся окне - Postfix Configuration, жмем – Ок. Далее система предложит выбрать тип настройки почты, здесь нужно выделить - «Internet Site» - Enter.

Выбрать тип настройки почты

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

Нужно ввести доменное имя для отправки электронной почты

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

$ sudo systemctl status postfix

Проверить версию Postfix и статус службы

Если нужно изменить конфигурацию введите команду

sudo dpkg-reconfigure postfix

Жмем – Ок и нужно выделить - «Internet Site» - Enter. В следующем окне нужно ввести доменное имя, которое будет использоваться для отправки электронной поты. Затем получателя почты. Указать другие направления для приема почты.

Указать другие направления для приема почты

Принудительно синхронизировать обновления в почтовой очереди: Нет. Локальные сети оставляем без изменений.

Указать другие направления для приема почты

Ограничение размера почтового ящика: 0. Символ расширения локального адреса: +. Используемые интернет-протоколы: все.

Использовать все интернет-протоколы

Шаг 4. Тестирование почтового сервера Postfix на Ubuntu

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

$ telnet gmail-smtp-in.l.google.com 25

Проверим, подключен ли наш почтовый сервер к порту 25

Выведенный системой результат указывает что соединение успешно установлено. Чтобы закрыть соединение введите – quit.

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

apt install mailutils

Для этого выполните такую команду.

/usr/sbin/sendmail dmitriyzh23@gmail.com

Укажите почтовый адрес для отправки письма, тему, и содержимое, затем Сtrl + D для отправки.

Отправка тестового письма

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

Письмо попало в спам

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

Папка var/mail/

Такой формат записи называется - mbox. Для использования формата – maildir, который разделяет сообщения на отдельные файлы, которые затем перемещаются между каталогами в зависимости от действий пользователя, нужно внести изменения в файл конфигурации.

Sudo nano /etc/postfix/main.cf

Добавляем строку home_mailbox= Maildir/:

Вносим изменения в файл конфигурации

Или выполним команду

sudo postconf -e 'home_mailbox= Maildir/'

В таком случае почта будет храниться в отдельных файлах по такому пути: home/demo/Maildir/new

Шаг 5. Установка Dovecot IMAP и POP в Ubuntu

В итоге почтовый сервер уже работает, можно отсылать и принимать почту, но вряд ли он обойдется без возможности отправки почты по SMTP. Поддержка этого протокола уже есть в Postfix, но по умолчанию там нет никакой авторизации. Для добавления поддержки авторизации следует использовать Dovecot. Как бонус вы получите возможность просматривать ваши письма по протоколам POP3 и IMAP. Сначала надо установить сам сервис Dovecot для его установки выполните такую команду:

sudo apt-get install dovecot-imapd dovecot-pop3d

После установки рекомендуется перезапустить службу – dovecot.

sudo systemctl restart dovecot

Установить сервис Dovecot

Чтобы настроить dovecot вам потребуется отредактировать файл /etc/dovecot/dovecot.conf. Чтобы открыть его выполните следующую команду

nano /etc/dovecot/dovecot.conf:

Вы можете выбрать какой протокол использовать. Это может быть pop3, pop3s (безопасный pop3), imap или imaps (безопасный imap). IMAPS и POP3S более безопасные чем обычные IMAP и POP3, поскольку используют SSL шифрование для соединения. Как только вы выберете протокол, исправьте следующую строку в файле dovecot.conf

Чтобы открыть его выполните следующую команду

nano /etc/dovecot/dovecot.conf:

Добавьте (Измените) эту строку

protocols = pop3 pop3s imap imaps

Ctrl + Х, и yes для сохранения - Enter.

Добавляем в конфигурация pop3 pop3s imap imaps

Теперь проверим работу POP3. Переходим на сервис проверки, вводим данные, start test и смотрим результат.

Добавляем в конфигурация pop3 pop3s imap imaps

Итак, почту мы настроили, теперь нужно сделать так чтобы она не попадала в спам, для этого нужно добавить еще несколько DNS записей. Открываем панель управления DNS. Добавляем записи SPF, DMARC и DKIM.

Как добавить DKIM запись

Для работы SPF и DMARC достаточно добавить их DNS записи, для работы DKIM нужно его установить на сервере.

Добавляем записи SPF, DMARC и DKIM в панели DNS

«DKIM (DomainKeys Identified Mail)» — метод E-mail аутентификации, разработанный для обнаружения подделывания сообщений, пересылаемых по email. Dkim дает возможность получателю проверить, что письмо действительно было отправлено с заявленного домена.

Для установки пакета выполните такую команду.

apt-get install opendkim opendkim-tools

Установка Dkim

Затем запускаем и добавляем в автозагрузку

sudo systemctl start opendkim

sudo systemctl enable opendkim

Далее, нужно создать сертификат, с помощью opendkim-genkey

Создаем каталог для ключей, такой командой

mkdir /etc/opendkim

И генерируем ключ такой командой

opendkim-genkey -D /etc/opendkim/ --domain hetmansoftware.com --selector mail

Здесь нужно указать доменное имя вашего сервера.

Запускаем Dkim и создаем сертификат

В папке /etc/opendkim/ должно появиться два файла с расширениями .private (закрытый ключ) и .txt (txt-запись). Далее настроим DNS.

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

cat /etc/opendkim/mail.txt

Копируем строку с закрытым ключем Dkim

Копируем содержимое, переходим в панель управления DNS и создаем TXT-запись:

mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "

"содержимое txt файла"

mail - название нашего селектора,

p= p=MIIBIjANB...IDAQAB - сокращенная запись открытого ключа.

Создаем запись в панели управления DNS

sudo chown -R opendkim:opendkim /etc/opendkim

Теперь внесем изменения в конфигурационном файле

sudo nano /etc/opendkim.conf

Здесь нужно раскоментировать и добавить несколько строк

AutoRestart Yes

AutoRestartRate 10/1h

Umask 002

Syslog yes

SyslogSuccess Yes

LogWhy Yes

Mode sv

Canonicalization relaxed/simple

UserID opendkim:opendkim

Socket inet:8891@localhost

PidFile /var/run/opendkim/opendkim.pid

ExternalIgnoreList refile:/etc/opendkim/TrustedHosts

InternalHosts refile:/etc/opendkim/TrustedHosts

KeyTable refile:/etc/opendkim/KeyTable

SigningTable refile:/etc/opendkim/SigningTable

SignatureAlgorithm rsa-sha256

Внесем изменения в конфигурационном файле

Добавим наш домен в доверенные хосты.

sudo nano /etc/opendkim/TrustedHosts

Добавляем домен, Сtrl + Х, yes, Enter:

Добавим наш домен в доверенные хосты

Нужно указать путь к ключу.

sudo nano /etc/opendkim/KeyTable

mail._domainkey.hetmansoftware.com hetmansoftware.com:mail:/etc/opendkim/dkim.private

Сtrl + Х, yes, Enter

Нужно указать путь к ключу

Путь к подписи

sudo nano /etc/opendkim/SigningTable

*@hetmansoftware.com mail._domainkey.hetmansoftware.com

Сtrl + Х, yes, Enter

Нужно указать путь к подписи

Перезапускаем сервисы

sudo systemctl restart opendkim

sudo systemctl restart postfix

Итак, запись добавили теперь проверим ее. Открываем в браузере сервис проверки DKIM.

https://dmarcian.com/dkim-inspector/

Вводим в поля домен и имя селектора. Сервис нашел мою DKIM запись.

Сервис проверки DKIM

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

Теперь еще раз проверим отправку почты.

/usr/sbin/sendmail dmitriyzh23@gmail.com

From: demo@hetmansoftware.com

Subject: test

Test send mail spf dkim dmarc

Ctrl + D

Письмо дошло, и на этот раз не попало в спам. Отправим ответ на письмо. Почта работает.

Сервис проверки DKIM

Мы установили и настроили почтовый агент postfix и dovecot, проверили работу почты и добавили соответствующие DNS записи. Для более удобной работы можно добавить сервер хранения MySql и почтовый клиент, к примеру Roundcube.

Перейти к просмотру
Как восстановить электронные письма с сервера Postfix, Dovecot, и почтового клиента Thunderbird

Как восстановить электронные письма с сервера Postfix, Dovecot, и почтового клиента Thunderbird

Dmytriy Zhura

Автор: , Технический писатель

Дмитрий Жура – автор и один из IT-инженеров компании Hetman Software. Имеет почти 10 летний опыт работы в IT-сфере: администрирование и настройка серверов, установка операционных систем и различного программного обеспечения, настройка сети, информационная безопасность, внедрения и консультация по использованию специализированного ПО. Является экспертом в области восстановления данных, файловых систем, устройств хранения данных и RAID массивов.

Andrey Mareev

Редактор: , Технический писатель

В далеком 2005 году, я получил диплом по специальности «Прикладная математика» в Восточноукраинском национальном университете. А уже в 2006 году, я создал свой первый проект по восстановлению данных. С 2012 года, начал работать в компании «Hetman Software», отвечая за раскрутку сайта, продвижение программного обеспечения компании, и как специалист по работе с клиентами.

Рекомендуем для вас

Вас приветствует ассистент Hetman Software, созданный на основе искусственного интеллекта.
Начать Чат