Обновляем Proxmox Mail Gateway с версии 6.x до 7.x

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

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

Начнем с того, что обновление ОС - потенциально опасная операция, потеря контроля над ходом которой чревата самыми неприятными последствиями. Поэтому желательно производить ее непосредственно подключившись к консоли сервера, либо имея к нему физический доступ, если же это невозможно, то следует подстраховать себя от случайного обрыва связи используя такие утилиты как screen.

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

1fsck -n -f

Если вы используете систему в контейнере Proxmox Virtual Environment, то включите в его свойствах вложенную виртуализацию Параметры - Features - Nesting :

Теперь обновим систему до последнего выпуска в рамках текущей версии, для успешного обновления вы должны иметь версию PMG не ниже 6.4-4, это можно сделать как в графическом интерфейсе, так и из консоли, мы будем использовать здесь и далее только последний вариант:

1apt update -y && apt full-upgrade -y && apt autoremove -y

Данный набор команд поочередно выполнит обновление списка пакетов, скачает и установит обновления и выполнит очистку. После чего систему следует перезагрузить.

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

1pmgbackup backup

Копия создается в каталоге /var/lib/pmg/backup, советуем скопировать ее на надежный носитель за пределы сервера.

Теперь заменим репозитории системы с Debian 10 на Debian 11:

1sed -i 's/buster\/updates/bullseye-security/g;s/buster/bullseye/g' /etc/apt/sources.list

И репозитории самого Proxmox Mail Gateway, в нашем случае это некоммерческий репозиторий и возможно вам потребуется уточнить имя файла:

1sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/pmg-no-subscription.list

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

Остановим службы PMG:

1systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel

И замаскируем их:

1systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel

Маскировка отличается от выключения службы тем, то отключенную службу можно запустить вручную, с замаскированной это не удастся. В выводе команды отлично видно, как для юнитов создаются симлинки на /dev/null.

Теперь обновим список пакетов в репозитории:

1apt update

И выполним полное обновление системы:

1apt full-upgrade

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

На вопросы перезаписи измененных файлов конфигурации отвечаем нет (N) - это действие по умолчанию, достаточно просто нажать Enter.

1apt autoremove

Теперь систему следует перезагрузить.

Следующим шагом после перезагрузки будет апгрейд базы данных PostgreSQL, прежде всего удалим автоматически созданный кластер PostgreSQL 13:

1pg_dropcluster --stop 13 main

И выполним преобразование существующего кластера:

1pg_upgradecluster -v 13 11 main

В результате старый кластер версии 11 будет остановлен, а новый, версии 13 запущен, при этом сохраняется возможность запуска предыдущей версии на порту 5433:

Снимем маскировку с ряда служб PMG:

1systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy

И перезагрузим сервер.

Затем снимаем маскировку еще с двух служб и запускаем их:

1systemctl unmask pmgmirror pmgtunnel
2systemctl start pmgmirror pmgtunnel

Теперь можем войти в веб-интерфейс и проверить работоспособность обновленного продукта:

Если все хорошо - можем удалить старый кластер PostgreSQL:

1apt purge postgresql-11 postgresql-client-11

На этом обновление Proxmox Mail Gateway до версии 7.x можно считать законченным.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал