🚀 Мои услуги
Header Image
пр. Мира 620000 Россия +7900-000-00-00
Логотип блога интернет-бродяги

Как создать электронную почту на своем домене и перестать кормить корпорации

Электронная почта на своем домене
Просмотры: 7

Вы когда-нибудь задумывались, что значит доменный адрес электронной почты? Это когда вы пишете не унизительное vasya_pupkin_1999@mail.ru, а гордое ceo@your-cool-brand.com. Многие считают, что доменная электронная почта — это удел избранных, корпораций с бюджетом NASA и людей, которые носят костюмы даже дома. Но правда в том, что как создать электронную почту на своем домене — вопрос пары вечеров и правильной последовательности команд в терминале.

Сегодня мы пройдем этот путь от пустого сервера до гордого обладателя собственной почтовой империи. Пристегнитесь, будет технично, местами занудно, но в конце вы сможете отправлять резюме с адреса boss@mydomain.ru.

Шаг 0: Подготовка и проверка портов (Самое скучное, но важное)

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

1. Проверяем исходящий порт 25:
Выполните в терминале сервера:

Ожидаемый результат: Если видите строку с succeeded — отлично. Если timed out — ваш хостинг блокирует почту, идите в поддержку.

2. Открываем порты в облаке:
Зайдите в панель вашего хостинга (например, Cloud.ru) в раздел «Группы безопасности» (Security Groups). В «Правилах входящего трафика» (Ingress) добавьте три правила:

  • Протокол: TCP, Порт: 25, Источник: 0.0.0.0/0
  • Протокол: TCP, Порт: 587, Источник: 0.0.0.0/0
  • Протокол: TCP, Порт: 993, Источник: 0.0.0.0/0

Как создать электронную почту на своем домене

3. Открываем порты в файрволе сервера (UFW):

Ожидаемый результат: Команды выведут Rule added и Rule added (v6).

Шаг 1: Настраиваем PTR-запись (Обратный DNS)

Провайдеры вроде Gmail очень не любят серверы без обратной DNS-записи. Без неё ваши письма будут падать в спам.

1. Создайте A-запись для mail.вашдомен.ru, указывающую на IP вашего VPS.

2. В панели вашего облачного провайдера найдите настройки PTR (Reverse DNS) и укажите значение mail.вашдомен.ru.

3. Проверьте, что запись обновилась:

Ожидаемый результат: mail.вашдомен.ru. (с точкой на конце).

Шаг 2: Установка почтовых движков

Postfix будет принимать и отправлять почту, Dovecot — хранить её и отдавать вам по запросу.

1. Установка:

(При установке Postfix, если выскочит псевдографическое окно, стрелками выберите «Internet Site» и нажмите Enter).

2. Создаем системного пользователя vmail для писем:

3. Создаем пароль для ящика (например, для admin@вашдомен.ru):

Команда попросит ввести пароль дважды и выдаст хеш вида {SHA512-CRYPT}$6$…. Скопируйте его в буфер обмена.

4. Прописываем ящик в базу Dovecot:
Откройте файл (создав его):

admin@вашдомен.ru:{SHA512-CRYPT}$6$…:5000:5000::/var/vmail/вашдомен.ru/admin::

Нажмите Ctrl+O, Enter, чтобы сохранить, и Ctrl+X, чтобы выйти.

5. Настраиваем Dovecot на чтение этого файла:
Откройте файл:

Он должен выглядеть так:

Откройте файл /etc/dovecot/conf.d/10-auth.conf и найдите строку !include auth-system.conf.ext. Замените её на !include auth-passwdfile.conf.ext.

6. Указываем, где хранить письма:
Откройте /etc/dovecot/conf.d/10-mail.conf. Найдите закомментированную строку #mail_location = и замените её на:

7. Даем права на файл паролей и перезапускаем:

Проверка: Выполните sudo doveadm auth test admin@вашдомен.ru. Введите пароль. Если увидите auth succeeded — вы на правильном пути.

Шаг 3: Учим Postfix принимать почту

1. Настраиваем конфигурацию Postfix:

Найдите строку mydestination = и приведите её к виду mydestination = localhost. В самый конец файла добавьте:

(Файлы сертификатов мы добавим позже, на Шаге 4, когда они у нас появятся).

2. Связываем Postfix и Dovecot (LMTP):
Откройте файл:

Найдите блок service lmtp { … }. Приведите его к такому виду (если он закомментирован, раскомментируйте):

Перезапускаем: sudo systemctl restart dovecot postfix.

Шаг 4: DKIM, SPF и DMARC (Щит от спама)

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

1. Генерируем DKIM-ключ:

2. Смотрим публичный ключ:

Скопируйте содержимое в кавычках (всю строку p=…) и добавьте в DNS как TXT-запись с именем mail._domainkey.

3. Настраиваем OpenDKIM:
Откройте файл /etc/opendkim.conf и приведите его к виду:

4. Создаем папку для сокета и даем права:

5. Подключаем DKIM к Postfix:
Добавьте в конец /etc/postfix/main.cf:

Перезапускаем: sudo systemctl restart opendkim postfix.

6. DNS-записи (обязательно!):
Создайте в панели DNS:

  • MX: 10 mail.вашдомен.ru.
  • SPF (TXT для @): v=spf1 ip4:ВАШ_IP mx ~all
  • DMARC (TXT для _dmarc): v=DMARC1; p=quarantine; rua=mailto:admin@вашдомен.ru

Шаг 5: Отправка почты (Порт 587)

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

1. Включаем порт 587 в Postfix:

Найдите закомментированный блок submission и раскомментируйте его. Приведите к виду:

2. Настраиваем сокет авторизации Dovecot:
Откройте /etc/dovecot/conf.d/10-master.conf. Внутри блока service auth { … } найдите unix_listener. Приведите блок к виду:

3. Перезапускаем и проверяем:

Ожидаемый результат: Вы должны увидеть строку LISTEN … 0.0.0.0:587.

Шаг 6: Веб-интерфейс (Roundcube)

Чтобы читать почту через браузер (и не зависеть от капризов Apple Mail), ставим Roundcube.

1. Установка:

(Когда спросит про базу данных, нажмите No, так как root-пароля у нас нет. Если окно зависнет, нажмите Ctrl+C, закройте и зайдите по SSH заново, затем выполните sudo dpkg —configure -a).

2. Создаем базу данных вручную:

(Введите ваш пароль от MariaDB). Внутри консоли выполните:

3. Заливаем таблицы:

(Пароль: RoundcubePass123!).

4. Настраиваем конфиги Roundcube:
Откройте /etc/roundcube/debian-db.php и укажите данные БД (roundcube, пароль, roundcubemail).
Откройте /etc/roundcube/config.inc.php и измените:

5. Настраиваем Nginx и PHP-FPM:
Создайте конфиг /etc/nginx/sites-available/roundcube с корнем /var/lib/roundcube/public_html и сокетом PHP-FPM.
Создайте отдельный пул PHP-FPM (/etc/php/8.4/fpm/pool.d/roundcube.conf), обязательно указав pm = dynamic и open_basedir с путями /var/lib/roundcube:/etc/roundcube:/usr/share/roundcube.
Перезапустите Nginx и PHP-FPM.

Чтобы Roundcube заработал, нам нужно подружить три вещи: Nginx (который отдает страницу), PHP-FPM (который выполняет код Roundcube) и сам Roundcube (файлы которого лежат в /var/lib/roundcube/public_html).

А. Создаем отдельный пул PHP-FPM для Roundcube
По умолчанию PHP-FPM настроен так, что его «песочница» (open_basedir) не пускает скрипты за пределы папки сайта. Roundcube же использует файлы из трех разных мест. Поэтому создаем отдельный пул.

Выполните команду, которая создаст файл конфигурации пула:

Проверяем и перезапускаем:
Выполните команду для проверки конфигурации:

Ожидаемый результат: configuration file /etc/php/8.4/fpm/php-fpm.conf test is successful.

Если тест прошел успешно, перезапускаем сервис:

Ожидаемый результат: Команда завершится без вывода ошибок. Если появится надпись Job for php8.4-fpm.service failed, значит, где-то опечатка (проверьте, не потерялись ли точки с запятой).

Б. Создаем конфиг Nginx для веб-почты
Теперь скажем Nginx, что при заходе на mail.вашдомен.ru он должен передавать запросы в наш новый пул PHP-FPM.

Выполните команду (она создаст файл конфигурации сразу с нужным содержимым):

(Обратите внимание: в строке с server_name и путями к сертификатам нужно заменить вашдомен.ru на ваш реальный домен. Если вы уже делали это в других шагах, просто дважды проверьте, что подставилось правильно).

Активируем сайт (создаем символическую ссылку):

Проверяем Nginx и перезагружаем:

Ожидаемый результат: syntax is ok и test is successful.

Если все ок, применяем изменения:

Теперь можно заходить на https://mail.вашдомен.ru и вводить логин/пароль. Если выскочит белый экран — возвращайтесь к пункту А и проверяйте пути в open_basedir, 99% проблем кроется именно там.

Шаг 7: Финальный штрих — защита (Fail2Ban)

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

1. Установка:

2. Создаем файл конфигурации:
Откройте файл:

Вставьте в него следующий блок:

Сохраните (Ctrl+O, Enter, Ctrl+X).

3. Запускаем и проверяем:

Ожидаемый результат: В списке Jail list должны появиться sshd, postfix и dovecot.

Эпилог

Вот и всё. Теперь у вас есть своя доменная электронная почта. Вы независимы, прекрасны и можете с чистой совестью отправлять письма с адреса admin@вашдомен.ru. Осталось только нажать «Добавить учетную запись» в Apple Mail или настроить Thunderbird (сервер mail.вашдомен.ru, порт 993 для входящих и 587 для исходящих).

И помните: если письма от Mail.ru не доходят, а с Яндекса летят как миленькие — это не ваш сервер сломался. Это Mail.ru просто обиделся, что вы от него ушли. Подождите пару дней, и его кэш обновится. 🚀

👇 Нажмите, чтобы увидеть комментарии и оставить свой

Оцените статью:

Рейтинг: 0.0 (Голосов: 0)

Почитайте похожие материалы

Об авторе: Hobo

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

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

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

SQL - 40 | 0,213 сек. | 15.48 МБ