Почтовый сервер mailcow через docker за 30 минут

Почтовый сервер mailcow через docker за 30 минут

Недавно наткнулся на довольно интересный комбаин из postfix-sogo-gui-панели для управления почтовыми сервисом. Называется он mailcow. В этой статье решил кратко описать как это все работает. Итак, приступим. Представим что нам надо настроить почтовый домен em.linux2be.com

Требования:

- OS linux
Пакеты
- docker-ce
- docker-compose
Доступные порты:
SMTP_PORT=25
SMTPS_PORT=465
SUBMISSION_PORT=587
IMAP_PORT=143
IMAPS_PORT=993
POP_PORT=110
POPS_PORT=995
SIEVE_PORT=4190
DOVEADM_PORT=127.0.0.1:19991
HTTP=80
HTTPS=443

Эти порты можно поменять ниже в mailcow.conf, если они у вас уже заняты, например другими докер контейнерами.

Приступаем к установке

Клонируем репозиторий

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

Запускаем генератор конфига.

./generate_config.sh

Вводим

Мы сгенерировали конфиг на основе которого будет собираться наша связка из докер-контейнеров
Посмотреть его можно в файле

 nano mailcow.conf

Теперь приступим к сборке
docker-compose pull

Подождем пока все спулится.

./update

Учтите это обновит докер, docker-compose. Может помочь правка docker-compose. Должна поддерживаться версия 2.3 иначе не соберется
После сборки поднимаем нашу сборку

docker-compose up -d

Часть персистентных данных хранится в докерах volumes

docker volume ls | grep mail

Заходим по адресе
https://em.linux2be.com

Данные для входа

Логин — admin
Пароль — moohoo

Меняем его после входа

ЗАмена серфиката postfix на свой

Чтобы не ругалось на сертификат — меняем его в конфиге postfix data/conf/postfix/main.cf на свой.

smtpd_tls_cert_file = /ssl.d/linux2be.com/certificate.crt
smtpd_tls_key_file = /ssl.d/linux2be.com/private.key
Далее добавляем почтовые домены

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

Далее добавлем dkim. Выбираем длину ключа 1028

Добавляем сгенерированный ящик в relay host — не обязательно

Заходим в сгерерированнй почтовые ящики через

Теперь остается настроить нашу почту чтобы она не попадала в спам. Настройка dns записей. Почтовый домен будет em.linux2be.com

Добавляем записи
em.linux2be.com server_ip
mx.linux2be.com server_ip
_
Dkim текстовые записи
_domainkey.em.linux2be.com v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI34IBCgKCAQEAqgkUMOXb7pIYVXxs3TMUgL/MyVubJB2Br6iJIIegR+9d+ucssa4y0pUs4LfzdqkoU8YjlX+V19oksd3EsjZYGYHddnzUkNwzVXOkyZx71rMiLvQhLpp3bFLHWiHixDR5ggN/07zz4OWRV6XApl51Ae2mNmu3S5R0NMePVe7lN6DRIuEDtDTSbVKg/avFM3YWQQe5/YH8dJLXf4UoOhKjhsLPsuiptexH7qkfSEMOGGo5hCyHMbeRoySksi829ZOE9YAlgbv/EyNpAHzTNM2kdlRugurc7W5pd9CG7E5G0bgY7grI37Apd/8eOpEYHSVCwXjattL6Bo3lYqGRrUYWpDzQIDAQAB
mail._domainkey.em.linux2be.com v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI34IBCgKCAQEAqgkUMOXb7pIYVXxs3TMUgL/MyVubJB2Br6iJIIegR+9d+ucssa4y0pUs4LfzdqkoU8YjlX+V19oksd3EsjZYGYHddnzUkNwzVXOkyZx71rMiLvQhLpp3bFLHWiHixDR5ggN/07zz4OWRV6XApl51Ae2mNmu3S5R0NMePVe7lN6DRIuEDtDTSbVKg/avFM3YWQQe5/YH8dJLXf4UoOhKjhsLPsuiptexH7qkfSEMOGGo5hCyHMbeRoySksi829ZOE9YAlgbv/EyNpAHzTNM2kdlRugurc7W5pd9CG7E5G0bgY7grI37Apd/8eOpEYHSVCwXjattL6Bo3lYqGRrUYWpDzQIDAQAB
default._domainkey.em.linux2be.comv=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqgkUMOXb7pIYVXxs3TMUgL/MyVubJB2Br6iJIIegR+9d+ucssa4y0pUs4LfzdqkoU8YjlX+V19oksd3EsjZYGYHddnzUkNwzVXOkyZx71rMiLvQhLpp3bFLHWiHixDR5ggN/07zz4OWRV6XApl51Ae2mNmu3S5R0NsdsdMePVe7lN6DRIuEDtDTSbVKg/avFM3YWQQe5/YH8dJLXf4UoOhKjhsLPsuiptexH7qkfSEMOGGo5hCyHMbeRoySksi829ZOE9YAlgbv/EyNpAHzTNM2kdlRugurc7W5pd9CG7E5G0bgY7grI37Apd/8eOpEYHSVCwXjattL6Bo3lYqGRrUYWpDzQIDAQAB
dkim._domainkey.em.linux2be.com
 v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg34KCAQEAqgkUMOXb7pIYVXxs3TMUgL/MyVubJB2Br6iJIIegR+9d+ucssa4y0pUs4LfzdqkoU8YjlX+V19osdk3EsjZYGYHddnzUkNwzVXOkyZx71rMiLvQhLpp3bFLHWiHixDR5ggN/07zz4OWRV6XApl51Ae2mNmu3S5R0NMePVe7lN6DRIuEDtDTSbVKg/avFM3YWQQe5/YH8dJLXf4UoOhKjhsLPsuiptexH7qkfSEMOGGo5hCyHMbeRoySksi829ZOE9YAlgbv/EyNpAHzTNM2kdlRugurc7W5pd9CG7E5G0bgY7grI37Apd/8eOpEYHSVCwXjattL6Bo3lYqGRrUYWpDzQIDAQAB
_dmarc.em.linux2be.com "v=DMARC1;p=reject;rua=mailto:webmaster@em.linux2be.com;ruf=mailto:webmaster@em.linux2be.com;"
Настраиваем запись mx для почтового домена em.linux2be.com

Добавим A запись

mx.linux2be.com IP_ADDRESS
em.linux2be.com IN MX 10 mx.linux2be.com
Добавим spf записи

Есть мастер генерации spf записей — можете воспользоваться им.

https://www.spfwizard.net/

TX Record

em.linux2be.com. v=spf1 mx a a:mx.linux2be.com
em.linux2be.com. v=spf1 include:_spf.google.com ~all

SPF RECORDS

@ v=spf1 include:_spf.google.com ~all
@ v=spf1 include:mx.linux2be.com ~all
Проверяем записи

Проверка mx записи

host -tMX em.linux2be.com

Должно вернуть

em.linux2be.com mail is handled by 10 mx.linux2be.com.

Проверка _dmarc записи

dig TXT _dmarc.linux2be.com
Регистрируем свой сервер в почтовом сервисе google

https://postmaster.google.com/

Добавляем txt запись предоставленную google и нажимаем далее.
em "запись google"
Еще один докер.
https://github.com/tomav/docker-mailserver
Чекаем сервер здесь
https://mxtoolbox.com

3 thoughts on “Почтовый сервер mailcow через docker за 30 минут

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

Войти с помощью: 

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

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.