- Оставить заявку
- ITkrim@yandex.ru
- +7 (978) 012-15-51
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-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 – это очень удобный графический интерфейс для управления 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, и вы должны увидеть окно с предложением установить пароль администратора:
сразу пишем сложный пароль, а после переходим во вкладку users и меняем заодно и имя пользователя с админа на что-то поинтереснее
итак, у нас рабочая виртуалка доступная снаружи, на ней крутится debian+docker+portainer еще немного и начнем поднимать почтарь!
Устанавливать 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 [...]
Для работ Mailcow вам необходимо добавить следующие DNS записи для вашего домена? что именно нужно писать указано тут:
Есть базовые настройки, их 3, чтобы их внести, идем в редактор dns вашего домена и прописываем следующие значения:
MX-запись вид DNS-записи, предназначенный для регистрации почтовых SMTP серверов. Именно с ее помощью почтовый агент отправителя определяет smtp сервер, на которые будет выполняться доставку письма.
Дальше нужно внести записи которые позволят не попадать вашей почте в спам, таких важных параметра тоже три!
DKIM-запись
Настоятельно рекомендуется создать запись DKIM TXT в пользовательском интерфейсе mailcow и установить соответствующую запись TXT в записях DNS.
#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 обновляется не мгновенно, а иногда до 72 часов, по этому внимательно прописываем параметры и идем заниматься другими делами, позже проверяем всё ли в порядке.
а вот и вход в клиента почты