Керівництво по запуску поштового сервера


1. Скачати докер mail-image:

docker pull rep.docker-dd.tk:5000/mail_v1.0

 

2. Запустити цей архів, якщо ви бажаєте зберегти пошту, базу даних та журнали в вашій базовій системі. Якщо ви вирішите зберегти все в контейнері докера, ви можете пропустити цей крок.

wget rep.docker-dd.tk/shared/docker_mail_data.tar.gz

 

Розархівувати це в /var/lib/

tar -xvf docker_mail_data.tar.gz -C /var/lib/

3. Створити мережі докерів для вашого поштового сервера

docker network create --subnet=172.16.230.0/24 mail_net

 

4. Запустити поштовий сервер:

Зберегти пошту, бази даних, журнали в вашій базовій системі.

docker run --sysctl net.core.somaxconn=3000 --privileged=true -v sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/lib/docker_mail_data/database/mysql:/var/lib/mysql -v /var/lib/docker_mail_data/vmail:/var/vmail -v /var/lib/docker_mail_data/log/mysql:/var/log/mysql -v /var/lib/docker_mail_data/log/exim4:/var/log/exim -v /var/lib/docker_mail_data/log/nginx:/var/log/nginx -v /var/lib/docker_mail_data/log/uwsgi:/var/log/uwsgi --net mail_net --ip 172.16.230.200 --dns 8.8.8.8 --name mail --hostname mail --restart always -p 25:25 -p 80:80 -p 110:110 -p 143:143  -p 443:443 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 2000:2000 -itd mail_v1.0 /lib/systemd/systemd systemd.unit=emergency.service

або зберегти пошту, базу даних та журнали в контейнері.

docker run --sysctl net.core.somaxconn=3000 --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup:ro --net mail_net --ip 172.16.230.200 --dns 8.8.8.8 --name mail --hostname mail --restart always -p 25:25 -p 80:80 -p 110:110 -p 143:143  -p 443:443 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 2000:2000 -itd mail_v1.0 /lib/systemd/systemd systemd.unit=emergency.service

 

5. Увійти в контейнер:

docker exec -it mail bash

 

5.1 Згенерувати ssl сертифікати для ваших поштових доменів:

cd /usr/local/bin/LetsEncrypt/

 

Mail-admin:

python create_new_cert.py --host ma.example.com --type web --ip 127.0.0.1 --port 22 --login=root —password=1

 

Web-mail (Roundcume):

python create_new_cert.py --host wm.example.com --type web --ip 127.0.0.1 --port 22 --login=root --password=1

 

Exim:

python create_new_cert.py --host smtp.example.com --type smtp --ip 127.0.0.1 --port 22 --login=root --password=1

 

Dovecot:

python create_new_cert.py --host imap.example.com --type imap --ip 127.0.0.1 --port 22 --login=root --password=1

 

5.2. Замінити домени в цих файлах

 

Nginx:

/etc/nginx/sites-available/ma

/etc/nginx/sites-available/wm

 

Exim4:

/etc/exim4/conf.d/main/02_exim4-config_options

/etc/exim4/conf.d/main/03_exim4-config_tlsoptions

/etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs

 

Dovecot:

/etc/dovecot/conf.d/10-ssl.conf

 

5.3 Створити та додати DKIM запис для вашої пошти:

cd /etc/exim4/dkim-gen

opendkim-genkey -D . -d example.com -s mail

cp /etc/exim4/dkim-gen/mail.private /etc/exim4/dkim/example.com.key

chowm -R Debian-exim. /etc/exim4/dkim

chmod 640 /etc/exim4/dkim/example.com.key

 

DNS запис для вашої пошти:

mail._domainkey.example.com descriptive text "v=DKIM1; g=*; k=rsa; p=you_public_key"

 

5.4 Додати SPF запис в вашу пошту

 

SPF запис для вашої пошти:

v=spf1 ip4:you_mail_ip ~all

 

5.5 Перезапустити даний сервіс

systemctl restart nginx.service

systemctl restart exim4.service

systemctl restart dovecot.service