news
Serverspace в «Рейтинге провайдеров IaaS Enterprise 2023» от Market.CNews
KA
13 июля 2023
Обновлено 25 июля 2023

Настройка почтового сервера на Debian 11. Часть 2

Debian Linux

Введение

В предыдущей статье мы рассмотрели установку зависимостей, библиотек, DNS-записей и программного обеспечения для работы сервера. Во второй части руководства мы продолжим установку и настройку программного обеспечения. В этой части мы используем быструю развертку с помощью контейнеризации приложений вместо ручной установки. У этого есть свои преимущества и недостатки, поэтому ознакомьтесь с ними, прежде чем принимать решение!

Преимущества установки почтового сервера вручную:

  • Гибкость: Ручная установка позволяет вам полностью настроить сервер в соответствии с индивидуальными потребностями. Вы полностью контролируете каждый аспект настройки и можете вносить изменения по мере необходимости;
  • Более глубокое понимание: При установке вручную вы получаете более глубокое представление о работе почтового сервера и его компонентов. Это может быть полезно при устранении неполадок и управлении сервером в будущем;
  • Меньший размер: Установка без Docker может иметь меньший размер, поскольку она не требует использования дополнительных контейнеров и образов Docker.

Недостатки настройки почтового сервера вручную:

  • Сложность настройки: Установка почтового сервера вручную может быть сложной и требовать более глубоких знаний в области системного администрирования и работы с конфигурационными файлами;
  • Сложность масштабирования: При установке вручную может оказаться сложнее масштабировать почтовый сервер и управлять большим количеством пользователей или трафиком;
  • Больше времени и ресурсов: Установка и настройка почтового сервера вручную может занять больше времени и потребовать больше ресурсов, поскольку вам нужно будет самостоятельно управлять каждым аспектом процесса.

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

Требования к установке

  • Доменное имя;
  • Docker CLI >= версии 20
  • Docker Compose >= версии 2.0;
  • Права администратора;
  • Configured FQDN;
  • SSL сертификат.

Продолжим настройку:

Очень важная часть! Если вы хотите использовать только IPv4 или просто не имеете интерфейсов с IPv6-адресом, вам нужно отключить параметры, иначе nginx или вебчасть не запустятся из-за проблемы с подключением по этим адресам. Прежде всего, укажите все IP для режима прослушивания в системе, для этого перейдите в файл mailcow.conf и добавьте параметр BIND, который поможет определить диапазон адресов:

nano /main/mail/mailcow-dockerized/mailcow.conf
IP для работы сервиса
Скриншот №1 — IP для работы сервиса
HTTP_BIND=0.0.0.0
HTTPS_BIND=0.0.0.0

Установите значение в двух строках равное 0.0.0.0, для сервера nginx укажите использование IP адресов. Для сохранения файла нажмите комбинацию клавиш Ctrl+O и Ctrl+ X для выхода из текстового редактора. Теперь измените конфигурацию Docker в соответствии с требованиями и найдите нужную строку, нажав комбинацию кнопок для поиска Ctrl + W и введите значение enable_ipv6: true. Измените его на false, как показано на рисунке ниже:

nano docker-compose.yml
Модификация конфига
Скриншот №2 — Модификация конфига
enable_ipv6: false
Конфигурация Docker
Скриншот №3 — Конфигурация Docker

Эта настройка позволяет использовать данное решение без добавления интерфейса IPv6.

Затем нам нужно отключить контейнер mailcow-nat, для этого перейдите в каталог и создайте файл override:

nano /main/mail/mailcow-dockerized/docker-compose.override.yml

Это создаст и откроет файл в соответствующем каталоге, затем запишите  следующую конфигурацию:

version: '2.1'
services:
ipv6nat-mailcow:
image: bash:latest
restart: "no"
entrypoint: ["echo", "ipv6nat disabled in compose.override.yml"]
Отключаем NAT для IPv6
Скриншот №4 — Отключаем NAT для IPv6

В журнале этого контейнера мы не увидим логов о работе:

docker logs -f ipv6nat-mailcow

Запускаем всю систему, ждем пока создастся весь контейнер и затем очищаем остатки конфига IPv6:

cd /main/mail/mailcow-dockerized && docker compose up -d
Запускаем контейнеризацию
Скриншот №5 — Запускаем контейнеризацию

Это займет некоторое время на установку и проверку всей системы, но когда она завершится, вам нужно будет открыть файл для отключения настроек.

Измените конфигурационный файл data/conf/unbound/unbound.conf, установив для параметра do-ip6 значение no:

nano /main/mail/mailcow-dockerized/data/conf/unbound/unbound.conf
Отключаем IPv6
Скриншот №6 — Отключаем IPv6

Теперь перезапустите контейнер, который мы модифицировали:

docker compose restart unbound-mailcow

Перейдите к следующему файлу в каталоге data/conf/postfix/ и создайте файл с настройками:

nano /main/mail/mailcow-dockerized/data/conf/postfix/extra.cf

И войти с сохранением необходимого файла:

smtp_address_preference = ipv4
inet_protocols = ipv4
Выбираем IPv4
Скриншот №7 — Выбираем IPv4

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

docker compose restart
Перезапуск контейнеров
Скриншот №8 — Перезапуск контейнеров

Для следующего шага нам нужно удалить все упоминания IPv6 в оставшихся файлах, для этого введите команду ниже:

sed -i '/::/d' ./data/conf/nginx/listen_*
sed -i '/::/d' ./data/conf/nginx/templates/listen*
sed -i '/::/d' ./data/conf/nginx/dynmaps.conf
sed -i 's/,\[::\]//g' ./data/conf/dovecot/dovecot.conf
sed -i 's/\[::\]://g' ./data/conf/phpfpm/php-fpm.d/pools.conf
Очистка строк от IPv6
Скриншот №9 — Очистка строк от IPv6

Для корректной работы всех систем проверки записанных DNS записей с Linux машины, установите dnsutils командой ниже:

apt install dnsutils
Установка dnsutils
Скриншот №10 — Установка dnsutils

И сделайте запрос к NS-серверу, например, так:

dig vdushu.space && dig test.vdushu.space

По умолчанию dig предоставляет вам различную информацию о DNS, такую как время запроса, IP-адрес, связанный с доменом, и дополнительные записи DNS. Для конкретного запроса вам нужно использовать флаг -t следующим образом:

dig -t MX vdushu.space

Символ @ определяет, какой DNS-сервер будет искать доменное имя:

dig vdushu.space @8.8.8.8
Запрос к DNS серверу
Скриншот №11 — Запрос к DNS серверу

Ответ будет в разделе Answer. Для более надежного соединения настройте перенаправление в конфигурации Nginx, нам нужно перейти в каталог data/conf/nginx/redirect.conf :

nano /main/mail/mailcow-dockerized/data/conf/nginx/redirect.conf

Важно! Не забудьте закомментировать строку с IPv6 — это важно для корректной работы Nginx:

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;
}
}

Этот код поможет перенаправить весь трафик по протоколу https и зашифровать его независимо от запроса клиента!

Перенаправление траффика
Скриншот №12 — Перенаправление траффика

Прекрасно! Мы установили всю систему, в следующем эпизоде серии инструкций мы рассмотрим, как настроить защиту от СПАМ почты для почтового сервиса, и введем новые DNS-записи для наших серверов, зайдем через удобные клиенты и рассмотрим насколько валидны наши сообщения!

Вывод

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

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300

Вам также может быть интересно...