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

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

В этом подробном руководстве вы пройдете все шаги по созданию полнофункционального почтового сервера на Ubuntu 20.04/22.04 от начала и до конца.

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

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

  • Сервер Ubuntu 20.04/22.04 со статическим публичным IP-адресом. Рекомендуется использовать VPS.
  • Зарегистрированное доменное имя. Оно будет использоваться для отправки и получения электронной почты с вашего почтового сервера.
  • Административный доступ к вашему серверу Ubuntu.
  • Базовые знания командной строки Linux.

Мы будем использовать Postfix для SMTP-сервера, Dovecot для IMAP/POP3 и OpenDMARC для аутентификации электронной почты. Также будет настроена база данных MySQL для хранения информации о виртуальных доменах и пользователях.

Давайте начнем с обновления репозитория пакетов и установки некоторых зависимостей на наш сервер Ubuntu:

$ sudo apt update
$ sudo apt install postfix postfix-mysql dovecot-imapd dovecot-pop3d mariadb-server openssl openssl-blacklist

Далее мы выполним шаги по настройке каждого компонента.

Настройка Postfix

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

Откройте файл с помощью:

$ sudo nano /etc/postfix/main.cf

Найдите myhostname и установите в качестве параметра зарегистрированное доменное имя:

myhostname = mail.example.com

Далее найдите параметр mydomain и установите его на свой домен:

mydomain = example.com

Установите параметр myorigin параметр $mydomain:

myorigin = $mydomain

Под INTERNET_PROTOCOLS Убедитесь, что ipv4 включена:

inet_interfaces = all
inet_protocols = all

Это позволяет Postfix прослушивать все доступные сетевые интерфейсы IPv4.

Теперь найдите файл mydestination и установите следующее значение:

mydestination = $myhostname, localhost.$mydomain, $mydomain

Здесь указываются домены, на которые Postfix будет доставлять почту локально.

После завершения редактирования сохраните и закройте файл.

Далее нам нужно настроить SMTP-аутентификацию. Сгенерируйте файл паролей для Postfix с помощью команды postmap командой:

$ sudo postmap /etc/postfix/sasl_passwd

Создайте файл пользователя и пароля:

$ sudo nano /etc/postfix/sasl_passwd

Добавьте свой e-mail и пароль в отдельные строки:

mail.example.com [email protected]
mail.example.com password123

Сохраните и закройте файл.

Теперь отредактируйте конфигурацию Postfix SASL:

$ sudo nano /etc/postfix/sasl/smtpd.conf

Убедитесь, что в ней есть следующие параметры:

pwcheck_method: saslauthd
mech_list: plain login

Это устанавливает Postfix на использование saslauthd службу для аутентификации.

Перезапустите Postfix, чтобы загрузить новую конфигурацию:

$ sudo systemctl restart postfix

Теперь Postfix настроен и готов к отправке и получению электронной почты.

Настройка Dovecot

Dovecot будет использоваться для работы с протоколами IMAP и POP3 для доступа к электронной почте из почтовых клиентов, таких как Outlook или Thunderbird.

Откройте файл конфигурации Dovecot:

$ sudo nano /etc/dovecot/dovecot.conf

Найдите раздел протоколов и включите imap и pop3:

protocols = imap pop3

Включите аутентификацию SMTP:

disable_plaintext_auth = yes

Установите местоположение почты:

mail_location = maildir:/var/mail/%d/%n

Теперь откройте файл конфигурации аутентификации SMTP:

$ sudo nano /etc/dovecot/conf.d/10-auth.conf

Найдите auth_mechanisms параметр и установите его:

auth_mechanisms = plain login

Это позволит использовать обычный текст и аутентификацию по логину, аналогичную Postfix.

Наконец, откройте файл разрешений:

$ sudo nano /etc/dovecot/conf.d/10-mail.conf

И установите:

mail_access_groups = mail

Это позволяет членам mail группе доступ к почтовым ящикам.

Сохраните и перезапустите Dovecot:

$ sudo systemctl restart dovecot

Теперь Dovecot готов к работе с почтой IMAP и POP3.

Настройка базы данных MySQL

Далее мы настроим базу данных MySQL для хранения виртуальных доменов и пользователей нашего почтового сервера.

Войдите в оболочку MySQL:

$ sudo mysql

Создайте базу данных с именем mailserver:

CREATE DATABASE mailserver;

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

GRANT SELECT,INSERT,UPDATE,DELETE ON mailserver.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'password123';

Выйдите из MySQL:

quit

Теперь мы можем импортировать SQL-файл конфигурации Postfix для создания необходимых таблиц:

$ sudo mysql mailserver < /etc/postfix/mysql/postfix_db.sql

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

Виртуальные домены и пользователи

Настроив базу данных, мы можем создать виртуальные домены и пользователей.

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

Сначала откройте файл конфигурации виртуального домена Postfix:

$ sudo nano /etc/postfix/mysql-virtual_domains.cf

Отмените параметр config_directory и установите его на наш конфиг MySQL:

config_directory = /etc/postfix/mysql

Теперь давайте создадим запись виртуального домена в базе данных. Войдите в MySQL:

$ sudo mysql mailserver -p

Вставьте строку для домена:

INSERT INTO `virtual_domains` (`id` ,`name`) VALUES ('1', 'example.com');

Выйдите из MySQL.

Далее откройте файл виртуальных пользователей:

$ sudo nano /etc/postfix/mysql-virtual_mailboxes.cf

Установите config_directory как и раньше:

config_directory = /etc/postfix/mysql

Это позволяет Postfix искать пользователей в MySQL.

Снова введите MySQL:

$ sudo mysql mailserver -p 

Создайте пример пользователя:

INSERT INTO `virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('password123', CONCAT('$6

Это создаст пользователя «[email protected]» с зашифрованным паролем.

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

INSERT INTO `virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', '[email protected]', '[email protected]');

Выйдите из MySQL и перезапустите Postfix, чтобы изменения вступили в силу:

$ sudo systemctl restart postfix

Таким же образом мы можем создать больше доменов и пользователей.

OpenDMARC

OpenDMARC реализует стандарт аутентификации электронной почты DMARC. Это помогает повысить безопасность и предотвратить спам и фишинг.

Сначала установите OpenDMARC:

$ sudo apt install opendmarc opendmarc-tools

Откройте основной файл конфигурации:

$ sudo nano /etc/opendmarc.conf

Установите свой домен:

AuthservID mail.example.com

Включите ведение журнала и создание отчетов:

Socket inet:8893@localhost 
LogLevel debug
Syslog true
RejectFailures false
ReportFailures true
HistoryFile /var/lib/opendmarc/opendmarc.dat
StatsSocket /var/run/opendmarc/opendmarc.sock
MinServers 3  
ServerInterval 60

Это позволяет регистрировать активность в syslog и включать ежедневные отчеты по электронной почте.

Добавьте свой домен в качестве адреса From:

/etc/opendmarc/ignore.hosts
mail.example.com

Теперь включите OpenDMARC:

$ sudo systemctl enable opendmarc
$ sudo systemctl start opendmarc

Наконец, создайте DMARC TXT-запись для вашего домена:

$ sudo opendmarc-gen-policy --domain example.com --policy none --report email:[email protected]

Возьмите эту TXT-запись и добавьте ее в конфигурацию DNS вашего домена.

OpenDMARC теперь активен и будет проверять входящие сообщения электронной почты.

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

Теперь наш почтовый сервер Ubuntu должен быть правильно настроен. Давайте проведем небольшое тестирование, чтобы убедиться, что он работает.

Сначала отправьте тестовое письмо с самого сервера с помощью:

$ echo "This is a test" | mail -s Testing [email protected]

Проверьте, доставлено ли письмо:

$ sudo ls -l /var/mail

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

Далее настройте почтовый клиент, например Thunderbird, на подключение к почтовому серверу. Добавьте новую учетную запись, используя настроенные учетные данные IMAP и SMTP.

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

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

$ telnet mail.example.com 25

Введите EHLO, тогда MAIL FROM:, RCPT TO: и, наконец, данные тестового сообщения. Это подтверждает, что отправка и доставка SMTP работают правильно.

Проверьте /var/log/mail.log и /var/log/syslog на наличие ошибок в работе Postfix, Dovecot, MySQL или OpenDMARC во время тестирования. Отладьте и решите все возникающие проблемы.

Если все работает как надо, ваш почтовый сервер Ubuntu готов к использованию!

Защита почтового сервера

Теперь, когда у нас есть работающий почтовый сервер, давайте поговорим о лучших методах его защиты:

  • Используйте HTTPS/SSL для служб, когда это возможно, для шифрования трафика. Получите SSL-сертификаты для своего домена.
  • Ограничение доступа к почтовым службам по IP-адресам с помощью Postfix mynetworks или списка разрешенных хостов TCP Wrappers.
  • Включите правила брандмауэра, разрешающие трафик только на портах 25 (SMTP), 143 (IMAP), 993 (IMAP+TLS) и 110 (POP3).
  • Отключите проверку подлинности пароля в SSH и используйте только вход на основе ключа.
  • Убедитесь, что системные пакеты всегда актуальны, включив автоматические обновления безопасности.
  • Регулярно просматривайте журналы сервера на предмет признаков атак или попыток несанкционированного доступа.
  • Настройте logrotate для архивации и сжатия журналов.
  • Отключите все ненужные службы, которые не используются.
  • Создайте системных пользователей с более низкими привилегиями для таких служб, как Dovecot и Postfix.
  • Используйте надежные пароли и по возможности применяйте двухфакторную аутентификацию.
  • Регулярно создавайте резервные копии почтовых данных и баз данных MySQL.

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

Заключение

На этом мы завершаем это пошаговое руководство по развертыванию почтового сервера на Ubuntu 20.04. Мы установили и настроили Postfix, Dovecot, MySQL и OpenDMARC. Мы также рассмотрели важные меры безопасности для защиты почтового сервера.

Имея собственный почтовый сервер Ubuntu, вы можете полностью контролировать свою электронную почту, повышая уровень конфиденциальности, безопасности и доставки. Пользователи могут получать доступ к почте по протоколам IMAP и SMTP с помощью любого стандартного почтового клиента.

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

Дайте мне знать, если у вас есть другие вопросы! Я буду рад предоставить более подробную информацию о любой части процесса настройки почтового сервера.

Добавить комментарий

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