Установка и настройка Proxmox Mail Gateway

Обновлено Обновлено: Опубликовано Опубликовано:

Proxmox Mail Gateway представляет из себя почтовый шлюз с возможностями проверки писем на наличие нежелательного контента. С его помощью можно легко обеспечить надежную маршрутизацию почтовой системы и повысить безопасность работы. Большая часть настроек может быть выполнена из графического веб-интерфейса.

Установка

Есть 2 основных способа установить Proxmox Mail Gateway.

ISO образ

Proxmox Mail Gateway поставляется как готовый образ операционной системы Debian с установленными и преднастроенными пакетами. Для установки системы нам необходимо скачать файл ISO на странице официального сайта, после создаем загрузочную флешку с помощью rufus или WinSetupFromUsb. Если мы устанавливаем Mail Gateway на виртуальную машину, то без создания загрузочной флешки можно монтировать образ iso к самой виртуальной машине.

После загрузки сервера с образа ISO запустится мастер установки. В нем нет сложных нюансов — просто идем по шагам, отвечая на несложные вопросы. Сама установка занимает, в среднем, от 5 до 15 минут.

Установка из пакетов на Debian

Данный способ удобен, если у нас нет возможности развернуть Proxmox из готового образа. Например, мы работаем на хостинге.

В процессе установки Proxmox Mail Gateway будет заменено ядро. Это повлияет на сторонний софт, установленный на Debian. Поэтому данный способ опасно применять не на чистой системе (например, вы уже используете сервер для работы какого либо ПО).

Настраиваем репозиторий:

echo "deb http://download.proxmox.com/debian/pmg $(lsb_release -cs) pmg-no-subscription" > /etc/apt/sources.list.d/pmg-no-sub.list

Загружаем gpg-ключ для проверки подписи пакетов:

curl -so /etc/apt/trusted.gpg.d/proxmox-release.gpg https://enterprise.proxmox.com/debian/proxmox-release-$(lsb_release -cs).gpg

Обновляем кэш репозиториев:

apt update

Устанавливаем Proxmox Mail Gateway:

apt install proxmox-mailgateway

Обязательно перезагружаем сервер, чтобы он загрузился с нового ядра.

Проверка работы после установки

После мы можем перейти в веб-интерфейс для управления по адресу https://<IP-адрес сервера Proxmox>:8006. В качестве логина вводим root и пароль, который указали во время установки системы.

После кликаем по учетной записи в правом верхнем углу и выбираем Language:

Переходим к языковым настройкам Proxmox Mail Gateway

Откроется окно с выбором языка. Выбираем тот, с которым нам удобно работать:

Выбираем язык, с которым нам удобно работать

Настройка входящих писем

Для настройки маршрутизации входящих писем необходимо:

  • Указать IP-адрес внутреннего почтового сервера.
  • Добавить домены, на которые должны приходить письма.

Для этого переходим в пункт меню Конфигурация - Почтовый прокси:

Переходим в настройка почтового прокси

На вкладке Ретрансляция в поле «Транслятор по умолчанию» вводим IP-адрес почтового сервера, куда будут перенаправляться письма:

Настройка почтового транслятора в Proxmox Mail Gateway

Переходим на вкладку Домены ретрансляции и добавляем обслуживаемые почтовые домены:

Добавляем домены, для которых будут разрешены входящие в Proxmox Mail Gateway

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

Отключаем использование серых списков

* серые списки позволяют эффективно бороться со СПАМом, но замедляют работы почты. Это сильно будет мешать при первичном тестировании системы.

Также сразу зададим объем почтовых сообщений, которые могут проходить через Proxmox Mail Gateway. Для этого переходим на вкладку Параметры и меняем значение для опции «Размер письма»:

Указываем значение для максимального размера письма

* в данном примере установлено значение 31457280, что равно 30 * 1024 * 1024 или 30 Мб.

Готово.

Настройка исходящих

В рамках данного раздела рассмотрим настройку Proxmox Mail Gateway для его использования как сервера отправки. Мы настроим сам Proxmox для его использования как ретранслятора исходящих сообщений и выполним рекомендации для того, чтобы наши сообщения не попадали в СПАМ.

Отправка сообщений

Снова заходим в Конфигурация - Почтовый прокси:

Переходим в настройка почтового прокси

Во вкладке Сети необходимо указать IP-адреса или подсети, с которых будет разрешена пересылка писем:

Добавляем адреса, с которых будет разрешена пересылка писем через Proxmox Mail Gateway

* в моем примере для адреса 192.168.0.15 будет разрешена пересылка писем через Proxmox Mail Gateway.

Теперь переходим на вкладку Порты. Тут ничего менять не обязательно — просто смотрим номера:

Смотрим порты для ретрансляции сообщений в Proxmox Mail Gateway

* в данном примере перед нами порты 25 и 26. Это значит, что Proxmox Mail Gateway принимает входящие на порт 25, а сообщения для отправки на порт 26. Таким образом, наш внутренний почтовый сервер должен для отправки наружу писем через Proxmox использовать адрес ретранслятора и 26-й порт.

Теперь переходим к настройкам почтового сервера. Рассмотрим пример с конфигурированием postfix.

Открываем конфигурационный файл mail.cf:

vi /etc/postfix/main.cf

Находим и редактируем relayhost:

relayhost = [192.168.0.25]:26

* в данном примере отправка идет через хост с адресом 192.168.0.25, который слушает запросы smtp на порту 26.

Перезапускаем postfix, чтобы настройки применились:

systemctl restart postfix

Готово — можно проверить исходящие.

Защита от попадания в СПАМ

Чтобы исходящие письма доходили до адресата, необходимо выполнить ряд действий.

1. Настройка DKIM

Заходим в настройка почтового прокси:

Переходим в настройка почтового прокси

Переходим на вкладку DKIM:

Переходим к настройкам DKIM

Добавляем наши домены:

Создаем настройку для домена в Proxmox Mail Gateway

Выше на той же вкладке включаем подписывание DKIM:

Настраиваем DKIM подпись в Proxmox Mail Gateway

Кликаем по кнопке Просмотр DNS-записи:

Смотрим DKIM запись для добавления в DNS

Во всплывающем окне мы увидим запись, которую нужно добавить в DNS. Создаем соответствующую TXT-запись и ждем 15 минут. После проверяем DKIM.

2. Запись SPF

Для валидации каждого домена, от которого будут отправляться письма нужно создать запись SPF в DNS. Пример записи:

domain.ru. IN TXT "v=spf1 ip4:93.93.93.93 include:_spf.mailsystem.net -all"

Подробнее про SPF читайте на странице Что такое SPF-запись.

3. DMARC

Политика DMARC позволяет для каждого домена указать чужой почтовой системе, что делать с письмами, если они не проходят проверку домена по SPF и DKIM.

Пример записи:

v=DMARC1; p=quarantine; sp=none; pct=100; fo=0; rua=mailto:postmaster@dmosk.ru

Подробнее про DMARC читайте на странице Что такое DMARC.

4. PTR

Также антиспам системы используют проверку записи в обратной зоне. Смысл в том, что имя сервера, которым представляется почтовая система должен совпадать со значением записи PTR.

Данную запись должен создать Интернет-провайдер или хостер арендованной виртуальной машины. Подробнее про PTR читайте на странице Что такое PTR-запись.

Сама почтовая система представляется именем, которое указано в опции myhostname конфигурационного файла postfix. По умолчанию, она соответствуем имени сервера. Задать его можно командой:

hostnamectl set-hostname relay.dmosk.ru

Но Proxmox из коробки настроен так, что myhostname определяется автоматически опросом DNS. Проверить, каким именем он представляется можно из командной строки с помощью утилиты telnet:

apt install telnet

telnet 127.0.0.1 25

Мы должны увидеть что-то на подобие:

Connected to 127.0.0.1.
Escape character is '^]'.
220 relay.dmosk.ru ESMTP Proxmox

* в нашем примере почтовая система будет представляться именем сервера relay.dmosk.ru.

Если же Proxmox неправильно определяет имя и нужно его поменять, то создаем каталог:

mkdir /etc/pmg/templates

Копируем в него шаблон main.cf.in:

cp /var/lib/pmg/templates/main.cf.in /etc/pmg/templates/main.cf.in

Открываем его на редактирование:

vi /etc/pmg/templates/main.cf.in

Меняем значения для директив mydomain и myhostname:

mydomain = dmosk.ru
myhostname = relay.dmosk.ru

Применяем настройки:

pmgconfig sync --restart 1

Готово.

NGINX прокси и настройка SSL

Настроим красивый URL для PMG. Для этого будем использовать http-прокси nginx и бесплатный сертификат от Let's Encrypt.

Вам понадобится домен и запись в DNS, каторая по портам 80 и 443 ведет на Proxmox Mail Gateway. Предположим, что наш СПАМ-фильтр будет работать по адресу relay.dmosk.ru.

Выполняем установку nginx и certbot:

apt install nginx certbot

Удаляем конфигурацию по умолчанию:

rm -f /etc/nginx/sites-enabled/default

Создаем новую:

vi /etc/nginx/sites-enabled/proxmox-mail-gateway.conf

server {
    listen       80;
    server_name  relay.dmosk.ru;

    location ~ /.well-known/acme-challenge {
        root /var/www/html;
        allow all;
    }
}

Проверяем конфигурацию и перечитываем ее:

nginx -t && nginx -s reload

Выполняем запрос на получение сертификата:

certbot certonly --webroot --agree-tos --email postmaster@dmosk.ru --webroot-path /var/www/html/ -d relay.dmosk.ru

После получения сертификата сразу настроим планировщик для его автопродления:

crontab -e

0 0 * * 1,4 /usr/bin/certbot renew --noninteractive

А также настроим хук для автоперезапуска nginx в случае успешного обновления сертификата:

vi /etc/letsencrypt/cli.ini

Добавляем строку:

...
deploy-hook = systemctl reload nginx

Снова открываем конфигурационный файл nginx:

vi /etc/nginx/sites-enabled/proxmox-mail-gateway.conf

Приводим его к виду:

server {
    listen       80;
    server_name  relay.dmosk.ru;
    return 301 https://$host$request_uri;
}

server {
    listen       443 ssl;
    server_name  relay.dmosk.ru;

    ssl_certificate     /etc/letsencrypt/live/relay.dmosk.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/relay.dmosk.ru/privkey.pem;

    access_log off;

    location ~ /.well-known/acme-challenge {
        root /var/www/html;
        allow all;
    }

    location / {
        proxy_pass          https://127.0.0.1:8006;
        proxy_redirect      off;
        proxy_http_version  1.1;

        proxy_set_header  Host               $host;
        proxy_set_header  Upgrade            $http_upgrade;
        proxy_set_header  Connection         "upgrade";
        proxy_set_header  X-Real-IP          $remote_addr;
        proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto  https;
    }
}

Снова перечитываем конфигурацию nginx:

nginx -t && nginx -s reload

Готово. Можно пробовать зайти на PMG по адресу https://<ваш_домен>/.

Дополнительные настройки

Рассмотрим некоторые дополнительные настройки, которые упростят работу с Proxmox Mail Gateway.

Репозиторий

Устанавливаем пакет:

apt install lsb-release

По умолчанию система использует корпоративный репозиторий, для работы которого нужна платная подписка. Необходимо его отключить (комментируем все строки):

vi /etc/apt/sources.list.d/pmg-enterprise.list

#deb https://enterprise.proxmox.com/debian/pmg ...

Начиная с версии Proxmox Mail 9 (Debian 13):

vi /etc/apt/sources.list.d/pmg-enterprise.sources

И комментируем все строки.

И добавить репозиторий для бесплатного использования:

echo "deb http://download.proxmox.com/debian/pmg $(lsb_release -cs) pmg-no-subscription" > /etc/apt/sources.list.d/pmg-no-sub.list

После обновляем список пакетов командой:

apt update

И можно обновить дистрибутив:

apt dist-upgrade

Обновление антивируса

В связи с блокировки российских IP-адресов, обновления антивируса ClamAV выполняются с ошибкой. Для решения проблемы подключаемся с серверу по SSH и открываем файл:

vi /etc/clamav/freshclam.conf

Комментируем строки, которые начинаются на DNSDatabaseInfo и DatabaseMirror:

##DatabaseMirror database.clamav.net
...
##DNSDatabaseInfo current.cvd.clamav.net

Добавляем строку:

PrivateMirror https://packages.microsoft.com/clamav/

Останавливаем службу clamav-freshclam:

systemctl stop clamav-freshclam

Удаляем старую информацию об обновлениях:

rm -f /var/lib/clamav/freshclam.dat

Запускаем обновление:

freshclam

Ждем обновления, после запускаем службу clamav-freshclam и перезапускаем clamav-daemon:

systemctl start clamav-freshclam

systemctl restart clamav-daemon

Теперь переходим в веб-интерфейс и заходим в раздел Конфигурация - Детектор вирусов:

Переходим в детектор вирусов

Кликаем по вкладке ClamAV и также меняем зеркало базы данных на новое значение (на https://packages.microsoft.com/clamav/):

Смена сервера обновления для ClamAV

Планировщик отправки отчетов о СПАМе

Системой предусмотрена отправка отчетов о письмах, которые были отправлены в СПАМ. По умолчанию, это делается один раз в день, в 00:05.

Чтобы это изменить, открываем файл:

vi /lib/systemd/system/pmgspamreport.timer

Редактируем опцию OnCalendar:

OnCalendar=05:00

* в данном примере мы будем выполнять отправку отчета в 5 утра.

Для применения настройки выполняем:

systemctl daemon-reload

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

pmgqm send

Возможные опции можно увидеть командой:

pmgqm help

Убираем предупреждение об отсутствующей подписке

Каждый раз при входе в веб-интерфейс система нас будет предупреждать о том, что мы пользуемся Proxmox без подписки:

You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options

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

Это делается командой:

sed -i.bak "s/res.data.status.toLowerCase() !== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

* в данном примере мы находим в файле /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js строку res.data.status.toLowerCase() !== 'active' и меняем ее на false.

Готово. Из-за кэша браузера сообщение будет продолжать отображаться. Чтобы окончательно от него избавиться, нажмите комбинацию CTRL + F5.

Свои файлы конфигурации

Под капотом PMG находится Postfix. Возможно, нам захочется напрямую изменить настройки в конфигурационных файлах main.cf и master.cf. Однако, Proxmox вернет настройки обратно, так как основной источник конфигурации находится в базе данных. Чтобы использовать собственные файлы в PMG предусмотрено использование шаблонов.

Создадим каталог для хранения drop-in файлов (которые будут переопределять настройки из базы):

mkdir /etc/pmg/templates

Ознакомимся с доступными шаблонами:

ls /var/lib/pmg/templates

Предположим, мы хотим использовать master.cf.in — копируем его в созданный каталог:

cp /var/lib/pmg/templates/master.cf.in /etc/pmg/templates/

Редактируем его:

vi /etc/pmg/templates/master.cf.in

Чтобы применить настройки вводим:

pmgconfig sync --restart 1

Читайте также

Дополнительная информацию по работе с почтовыми системами:

1. Полноценный почтовый сервер с iRedMail на Ubuntu или Debian.

2. Почтовый сервер на CentOS 8 с виртуальными доменами, системой управления, веб-доступом и другими возможностями.

3. Большой почтовый сервер на Debian.

4. Полноценный почтовый сервер на Ubuntu Server.

5. Настройка почтового сервера для массовой рассылки сообщений.

# Linux # Безопасность # Почта # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет

Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Заказать настройку почты

Нужна бесплатная консультация?

Мини-инструкции

Как настроить Postfix, чтобы отправка с разных доменов выполнялась с разных IP-адресов

Установка, настройка и использование Roundcube на Ubuntu или Debian

Выгрузка проекта git и загрузка на другой сервер

Установка, настройка и использование почтового шлюза Proxmox Mail Gateway

Как установить и настроить NATS сервер на Linux

Как установить несколько разных версий PHP на Linux Debian

Установка и настройка веб-сервера Apache + PHP + Postgres Pro на Astra Linux

Другие инструкции

Все статьи

Нужна помощь? Пишите:






Реклама