Оставьте заявку

Текст сообщения:


Установка и настройка почтового сервера MailCow на Debian / Ubuntu

Установка сервер mailcow на Ubuntu 22.04 или debian 11

Mailcow – готовый почтовый сервер на основе Postfix, Dovecot и другого программного обеспечения с открытым исходным кодом, который обеспечивает удобный современный веб-интерфейс для администрирования и использования электронной почты. В качестве почтового web клиента используется SOGo.

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

В этой статье мы рассмотрим, как настроить необходимые DNS записи для работы почты и развернуть почтовый сервер mailcow на Debian 11.

Определяемся с техническими тебованиями

Это два ядра и 4 гига оперативки, но если есть возможность, то лучше добавить побольше. свободное место на диске из расчета 20 гигов на систему и по 20 гигов на пользователя, у меня будет около 20 пользователей, это 500 гигабайт, по этому я поставил 2 террабайта

Качаем последний образ debian отсюда https://www.debian.org/download

Вход в терминал

Установка компонентов: Сначала обновляем установленные компоненты.

после входа становимся суперюзером через команду

Debian

su

Ubuntu

sudo su

и обновляем систему вводим:

apt-get update
apt-get upgrade

тут я столкнулся с тем, что установочный DVD диск. Для решения этой проблемы редактируем список репозиториев sources.list, вводим:

nano /etc/apt/sources.list

комментируем строку, которая у казывает на DVD носитель, сохроняем и повторяем обновление системы.

УСТАНОВКА DOCKER

Docker применяется для управления отдельными контейнерами (сервисами), из которых состоит приложение.

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

Mailcow основан на контейнерах, поэтому нужно сначала установить Docker. Пакет установки Docker, доступный в официальном репозитории Debian, может представлять собой не самую последнюю версию. Чтобы точно использовать самую актуальную версию, установим Docker из официального репозитория Docker. Для этого надо добавить новый источник пакета, ключ GPG от Docker, чтобы гарантировать загрузку рабочих файлов, а затем установим пакет.

Первым делом обновите существующий список пакетов:

apt update

Затем установите несколько необходимых пакетов, которые позволяют apt использовать пакеты через HTTPS:

apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Добавьте ключ GPG для официального репозитория Docker в вашу систему:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Добавьте репозиторий Docker в источники APT :

Для Debian

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

Для Ubuntu

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

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

apt update

Затем устанавливаем Docker:

apt install docker-ce

Выполним команду проверку статуса работы Docker’а:

systemctl status docker

На выходе увидим нечто подобное:

Отлично! Служба работает на ура, попробуем запустить какой-нибудь контейнер:

sudo docker run hello-world

Если все хорошо, то на выходе увидим:

 

УСТАНОВКА PORTAINER

Portainer – это очень удобный графический интерфейс для управления Docker или Docker Swarm. Устанавливается он практически в одно действие – так как сам точно также является контейнером. Итак:

Создаем разметку для Portainer:

docker volume create portainer_data

И затем запускаем сам контейнер:

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

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

Вход в Portainer

сразу пишем сложный пароль, а после переходим во вкладку users и меняем заодно и имя пользователя с админа на что-то поинтереснее

Панель управления

итак, у нас рабочая виртуалка доступная снаружи, на ней крутится debian+docker+portainer еще немного и начнем поднимать почтарь!

Установка mailcow в docker

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

sudo su

Для установки нам дополнительно потребуется пакет docker-compose-plugin если не получится сразу, просто запускаем эту строку второй раз

apt install docker-compose-plugin

Переходим в папку opt и клонируем репозиторий mailcow и переходим в папку mailcow-dockerized

cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized

Запускаем генерацию файла конфигурации

./generate_config.sh

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

В случаи если на вашем сервере памяти меньше чем 2.5GB скрипт предложит вам отключить ClamAV

Необходимо будет указать часовой пояс.

Europe/Moscow

Вы также можете выбрать какую версию сборки mailcow устанавливать, стабильную либо тестовую. Мы будет устанавливать стабильную версию.

Available Branches:
- master branch (stable updates) | default, recommended [1]
- nightly branch (unstable updates, testing) | not-production ready [2]
Choose the Branch with it´s number [1/2] 1

Сгенерированный файл конфигурации находится в файле mailcow.conf. При необходимости вы можете его отредактировать.

nano mailcow.conf

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

docker compose pull

Получаем примерный результат

результат работы

следующая комманда

docker compose up -d

После установки переходим в админ панель которая находится по адресу https://nashdomain.ru, либо если вы меняли порт в файле конфигурации то добавляем его в конце доменного имени.

Вход в админ панель

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

Смена пароля администратора

 

Для добавления нового почтового домена, переходим в в раздел Configuration — Mail Setup и нажимаем на зеленую кнопку + Add Domain

регистрация доменного имени

Указываем доменное имя, по желанию добавляем описание и тэг для почты. При добавлении нового доменного имени обязательно нужно перегружать контейнер SOGo, для этого предусмотрена отдельная кнопка Add domain and restart SOGo, нажимаем ее.

Mailcow устанавливается с поддержкой ipv6 и для того чтобы ее отключить необходимо отредактировать файл docker-compose.yml. В данном файле находим строку enable_ipv6: true и заменяем значение true на false

networks:
mailcow-network:
[...] enable_ipv6: true # <<< set to false [...]

DNS записи

Для работ Mailcow вам необходимо добавить следующие DNS записи для вашего домена? что именно нужно писать указано тут:

редактируем DNS записи

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

базовые записи редактора домена

MX-запись вид DNS-записи, предназначенный для регистрации почтовых SMTP серверов. Именно с ее помощью почтовый агент отправителя определяет smtp сервер, на которые будет выполняться доставку письма.

Дальше нужно внести записи которые позволят не попадать вашей почте в спам, таких важных параметра тоже три!

DKIM-запись

Настоятельно рекомендуется создать запись DKIM TXT в пользовательском интерфейсе mailcow и установить соответствующую запись TXT в записях DNS.

Создание DKIM записи

#NameTypeValuedkim._domainkeyIN TXT«v=DKIM1;k=rsa;t=s;s=email;p=MIIB…»

SPF-запись

SP позволяет владельцу домена указать в TXT-записи, соответствующей имени домена, список серверов, имеющих право отправлять email-сообщения с обратными адресами в этом домене.
Пример SPF-данных в TXT-записи DNS:

#NameTypeValuemailIN TXT«v=spf1 a mx -all»

DMARC-запись

DMARC — предназначенна для снижения количества спамовых и фишинговых электронных писем, основанная на идентификации почтовых доменов отправителя на основании правил и признаков, заданных на почтовом сервере получателя

Пример DMARS-данных в TXT-записи DNS:

#NameTypeValue_dmarcIN TXT«v=DMARC1; p=quarantine; rua=mailto:admin@example.ru; ruf=mailto:admin@example.ru; sp=quarantine»

итого после всех настроек при проверке вашего DNS через mailcow

Проверка настроек DNS

должно получиться примерно следующее:

Примерный результат

галочки говорят о том, что этот параметр настроен верно, важно помнить, что dns обновляется не мгновенно, а иногда до 72 часов, по этому внимательно прописываем параметры и идем заниматься другими делами, позже проверяем всё ли в порядке.

создаем ящик и пуляем письма

Создаем почтовые ящики

а вот и вход в клиента почты

Вход в почту