Предварительные требования:
- Сервер или виртуальная машина с Ubuntu 20.04, root доступом и внешним ip-адресом;
- Зарегистрированное доменное имя и доступ к редактору DNS зоны.
Обозначения:
Укажите Ваш внешний ip-адрес:
Укажите Ваше доменное имя для которого настраиваем почтовый сервер. Если Вы хотите отправлять почту формата info@mydomain.ru, то <наш домен> = «mydomain.ru»:
Укажите имя хоста. Может быть любым именем, которое будет указывать на наш почтовый сервер. Популярные названия – «mx» или «mail».
Ваше FQDN (полное доменное имя). Состоит из <имя хоста>.<наш домен>. Из примеров выше это может быть «mail. mydomain.ru».
Подготовка DNS-записей
Интерфейсы редакторов DNS могут отличаться друг от друга, но подход везде одинаковый. У каждого провайдера есть подробные инструкции.
Рассмотрим добавление DNS-записей на примере Яндекс.Коннект.
Переходим на сайт https://connect.yandex.ru/ и выбираем раздел «Админка».
В меню слева выбираем «Управление DNS».
Нажимаем на кнопку «Управление DNS» в блоке целевого домена.
Нажимаем «Добавить DNS-запись» и далее создаем (A, MX, DKIM, DMARC) записи.
Создаем А-запись
Запись служит для того, чтобы весь Интернет мог найти наш сервер по имени.
Хост:
Тип: A
Значение:
Создаем PTR
PTR - это обратная запись, которая связывает ip—адрес c доменным именем.
ВАЖНО! Прописывается на стороне провайдера, который предоставляет внешний адрес (Интернет). Часто делается по запросу в тех. поддержку провайдера.
Хост:
Тип: PTR
Значение:
Создаем MX-запись
MX-запись - ключевая запись, которая указывает на сервер, который отвечает за обработку электронной почты.
Хост: @
Тип: MX
Значение:
Создаем SPF-запись
Хост: @
Тип: TXT
Значение: v=spf1 a: –all
В данном примере мы разрешаем отправку почты только с одного сервера.
Создаем DKIM-запись
ВАЖНО! DKIM-запись мы создадим позже, после установки сервера.
Создаем DMARC-запись
Хост: _dmarc
Тип: TXT
Значение: v=DMARC1; p=reject; sp=none; adkim=s; aspf=s; rua=mailto:dmarc@; ruf=mailto:dmarc@
SPF, DKIM, DMARC записи предоставляют надежную защиту нашего домена от СПАМА и спуфинга.
Установка iRedMail
Подключаемся к серверу и переходим в режим суперпользователя sudo su.
Обновляем репозитории и пакеты
apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
Установим компоненты dialog и gzip, если они еще не установлены
apt-get install -y gzip dialog
Включаем файрвол и добавляем правила для работы нашего почтового сервера:
ufw --force enable && ufw allow proto tcp from any to any port 25,80,443,587,993,995
Задаем FQDN имя хоста:
hostnamectl set-hostname
Скачиваем, распаковываем и устанавливаем iRedMail:
Последнюю версию можно скачть с оф. сайта:
Скопируйте ссылку на последнюю версию
И вставте параметром в wget, например
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.8.tar.gz
Распакуйте архив:
tar zxf 1.6.8.tar.gz
Перейдите в каталог с установочным файлом:
cd iRedMail-1.6.8/
И запустите установочный скрипт:
bash iRedMail.sh
Нажимаем < Yes >.
Нажимаем < Next >.
Выбираем Nginx и нажимаем < Next >.
Выбираем MariaDB нажимаем < Next >.
Создаем пароль администратора MySQL и нажимаем < Next >.
Вводим и нажимаем < Next >
Создаем пароль админа почтового сервера и нажимаем < Next >.
Выбираем дополнительные компоненты.
- Roundcubemail - простой и быстрый почтовый веб клиент. Если Вам нужен только доступ к письмам с возможностью их фильтровать, то это будет лучший вариант.
- SOGo - почтовый веб клиент, который дополнительно поддерживает calendar (CalDAV), contacts (CardDAV) и ActiveSync. Если вам нужны календарь и адресная книга, которые будут синхронизироваться между мобильным почтовым клиентом или клиентом на ПК, то обязательно посмотрите на это решение.
- Netdata - мониторинг в режиме реального времени.
- iRedAdmin - дополнительная веб-панель администратора, помогающая управлять сервером iRedMail.
- Fail2ban - это программная среда для предотвращения вторжений, защищающая компьютеры и серверы от атак методом перебора.
Нажимаем < Next >
Если всё ввели правильно, нажимаем «y» и идем дальше.
Получаем «Let's Encrypt» сертификат
Установим Certbot (клиент протокола ACME предназначенный для автоматического управления SSL-сертификатами):
snap install --classic certbot
Регистрируем профиль:
certbot register -m support@ --no-eff-email --agree-tos
support@ - на данный ящик будут приходить уведомления о сроке действия сертификата.
Проверяем механизм получения сертификата:
certbot certonly --webroot --dry-run -w /var/www/html -d
Если всё хорошо и никаких ошибок Вы не увидели, то получаем боевой сертификат:
certbot certonly --webroot -w /var/www/html -d
Сделаем его доступным для наших сервисов:
chmod 0755 /etc/letsencrypt/{live,archive}
Добавим задание на обновление сертификата:
(crontab -l && echo -e "\n# Update server certificate\n1 3 * * * certbot renew --post-hook '/usr/sbin/service postfix restart; /usr/sbin/service nginx restart; /usr/sbin/service dovecot restart'") | crontab -
Здесь мы каждый день в 03 часа 01 минуту запускаем certbot, который проверяет необходимость перевыпуска сертификата. Если новый сертификат будет получен, то все зависимые службы будут перезапущены.
Заменит самоподписанный сертификат и ключ на только что полученные.
mv /etc/ssl/certs/iRedMail.crt{,.bak} && mv /etc/ssl/private/iRedMail.key{,.bak}
ln -s /etc/letsencrypt/live//fullchain.pem /etc/ssl/certs/iRedMail.crt
ln -s /etc/letsencrypt/live//privkey.pem /etc/ssl/private/iRedMail.key
Создаем DKIM-запись
Проверяем, что все сформированно и работает:
sudo amavisd-new testkeys
На сервере выполняем:
sudo amavisd-new showkeys
Пример вывода:
amavisd-new showkeys dkim._domainkey. mydomain.ru. 3600 TXT ( "v=DKIM1; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYArsr2BKbdhv9efugByf7LhaK" "txFUt0ec5+1dWmcDv0WH0qZLFK711sibNN5LutvnaiuH+w3Kr8Ylbw8gq2j0UBok" "FcMycUvOBd7nsYn/TUrOua3Nns+qKSJBy88IWSh2zHaGbjRYujyWSTjlPELJ0H+5" "EV711qseo/omquskkwIDAQAB")
Копируем блок из скобок, удалив переносы строк и кавычки.
В редакторе DNS создает TXT-запись со следующим содержанием:
Хост: dkim._domainkey
Тип: TXT
Значение: v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYArsr2BKbdhv9efugByf7LhaK txFUt0ec5+1dWmcDv0WH0qZLFK711sibNN5LutvnaiuH+w3Kr8Ylbw8gq2j0UBok FcMycUvOBd7nsYn/TUrOua3Nns+qKSJBy88IWSh2zHaGbjRYujyWSTjlPELJ0H+5 EV711qseo/omquskkwIDAQAB
Перезапускаем сервер
reboot
Сервер полностью установлен и готов к работе.
Настройка почтового сервера
В каталоге со скаченным iRedMail после установки появится файл iRedMail.tips, в котором хранится вся информация о поднятых сервисах, логинах и паролях.
Рекомендация. После ознакомления лучше удалить файл, перенеся конфиденциальные данные в более надежное хранилище.
Переходим по адресу https:///iredadmin/ и авторизуемся под пользователем postmaster@
.В интерфейсе переходим в и затем во вкладку Users.
Справа находим и нажимаем кнопку «+User».
Заполняем поля и нажимаем «Add».
После того как были заведены все пользователи, они могут настраивать почтовые клиенты или пользоваться почтой через веб интерфейс.
В зависимости от выбранных дополнительных компонентов, адреса будут:
https:///mail/
или
https:///SOGo/
Преимущества iRedMail
Для простоты понимания проведем сравнение с собственным почтовым сервером и бесплатным почтовым сервисом.
Сложность установки
Для установки iRedMail вам достаточно базовых навыков работы с Linux, сам сервер с ОС семейства Linux и немного времени для установки.
Сервер может быть физическим или в виде виртуальной машины, быть развернут локально или в облаке, например, у нас, Яндекс.Облаке или Azure.
Сложность сопоставима с использованием бесплатного почтового сервиса.
Стоимость
Стоимость будет зависеть от многих факторов, но почтовый сервер можно отнести к сервисам с низким потреблением ресурсов. У нас стоимость почтового сервера iRedMail начинается от 585 руб./мес.
Безопасность
Самый неоднозначный и индивидуальный пункт.
В случае с iRedMail или собственным почтовым сервером, Вы самостоятельно создаете и реализуете безопасность сервиса.
Стоит также отметить, что iRedMail из коробки поддерживает безопасные протоколы работы с почтой, а ещё преднастроенные антиспам фильтры и антивирус.
У любого же крупного провайдера, который предоставляет почтовый сервис, безусловно будут компетентные люди, которые следят за безопасностью. Возможно, у них будут использоваться более продвинутые и мощные инструменты защиты, но в любом случае Вы остаетесь серым пользователей, который может лишь принять общие правила.
Скорее всего Вы никогда не узнаете, что Ваши данные «утекли» или они всё ещё под угрозой «утечки», а ещё обрабатываются и являются источником для таргетированной рекламы.
Сюда ещё можно добавить отсутствие доступа к логам и дополнительную сложность к организации резервного копирования.