Поднимаем Mailcow на Centos 9 | Wiki | PWODEV
, 06.11.2023 00:36

Поднимаем Mailcow на Centos 9


Параметры сервера:
— CPU: 2×8
— RAM: 16384

Устанавливаем Centos 9, при установке не забываем подправить диск так чтобы root занимала все пространство.

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

passwd

обновляем centos до последней версии и устанавливаем нужные нам приложения:

yum update -y && yum upgrade -y && yum makecache
yum -y install epel-release
yum -y install nano htop mc wget git chrony

перепроверяем что никакие порты не заняты, должно вывести пустоту

ss -tlpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'

Если нет, стопаем сервисы что юзают эти порты. Скорее всего это порт 25 и это postfix.

systemctl stop postfix
yum remove postfix -y

дальше проверяем чтобы часы правильно работали и синхронизировались:

timedatectl status

обрати внимание чтобы было время правильное и включена синхронизация.

Установка докер:

сначала ставим докер:

curl -sSL https://get.docker.com/ | CHANNEL=stable sh
systemctl enable --now docker

Проверяем установлен ли Selinux.

rpm -qa | grep container-selinux

Эта команда должна что-то вывести, если выводит — идем дальше, если нет, то нужно установить Selinux. Теперь проверяем включен ли Selinux в докере:

docker info | grep selinux

Если выключен, а он обычно выключен то открываем файл:

nano /etc/docker/daemon.json

и добавляем текст:

{
  "selinux-enabled": true
}

после этого сохраняем и перезапускаем докер:

systemctl restart docker

теперь еще рас проверим докер на наличие selinux

docker info | grep selinux

теперь выведет selinux и значит мы с докером закончили

Установка Mailcow

теперь делаем следующие команды:

su

потом

umask

должно вывести 0022, дальше скачиваем с гита mailcow и запускаем установщик:

git clone https://github.com/mailcow/mailcow-dockerized /home/mailcow
cd /home/mailcow
./generate_config.sh
  1. Первое что спросит это hostname. Тут пишем название вашего домена для сервера mail.youdomain.com.
  2. таймзона — жмем энтер
  3. жмем 1 чтобы использовать стабильную версию

Теперь добавляем сразу редирект http -> https для этого создаем файл:

nano data/conf/nginx/redirect.conf

заполняем:

server {
  root /web;
  listen 80 default_server;
  listen [::]:80 default_server;
  include /etc/nginx/conf.d/server_name.active;
  if ( $request_uri ~* "%0A|%0D" ) { return 403; }
  location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
  }
  location / {
    return 301 https://$host$uri$is_args$args;
  }
}

Если надо подправить настройки идем сюда:

nano mailcow.conf

Тут можно добавить список дополнительных доменов если надо, через запятую пишем домены в этих параметрах:

ADDITIONAL_SAN=mail.secondemail.com,mail.secondemail1.com
ADDITIONAL_SERVER_NAMES=mail.secondemail.com,mail.secondemail1.com

или разрешить администратору заходить в почты всех юзеров, параметр:

ALLOW_ADMIN_EMAIL_LOGIN=y

Теперь можно скачать контейнеры и запускать докер.

docker compose pull
docker compose up -d

Лог посмотреть можно следующей командой:

docker compose logs --tail=200 -f acme-mailcow

как только контейнеры стартовали идем в браузер по IP на котором запустили сервак: https://1.2.3.4 Стандартный пароль в админку:
admin
moohoo

Меняем сразу пароль и добавляем в админке домены. После этого берем ключ dkim и идем настраивать DNS:

A    mail    1.2.3.4
AAAA    mail    1111:111:111
CNAME    autodiscover   mail.youdomain.com. 
CNAME    autoconfig    mail.youdomain.com. 
MX 10    @    mail.youdomain.com. 
TXT    @    v=spf1 a mx ip4:1.2.3.4 ip6:1111:111:111 -all
TXT    _dmarc    v=DMARC1; p=none; sp=none; rua=mailto:postmaster@youdomain.com; ruf=mailto:postmaster@youdomain.com; fo=1; ri=86400;
TXT    dkim._domainkey    v=DKIM1;k=rsa;t=s;s=email;p=****************

вместо 1.2.3.4 надо написать IPv4 и вместо 1111:111:111 — IPv6 адрес вашего меил сервера и вместо youdomain.com надо написать ваш домен к которому делаем изменения DNS, и вместо **************** dkim ключ который мы получили в админке.

После этого можно добавлять почтовые адреса и тестировать почту с помощью сервиса https://www.mail-tester.com/

Проверяем правильность по следующим сервисам:


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