<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pmg.proxmox.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stoiko+Ivanov</id>
	<title>Proxmox Mail Gateway - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://pmg.proxmox.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stoiko+Ivanov"/>
	<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/wiki/Special:Contributions/Stoiko_Ivanov"/>
	<updated>2026-05-19T22:52:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=161</id>
		<title>Upgrade from 7 to 8</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=161"/>
		<updated>2026-01-28T13:46:40Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Systemd-boot (for ZFS on root and UEFI systems only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 8.x is based on the new major version of Debian (Bookworm). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Bookworm.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 7.x system to Proxmox Mail Gateway 8.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Bookworm]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Bookworm]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
Perform the actions via console or SSH. If you use SSH you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgraded to the latest version of Proxmox Mail Gateway 7., see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bullseye repos setup) to upgrade to latest 7.3&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 7.3-6 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/7.3-6/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* At least 5 GB free disk space on root mount point.&lt;br /&gt;
* Check [[#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 7 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg7to8&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 7.3 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg7to8&lt;br /&gt;
&lt;br /&gt;
This script only &#039;&#039;&#039;checks&#039;&#039;&#039; and reports things. By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
It is recommended to re-run the script after each attempt to fix an issue. This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Bookworm - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
Update all Debian repository entries to Bookworm.&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bullseye/bookworm/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Update the enterprise repository to Bookworm:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg bookworm pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
For the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories].&lt;br /&gt;
Rather than commenting out/removing the PMG 7.x repositories, as was previously mentioned, you could also run the following command to update to the Proxmox Mail Gateway 8 repositories:&lt;br /&gt;
 sed -i -e &#039;s/bullseye/bookworm/g&#039; /etc/apt/sources.list.d/pmg-install-repo.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also update any extra files that you added to &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; to Bookworm accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
During the above step, you will be asked to approve changes to configuration files, where the default config has been updated by their respective package.&lt;br /&gt;
&lt;br /&gt;
It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup.&lt;br /&gt;
&lt;br /&gt;
Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt; -&amp;gt; Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/clamav/clamd.conf &amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt; -&amp;gt; Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; -&amp;gt; If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; -&amp;gt; Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot the Proxmox Mail Gateway host yet after the dist-upgrade finished.&lt;br /&gt;
&lt;br /&gt;
=== Adapt modified configuration templates to new shipped versions ===&lt;br /&gt;
&lt;br /&gt;
If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
=== Disable ClamAV On-Access Scanner Service ===&lt;br /&gt;
&lt;br /&gt;
The new ClamAV on-access scanning service is not useful for Proxmox Mail Gateway setups and is disabled for new installations as it not only slows down the entire system, but also affects the spam and virus detection mechanisms managed by Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
During upgrades, the service may get enabled and will then be marked as failed.&lt;br /&gt;
It is recommended to disable this service:&lt;br /&gt;
 systemctl disable clamav-clamonacc.service&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Before upgrading the PostgreSQL main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_dropcluster --stop 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 13 to 15, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 15 13 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Reboot and then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reconnect to the node after it successfully rebooted&lt;br /&gt;
&lt;br /&gt;
* You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
:&amp;lt;pre&amp;gt;apt purge postgresql-13 postgresql-client-13&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html upgrade specific issues for Bookworm].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list for the Proxmox Mail Gateway 8.X minor releases: &lt;br /&gt;
* https://pmg.proxmox.com/wiki/Roadmap#8.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* Changed defaults for Bayes and AWL&lt;br /&gt;
** Since the two options cause worse results when enabled in most average installations their defaults changed in 8.0, and they are now disabled&lt;br /&gt;
*: If your installation explicitly disabled, or enabled the feature nothing will change&lt;br /&gt;
*: In case your installation never set the setting the old default will now be written to &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; to keep your system consistent.&lt;br /&gt;
&lt;br /&gt;
* The ClamAV antivirus daemon &amp;lt;code&amp;gt;clamav-daemon&amp;lt;/code&amp;gt; now uses socket-activation&lt;br /&gt;
*: To disable the service you need to disable &amp;lt;code&amp;gt;clamav-daemon.service&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clamav-daemon.socket&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Postgresql config change&lt;br /&gt;
*: the &amp;lt;code&amp;gt;stats_temp_directory&amp;lt;/code&amp;gt; server variable is no longer supported&lt;br /&gt;
*: the postgresql.conf template shipped with Proxmox Mail Gateway accounts for the change&lt;br /&gt;
*: if you have modified the template (or copied it without modification) in /etc/pmg/templates/ - make sure to remove the line and/or remove the complete template override (if you don&#039;t have any modifications)&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Bookworm (without using the Proxmox Mail Gateway ISO), you may have installed the package &#039;linux-image-amd64&#039;, which conflicts with current 8.x setups. To solve this, you have to remove this package with&lt;br /&gt;
 apt remove linux-image-amd64&lt;br /&gt;
before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
Due to the new kernel recognizing more features of some hardware, like for example virtual functions, and since interface naming often derives from the PCI(e) address, some NICs may change their name, in which case the network configuration needs to be adapted.&lt;br /&gt;
&lt;br /&gt;
This can also happen in virtualized environments (and has been reported with Xen for this upgrade)&lt;br /&gt;
&lt;br /&gt;
In general, it&#039;s recommended to either have an independent remote connection to the Proxmox Mail Gateways&#039;s host console, for example, through the hypervisor in case of a VM or container setup, IPMI or iKVM, or physical access for managing the server even &lt;br /&gt;
when its own network doesn&#039;t come up after a major upgrade or network change.&lt;br /&gt;
&lt;br /&gt;
=== Network Fails on Boot Due to NTPsec Hook ===&lt;br /&gt;
&lt;br /&gt;
Some users reported that after the upgrade their network failed to come up cleanly on boot, but worked if triggered manually (e.g., using &amp;lt;code&amp;gt;ifreload -a&amp;lt;/code&amp;gt;), when ntpsec was installed.&lt;br /&gt;
&lt;br /&gt;
We&#039;re still investigating for a definitive root cause, but it seems that an udev hook which the &amp;lt;code&amp;gt;/etc/network/if-up.d/ntpsec-ntpdate&amp;lt;/code&amp;gt; might hang on some hardware, albeit due to changes not directly related to ntpsec.&lt;br /&gt;
&lt;br /&gt;
The simplest solution might be switching to that via &amp;lt;code&amp;gt;apt install chrony&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot (for ZFS on root and UEFI systems only) ==&lt;br /&gt;
&lt;br /&gt;
Systems booting via UEFI from a ZFS on root setup should install the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package after the upgrade. You will get a Warning from the &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; script after the upgrade if your system is affected - in all other cases you can safely ignore this point.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; was split out from the &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; package for Debian Bookworm based releases. It won&#039;t get installed automatically upon upgrade from Proxmox Mail Gateway 7.3 as it can cause trouble on systems not booting from UEFI with ZFS on root setup by the Proxmox Mail Gateway installer.&lt;br /&gt;
&lt;br /&gt;
Systems which have ZFS on root and boot in UEFI mode will need to manually install it if they need to initialize a new ESP (see the output of &amp;lt;code&amp;gt;proxmox-boot-tool status&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note that the system remains bootable even without the package installed.&lt;br /&gt;
&lt;br /&gt;
It is not recommended installing &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; on systems which don&#039;t need it, as it would replace &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; as bootloader in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/bookworm/amd64/release-notes/ Release Notes for Debian 12.0 (bookworm), 64-bit PC]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=159</id>
		<title>Upgrade from 8 to 9</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=159"/>
		<updated>2025-10-23T10:11:52Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* PostgreSQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 9.x is based on the new major version of Debian (Trixie). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Trixie.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 8.x system to Proxmox Mail Gateway 9.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Trixie]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Trixie]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;:&lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt;) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 8.2, see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bookworm repos setup) to upgrade to latest 8.2&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 8.2.5 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/8.2.5/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Ensure that you have at least 10 GB free disk space on the root mount point:&lt;br /&gt;
 df -h /&lt;br /&gt;
* Check [[#Potential_Issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
First, ensure that your Mail Gateway 8 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg8to9&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 8.2 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg8to9&lt;br /&gt;
&lt;br /&gt;
; This script only checks and reports things.&lt;br /&gt;
: By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
: You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
; It is recommended to re-run the script after each attempt to fix an issue.&lt;br /&gt;
: This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
First, make sure that the system is using the latest Proxmox Mail Gateway packages:&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
 pmgversion -v&lt;br /&gt;
&lt;br /&gt;
The last command should report a version of at least &amp;lt;code&amp;gt;8.2.5&amp;lt;/code&amp;gt; or newer.&lt;br /&gt;
&lt;br /&gt;
==== Ensure Repository Archive Keyring is Installed ====&lt;br /&gt;
&lt;br /&gt;
To ensure your system trusts the new APT archive keyring for our Debian Trixie-based releases, install the &amp;lt;code&amp;gt;proxmox-archive-keyring&amp;lt;/code&amp;gt; package before switching the repositories to Trixie.&lt;br /&gt;
&lt;br /&gt;
 apt install proxmox-archive-keyring&lt;br /&gt;
&lt;br /&gt;
==== Update Debian Base Repositories to Trixie ====&lt;br /&gt;
Update all repository entries to Trixie:&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bookworm/trixie/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Ensure that there are no remaining Debian Bookworm specific repositories left. Check all files in the &amp;lt;/code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; folder (like &amp;lt;code&amp;gt;pmg-enterprise.list&amp;lt;/code&amp;gt;) and also the top-level &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; file. If you are already using sources in the new deb822 format, you will also need to check &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files in the same location.&lt;br /&gt;
&lt;br /&gt;
{{note|Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.|reminder}}&lt;br /&gt;
&lt;br /&gt;
See the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories] section in the reference docs for the correct Proxmox Mail Gateway / Debian Trixie repositories.&lt;br /&gt;
&lt;br /&gt;
==== Add the Proxmox Mail Gateway 9 Package Repository ====&lt;br /&gt;
&lt;br /&gt;
Update the enterprise repository to Trixie in the new deb822 format with the following command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: https://enterprise.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-enterprise&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
After you added the new enterprise repository as above, check that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly. You can do so by first running &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Make sure that no errors are shown and that &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; only outputs the desired repositories. Then you can remove the old &amp;lt;code&amp;gt;/etc/apt/sources.list.d/pmg-enterprise.list&amp;lt;/code&amp;gt; file. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
If using the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add the Proxmox Mail Gateway 9 no-subscription repository with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-no-subscription&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
As with the enterprise repository, make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 no-subscription repository from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
Make sure to check that all the &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files you added in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; got switched over to Trixie correctly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
Note that the time required for finishing this step heavily depends on the system&#039;s performance, especially the root filesystem&#039;s IOPS and bandwidth.&lt;br /&gt;
A slow spinner can take up to 60 minutes or more, while for a high-performance server with SSD storage, the upgrade can be finished in less than 5 minutes.&lt;br /&gt;
&lt;br /&gt;
{{Note|While the packages are being upgraded certain operations and requests to the API might fail (for example, logging in as a system user in the &amp;lt;code&amp;gt;pam&amp;lt;/code&amp;gt; realm)|reminder}}&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
While running the &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; command, you may be asked to approve changes to configuration files and some service restarts among other prompts. This includes:&lt;br /&gt;
&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;apt-listchanges&amp;lt;/code&amp;gt;: You can simply exit it by pressing &amp;lt;kbd&amp;gt;q&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
* Selecting your default keyboard settings: Simply use the arrow keys to navigate to the one applicable in your case and hit enter.&lt;br /&gt;
* Questions about service restarts (like &amp;lt;code&amp;gt;Restart services during package upgrades without asking?&amp;lt;/code&amp;gt;): Use the default if unsure, as the reboot after the upgrade will restart all services cleanly anyway.&lt;br /&gt;
* Questions about (default) configuration changes: It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup. Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/clamav/clamd.conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Here you may want to take special care, as this is normally only asked for if you changed it manually; for example, if you added some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/postfix/master.cf.proto&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/postfix/main.cf.proto&amp;lt;/code&amp;gt;&lt;br /&gt;
*: These files are not used by Proxmox Mail Gateway - they are the templates for setting up multi-instance postfix instances, which was never used by Proxmox Mail Gateway.&lt;br /&gt;
*: See the [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838528 bugreport at bugs.debian.org] for more context.&lt;br /&gt;
*: We recommend to select &amp;quot;Yes&amp;quot; (install the new version), in order to not get asked again for a future upgrade.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/crontab&amp;lt;/code&amp;gt; and other &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; related files on installations on containers on Proxmox VE&lt;br /&gt;
*: The crontab gets randomized by Proxmox VE to prevent all jobs running at the same time in all containers.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is preferred here.&lt;br /&gt;
*; &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; may print warnings regarding about &amp;lt;code&amp;gt;collation version mismatch&amp;lt;/code&amp;gt;&lt;br /&gt;
*: These are transitory and will disappear once the cluster has been upgraded to the new version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Important&#039;&#039;&#039;&#039;&#039;: If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
It is not yet necessary to reboot your Proxmox Mail Gateway host at this point. Before doing so, first upgrade PostgreSQL database.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 15 to 17, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** Ensure you run this step in a shell, which does not have non-standard locales set. easiest to achieve this is running a fresh &amp;lt;code&amp;gt;su -&amp;lt;/code&amp;gt; session and checking that no locale related variables are set to a not installed locale:&lt;br /&gt;
 su -&lt;br /&gt;
 env |grep -E &#039;LC|LANG&#039;&lt;br /&gt;
The output should be empty.&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 17 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reboot ===&lt;br /&gt;
&lt;br /&gt;
Reboot the host with e command below. Then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Reconnect to the node after it successfully rebooted.&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== Remove old PostreSQL Version ===&lt;br /&gt;
&lt;br /&gt;
You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
&lt;br /&gt;
 apt purge postgresql-15 postgresql-client-15&lt;br /&gt;
&lt;br /&gt;
=== Optional: Modernize apt Repository Sources ===&lt;br /&gt;
&lt;br /&gt;
You can migrate existing repository sources to the recommended deb822 style format, by running:&lt;br /&gt;
&lt;br /&gt;
 apt modernize-sources&lt;br /&gt;
&lt;br /&gt;
By answering the following prompt with &amp;quot;n&amp;quot; you can check the changes the command would make before applying them. To apply them simply run the command again and respond to the prompt with &amp;quot;Y&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The command will also keep the old &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files around by appending &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt; to them. So you will have the new &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files and the old repository configurations in the &amp;lt;code&amp;gt;.list.bak&amp;lt;/code&amp;gt; files. You can remove the leftover backup files once you verified that everything works smoothly with the new format.&lt;br /&gt;
&lt;br /&gt;
{{note|ensure that all external and third-party repositories (e.g. the one provided by [https://pmg.proxmox.com/wiki/index.php/Install_Avast avast] have provided the keys in the correct places).&lt;br /&gt;
|reminder}}&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/trixie/release-notes/upgrading.en.html upgrade specific issues for Trixie].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list for the Proxmox Mail Gateway 9.X minor releases as this gets updated with future minor releases:&lt;br /&gt;
* https://pmg.proxmox.com/wiki/Roadmap#9.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL ==&lt;br /&gt;
&lt;br /&gt;
=== Setting Locale Failed During Postgres Cluster Upgrade ===&lt;br /&gt;
&lt;br /&gt;
If you are performing the upgrade via SSH (as advised), running &amp;lt;code&amp;gt;pg_upgradecluster -v 17 15 main&amp;lt;/code&amp;gt; may fail if your environment variables contain locales that do not exist on your PMG host:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# [...]&lt;br /&gt;
perl: warning: Setting locale failed.&lt;br /&gt;
perl: warning: Please check that your locale settings:&lt;br /&gt;
....&lt;br /&gt;
Error: The locale requested by the environment is invalid:&lt;br /&gt;
...&lt;br /&gt;
Error: Could not create target cluster&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These environment variables may be set automatically depending on your shell&#039;s configuration or SSH settings. Most commonly, &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; can pass local environment variables along to your remote host when connecting. See &amp;lt;code&amp;gt;[https://manpages.debian.org/trixie/openssh-client/ssh_config.5.en.html man ssh_config]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[https://manpages.debian.org/trixie/openssh-server/sshd_config.5.en.html man sshd_config]&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
To fix this follow the steps in [[#Upgrade_the_PostgreSQL_database|Upgrade the PostgresSQL Cluster]].&lt;br /&gt;
&lt;br /&gt;
== Changed paths for the mobile quarantine interface ==&lt;br /&gt;
&lt;br /&gt;
With the new mobile interface for the quarantine the requests issued when accessing it have changed.&lt;br /&gt;
If you have configured a reverse proxy in front of PMG for accessing the quarantine you might need to adapt the configuration.&lt;br /&gt;
&lt;br /&gt;
The necessary changes for &amp;lt;code&amp;gt;nginx&amp;lt;/code&amp;gt; were recorded in the [[Quarantine Web Interface Via Nginx Proxy|Quarantine Web Interface Via Nginx Proxy wiki page]],&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.debian.org/releases/trixie/release-notes/issues.en.html#timezones-split-off-into-tzdata-legacy-package Legacy timezones were split off.]&lt;br /&gt;
*: This should not be an issue as Proxmox Mail Gateway never offered the deprecated timezones for selection.&lt;br /&gt;
*: However, if you&#039;ve manually configured one such timezone and &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; does not start, install the &amp;lt;code&amp;gt;tzdata-legacy&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The external &amp;lt;code&amp;gt;avast&amp;lt;/code&amp;gt; Virus Scanner [https://pmg.proxmox.com/wiki/index.php/Install_Avast with integration in Promxox Mail Gateway] has not yet released a version for Debian Trixie.&lt;br /&gt;
*: If you are using it consider delaying the upgrade until it becomes available&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Trixie (without using the Proxmox Mail Gateway ISO), you may have installed the package &amp;lt;code&amp;gt;linux-image-amd64&amp;lt;/code&amp;gt;, which conflicts with current 9.x setups.&lt;br /&gt;
&lt;br /&gt;
To solve this, you have to remove this package with &amp;lt;code&amp;gt;apt remove linux-image-amd64&amp;lt;/code&amp;gt; before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
The new kernel can recognize more hardware features such as virtual function of PCI(e) devices. Since network names are usually derived from PIC(e) addresses and features recognized by the kernel, the network configuration might need to be adapted to match the new interface names.&lt;br /&gt;
&lt;br /&gt;
In such cases, the network connection to a Proxmox Datacenter Manager host might be lost during or after the upgrade process. Hence, it is generally recommended to have either physical access or an independent remote connection to the host (for example, via IPMI or iKVM).&lt;br /&gt;
&lt;br /&gt;
The latest version of Proxmox Mail Gateway 8.2 and 9.0 provide a package called &amp;lt;code&amp;gt;proxmox-network-interface-pinning&amp;lt;/code&amp;gt; that you can install.&lt;br /&gt;
This package offers a CLI tool that helps you pin all network interfaces to NIC-based names and update the network configuration simultaneously.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot meta-package changes the bootloader configuration automatically and should be uninstalled ==&lt;br /&gt;
With Debian Trixie the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package got split up a bit further into &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; (containing the EFI-binary used for booting), &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; (containing &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt;) and the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package (containing hooks which run upon upgrades of itself and other packages and install systemd-boot as bootloader).&lt;br /&gt;
&lt;br /&gt;
As Proxmox Systems usually use &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for booting only in some configurations (ZFS on root and UEFI booted without secure boot), which are managed by &amp;lt;code&amp;gt;proxmox-boot-tool&amp;lt;/code&amp;gt;, the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; should be removed.&lt;br /&gt;
&lt;br /&gt;
The package was automatically shipped for systems installed from the PMG 8.0 to PMG 8.2 ISOs, as it contained &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt; in bookworm.&lt;br /&gt;
If the &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script suggests it, the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package is safe to remove unless you manually installed it and are using &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; as a bootloader. Should &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; be required, &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; will warn you accordingly.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script will change its output depending on the state of the upgrade, and should be [[#Continuously_use_the_pmg8to9_checklist_script|run continuously before and after the upgrade]]. It will print which packages should be removed or added at the appropriate time. The only situation where you should keep the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; installed is if you manually setup &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for your system.&lt;br /&gt;
&lt;br /&gt;
See also [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110177 the filed bug for systemd-boot].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/trixie/release-notes/ Release Notes for Debian 13.0 (trixie)]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=158</id>
		<title>Quarantine Web Interface Via Nginx Proxy</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=158"/>
		<updated>2025-10-23T10:06:56Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: re-add framework7 to allowed urls until PMG 8.0 is EOL /* Creating a site to proxy requests for quarantine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly.&lt;br /&gt;
If a mail is detected as spam users themselves can decide whether they want to keep or delete it in the user quarantine interface.&lt;br /&gt;
(for dangerous content, as mail containing viruses, or potentially dangerous attachments, the administrator needs to decide whether&lt;br /&gt;
to pass the mail on or delete it).&lt;br /&gt;
&lt;br /&gt;
In certain environments it is desired to provide the user quarantine interface at a specific host and port, &lt;br /&gt;
e.g. in order to only allow access to the interface from outside on port 443, or to provide a different and &lt;br /&gt;
trusted certificate to your users.&lt;br /&gt;
&lt;br /&gt;
The following Howto describes a small nginx configuration, which only exposes the paths necessary for user quarantine interface access,&lt;br /&gt;
while preventing access to other parts of the API.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this provides mostly cosmetic protection, since all paths in the Proxmox Mail Gateway API, apart from the login path&lt;br /&gt;
are only available to authenticated users anyways. The unprotected login path needs to be forwarded for the quarantine access as well.&lt;br /&gt;
&lt;br /&gt;
For creating a general reverse proxy for the complete web interface refer to the [https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy Howto in the Proxmox VE wiki].&lt;br /&gt;
&lt;br /&gt;
== Installing nginx ==&lt;br /&gt;
&lt;br /&gt;
The Howto creates a configuration suitable for nginx. You can install nginx on your Proxmox Mail Gateway using &amp;lt;nowiki&amp;gt;apt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 apt install nginx&lt;br /&gt;
&lt;br /&gt;
== Creating a site to proxy requests for quarantine  ==&lt;br /&gt;
&lt;br /&gt;
The following configuration is a minimal working nginx-site to proxy all requests necessary for accessing the quarantine interface for users.&lt;br /&gt;
You should adapt it to your site&#039;s requirements. This includes:&lt;br /&gt;
* changing the path to the used certificates&lt;br /&gt;
* setting the proper &amp;lt;code&amp;gt;server_name&amp;lt;/code&amp;gt;&lt;br /&gt;
* adapting the ssl-configuration parameters to current best practices&lt;br /&gt;
* if the proxy server is running directly on PMG:&lt;br /&gt;
** you probably want to disable the &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; site configuration &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/default&amp;lt;/code&amp;gt;.&lt;br /&gt;
** if you&#039;re using the integrated ACME implementation with the standalone plugin you need to remove the server on port 80 below, since the ACME implementation needs to bind to it during certificate renewal&lt;br /&gt;
* if the proxy server is running on another host adapting the url for the &amp;lt;code&amp;gt;proxy_pass&amp;lt;/code&amp;gt; directives&lt;br /&gt;
* You will also need to adapt the settings in the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_spamdetector_quarantine Spam Detector Quarantine Options in the PMG GUI] to reflect the hostname and port of the proxy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the site running write the config to &amp;lt;code&amp;gt;/etc/nginx/sites-available/pmg-quarantine.conf&amp;lt;/code&amp;gt; and symlink it to &amp;lt;code&amp;gt;/etc/nginx/sites-enabled&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ln -rs /etc/nginx/sites-available/pmg-quarantine.conf /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name _;&lt;br /&gt;
    ssl_certificate /etc/pmg/pmg-api.pem;&lt;br /&gt;
    ssl_certificate_key /etc/pmg/pmg-api.pem;&lt;br /&gt;
    proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
    proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
    proxy_set_header PVEClientIP $remote_addr;&lt;br /&gt;
    proxy_buffering off;&lt;br /&gt;
    client_max_body_size 0;&lt;br /&gt;
    proxy_connect_timeout  3600s;&lt;br /&gt;
    proxy_read_timeout  3600s;&lt;br /&gt;
    proxy_send_timeout  3600s;&lt;br /&gt;
    send_timeout  3600s;&lt;br /&gt;
&lt;br /&gt;
    # proxy requests for static components&lt;br /&gt;
    location ~ /proxmoxlib.js$|/favicon.ico$|/pve2/|/fontawesome/|/framework7|/pwt|/mobile {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
    location /quarantine {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location /api2 {&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/(access/ticket$|version$) {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/nodes/.+/subscription$ {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/quarantine {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=157</id>
		<title>Quarantine Web Interface Via Nginx Proxy</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=157"/>
		<updated>2025-10-23T09:45:59Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: adapt to nginx config to new yew based mobile gui /* Creating a site to proxy requests for quarantine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly.&lt;br /&gt;
If a mail is detected as spam users themselves can decide whether they want to keep or delete it in the user quarantine interface.&lt;br /&gt;
(for dangerous content, as mail containing viruses, or potentially dangerous attachments, the administrator needs to decide whether&lt;br /&gt;
to pass the mail on or delete it).&lt;br /&gt;
&lt;br /&gt;
In certain environments it is desired to provide the user quarantine interface at a specific host and port, &lt;br /&gt;
e.g. in order to only allow access to the interface from outside on port 443, or to provide a different and &lt;br /&gt;
trusted certificate to your users.&lt;br /&gt;
&lt;br /&gt;
The following Howto describes a small nginx configuration, which only exposes the paths necessary for user quarantine interface access,&lt;br /&gt;
while preventing access to other parts of the API.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this provides mostly cosmetic protection, since all paths in the Proxmox Mail Gateway API, apart from the login path&lt;br /&gt;
are only available to authenticated users anyways. The unprotected login path needs to be forwarded for the quarantine access as well.&lt;br /&gt;
&lt;br /&gt;
For creating a general reverse proxy for the complete web interface refer to the [https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy Howto in the Proxmox VE wiki].&lt;br /&gt;
&lt;br /&gt;
== Installing nginx ==&lt;br /&gt;
&lt;br /&gt;
The Howto creates a configuration suitable for nginx. You can install nginx on your Proxmox Mail Gateway using &amp;lt;nowiki&amp;gt;apt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 apt install nginx&lt;br /&gt;
&lt;br /&gt;
== Creating a site to proxy requests for quarantine  ==&lt;br /&gt;
&lt;br /&gt;
The following configuration is a minimal working nginx-site to proxy all requests necessary for accessing the quarantine interface for users.&lt;br /&gt;
You should adapt it to your site&#039;s requirements. This includes:&lt;br /&gt;
* changing the path to the used certificates&lt;br /&gt;
* setting the proper &amp;lt;code&amp;gt;server_name&amp;lt;/code&amp;gt;&lt;br /&gt;
* adapting the ssl-configuration parameters to current best practices&lt;br /&gt;
* if the proxy server is running directly on PMG:&lt;br /&gt;
** you probably want to disable the &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; site configuration &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/default&amp;lt;/code&amp;gt;.&lt;br /&gt;
** if you&#039;re using the integrated ACME implementation with the standalone plugin you need to remove the server on port 80 below, since the ACME implementation needs to bind to it during certificate renewal&lt;br /&gt;
* if the proxy server is running on another host adapting the url for the &amp;lt;code&amp;gt;proxy_pass&amp;lt;/code&amp;gt; directives&lt;br /&gt;
* You will also need to adapt the settings in the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_spamdetector_quarantine Spam Detector Quarantine Options in the PMG GUI] to reflect the hostname and port of the proxy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the site running write the config to &amp;lt;code&amp;gt;/etc/nginx/sites-available/pmg-quarantine.conf&amp;lt;/code&amp;gt; and symlink it to &amp;lt;code&amp;gt;/etc/nginx/sites-enabled&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ln -rs /etc/nginx/sites-available/pmg-quarantine.conf /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name _;&lt;br /&gt;
    ssl_certificate /etc/pmg/pmg-api.pem;&lt;br /&gt;
    ssl_certificate_key /etc/pmg/pmg-api.pem;&lt;br /&gt;
    proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
    proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
    proxy_set_header PVEClientIP $remote_addr;&lt;br /&gt;
    proxy_buffering off;&lt;br /&gt;
    client_max_body_size 0;&lt;br /&gt;
    proxy_connect_timeout  3600s;&lt;br /&gt;
    proxy_read_timeout  3600s;&lt;br /&gt;
    proxy_send_timeout  3600s;&lt;br /&gt;
    send_timeout  3600s;&lt;br /&gt;
&lt;br /&gt;
    # proxy requests for static components&lt;br /&gt;
    location ~ /proxmoxlib.js$|/favicon.ico$|/pve2/|/fontawesome/|/pwt|/mobile {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
    location /quarantine {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location /api2 {&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/(access/ticket$|version$) {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/nodes/.+/subscription$ {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/quarantine {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Roadmap&amp;diff=156</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Roadmap&amp;diff=156"/>
		<updated>2025-10-01T14:37:09Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Fresh installation from the Proxmox VE container template does not work with dhcp as network configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*&amp;lt;s&amp;gt;SpamAssassin 4&amp;lt;/s&amp;gt; done&lt;br /&gt;
*Continuous security and bug fix updates&lt;br /&gt;
=Release History=&lt;br /&gt;
See also [https://forum.proxmox.com/forums/announcements.7/ Announcement forum]&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 9.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 01. October 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Trixie (13.1)&lt;br /&gt;
* SpamAssassin 4.0.2 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.4.3&lt;br /&gt;
* PostgreSQL 17&lt;br /&gt;
* Latest 6.14.11-2 Kernel as new stable default&lt;br /&gt;
* ZFS 2.3.4&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New major release based on the great Debian Trixie.&lt;br /&gt;
* New Quarantine UI on mobile browsers based on the modern Rust-based Yew framework.&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 8.2, see [[Upgrade from 8 to 9]]&lt;br /&gt;
* Single-Sign-On (SSO) with OpenID Connect, and multiple authentication realms for PMG: These were introduced with PMG 8.2 and were since significantly improved based on the feedback from our customers and community.&lt;br /&gt;
* Synchronize the configuration templates of the core service &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; with the latest recommendations from upstream.&lt;br /&gt;
* Adapt the Content-Type filters to the renaming of relevant MIME-types for Microsoft executable formats.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* New Quarantine UI on mobile browers based on the Rust based Yew framework, in place of the one based on framework7.&lt;br /&gt;
* The non-mobile Quarantine UI offers a button to switch to the mobile version and recommends switching on displays which are too narrow for comfortable work with it.&lt;br /&gt;
* An XSS vulnerability for the HTTP proxy setting was fixed. See the corresponding Proxmox Security Advisory [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-798035  PSA-2025-00015-1] for further information.&lt;br /&gt;
* It is now possible to define an authentication realm as default instead of the hard-coded internal &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm.&lt;br /&gt;
* OpenID Connect realms can now be configured in the GUI, including the &amp;lt;code&amp;gt;username-claim&amp;lt;/code&amp;gt;, and the default role to be assigned to auto-created users.&lt;br /&gt;
* All labels and widgets containing the terms &amp;quot;blacklist&amp;quot; and &amp;quot;whitelist&amp;quot; were renamed to &amp;quot;blocklist&amp;quot; and &amp;quot;welcomelist,&amp;quot; respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
* Allow selecting multiple mails in the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; queue administration widget for delivery or deletion ([https://bugzilla.proxmox.com/show_bug.cgi?id=3450 issue 3450]).&lt;br /&gt;
* Improve the configuration and display of DNSBL sites in the Mail Proxy (&amp;lt;code&amp;gt;postscreen_dnsbl_sites&amp;lt;/code&amp;gt;)([https://bugzilla.proxmox.com/show_bug.cgi?id=3284 issue 3284]).&lt;br /&gt;
* Make the SpamInfo text selectable in the Spam Quarantine interface.&lt;br /&gt;
* Improved handling of translations:&lt;br /&gt;
** Add support for plural forms and ngettext usage.&lt;br /&gt;
** Translations can now contain comments that are extracted from the source code and provide useful context for translators.&lt;br /&gt;
* Updated translations, among others:&lt;br /&gt;
** Czech (new!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Bulgarian&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Polish&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Swedish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
&lt;br /&gt;
* Improvements of OpenID Connect realms, which were introduced in Proxmox Mail Gateway 8.2:&lt;br /&gt;
** Fix an error when logging in the first time to a secondary node as a user in an OIDC realm with enabled auto-creation.&lt;br /&gt;
** The validation for OIDC &amp;lt;code&amp;gt;client-id&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;client-key&amp;lt;/code&amp;gt; was aligned with the [https://www.rfc-editor.org/rfc/rfc6749#appendix-A relevant RFC].&lt;br /&gt;
** The &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm is not hard-coded as the default realm anymore, allowing to select a different default realm.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgqm&amp;lt;/code&amp;gt; utility used for sending spam reports to users now supports timespans between 1 and 24 hours in addition to &amp;lt;code&amp;gt;today&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;yesterday&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;week&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=2452 issue 2452]).&lt;br /&gt;
* Fix an issue where a disallowed value for the Destination TLS policy was accepted by the backend.&lt;br /&gt;
* Leading and trailing whitespace in the &amp;lt;code&amp;gt;__MSGID__&amp;lt;/code&amp;gt; macro in the rule system (containing the &amp;lt;code&amp;gt;Message-ID&amp;lt;/code&amp;gt; header) is now trimmed.&lt;br /&gt;
* The TLS-inbound domains are now added to the Proxmox Mail Gateway system report used in Enterprise support.&lt;br /&gt;
* Mails generated by Proxmox Mail Gateway now have a &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; header allowing them to have a valid DKIM signature.&lt;br /&gt;
* The Date header for autogenerated mails is set with a fixed locale to have it compliant with [https://www.rfc-editor.org/rfc/rfc5322 RFC5322].&lt;br /&gt;
* An issue of &amp;lt;code&amp;gt;pmgtunnel&amp;lt;/code&amp;gt; exiting with errors due to not correctly adapting to changes in the network information parsing code was repaired by fixing its handling of child processes.&lt;br /&gt;
* With the upgrade to Debian Trixie, the &amp;lt;code&amp;gt;application/x-ms-dos-executable&amp;lt;/code&amp;gt; MIME-Type was renamed to &amp;lt;code&amp;gt;application/vnd.microsoft.portable-executable&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;application/x-msdownload&amp;lt;/code&amp;gt;. As &amp;lt;code&amp;gt;exe&amp;lt;/code&amp;gt; files are filtered out in the default ruleset and are usually considered special when handling mails, the existing rules are automatically adapted.&lt;br /&gt;
* The &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; MTA package used by PMG was significantly reworked and improved upstream. PMG was adapted to the changes:&lt;br /&gt;
** &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; is now explicitly configured to run without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; confinement ([https://bugzilla.proxmox.com/show_bug.cgi?id=5323 issue 5323]).&lt;br /&gt;
*: The processes were running without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; since version 5.0, the change now is only making this explicit in the configuration files.&lt;br /&gt;
*: The change is in accordance with [https://salsa.debian.org/postfix-team/postfix-dev/-/blob/debian/master/debian/README.Debian?ref_type=heads#L44 Debian&#039;s recommendation] and in line with [https://www.postfix.org/COMPATIBILITY_README.html#chroot upstream].&lt;br /&gt;
** The &amp;lt;code&amp;gt;postfix@-&amp;lt;/code&amp;gt; default instance was dropped in favor of directly using &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;&lt;br /&gt;
** Deprecations in the shipped postfix configuration templates were fixed, and the [https://www.postfix.org/COMPATIBILITY_README.html compatibility level] was raised to 3.11.&lt;br /&gt;
* The Debian repository sources shipped for the &amp;lt;code&amp;gt;pmg-enterprise&amp;lt;/code&amp;gt; repository were adapted to the preferred Deb822 format.&lt;br /&gt;
* A change in the upstream &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; package caused the daemon not to be enabled automatically since PMG 8.1. Now the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package enables the service in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; maintainer script.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgdaemon&amp;lt;/code&amp;gt; HTTP API servers were adapted to the paths used by the new Yew-based mobile quarantine UI.&lt;br /&gt;
* The locale files served by the HTTP API servers now return their modification times to facilitate caching.&lt;br /&gt;
* Spam reports send to users and the system status report sent to administrators now have a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; version in addition to &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=4023 issue 4023]) ([https://bugzilla.proxmox.com/show_bug.cgi?id=1621 issue 1621]).&lt;br /&gt;
* Adding a custom ACME provider via the &amp;lt;code&amp;gt;pmgconfig&amp;lt;/code&amp;gt; command line utility was fixed for Proxmox Mail Gateway ([https://bugzilla.proxmox.com/show_bug.cgi?id=6748 issue 6748]).&lt;br /&gt;
* Improvements to handling external mail-sources via &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt;:&lt;br /&gt;
** &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; changed the semantics of TLS related parameters in version &amp;lt;code&amp;gt;6.4.0&amp;lt;/code&amp;gt;. The issue of not being able to connect to a system via plaintext session without StartTLS/implicit TLS was fixed ([https://bugzilla.proxmox.com/show_bug.cgi?id=6798 issue 6798]).&lt;br /&gt;
** Changing the configuration of &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; accounts now triggers a restart of the &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; daemon, resulting in the changes being live directly.&lt;br /&gt;
** The &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; package used for downloading mails via POP/IMAP to be processed by Proxmox Mail Gateway now ships a systemd-unit file instead of a legacy sysv-init script. This is a change to Debian upstream&#039;s version.&lt;br /&gt;
* Fix a spurious warning by the &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; API server daemon, when sending a &amp;lt;code&amp;gt;Cookie&amp;lt;/code&amp;gt; header without a valid authentication ticket.&lt;br /&gt;
* Fix a spurious warning during early boot due to &amp;lt;code&amp;gt;/run/pmg-smtp-filter.cfg&amp;lt;/code&amp;gt; not being in place yet.&lt;br /&gt;
* Ensure the &amp;lt;code&amp;gt;pmgspamreport.timer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgreport.timer&amp;lt;/code&amp;gt; units are run after their prerequisites have started on reboot&lt;br /&gt;
* Allow all &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; users to see the list of known MIME-Types, when adding ContentType filter objects ([https://bugzilla.proxmox.com/show_bug.cgi?id=5438 issue 5438]).&lt;br /&gt;
* Allow providing a list of &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; queue-ids and action (&amp;lt;code&amp;gt;deliver,delete&amp;lt;/code&amp;gt;) to the &amp;lt;code&amp;gt;/nodes/{node}/postfix/queue/{queue}&amp;lt;/code&amp;gt; to delete or flush multiple mails at once ([https://bugzilla.proxmox.com/show_bug.cgi?id=3450 issue 3450]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Install the microcode package matching the current platform.&lt;br /&gt;
*: This ensures that new Proxmox Mail Gateway installations get available fixes for CPU security issues and other CPU bugs.&lt;br /&gt;
*: This also means that installations now have the &amp;lt;code&amp;gt;non-free-firmware&amp;lt;/code&amp;gt; repository enabled.&lt;br /&gt;
*: To get microcode updates that were released after the ISO was built, hosts have to be updated regularly. Microcode updates need a reboot to go into effect.&lt;br /&gt;
* Ignore network interfaces without a valid MAC address instead of aborting the installation.&lt;br /&gt;
* Check that the configured LVM swapsize is not greater than half the disk size ([https://bugzilla.proxmox.com/show_bug.cgi?id=5887 issue 5887]).&lt;br /&gt;
* Handle the case where the DHCP lease includes the search domain in the Host Name option.&lt;br /&gt;
* Improve error reporting for disk and RAID checks.&lt;br /&gt;
* Improvements to the text-based installer and &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;:&lt;br /&gt;
** Improve error reporting when encountering an invalid CIDR.&lt;br /&gt;
** Add plausibility checks for subnet masks and IPv4 address.&lt;br /&gt;
* Improvements to the automated installation:&lt;br /&gt;
** Handle the case where the answer file provides an empty search domain.&lt;br /&gt;
** Check the number of disks for RAID configurations already when parsing the answer file to catch invalid configurations earlier.&lt;br /&gt;
** Warn if the answer file contains deprecated &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; keys.&lt;br /&gt;
** Check for duplicate disks in the answer file.&lt;br /&gt;
* Improve robustness of installing on Btrfs.&lt;br /&gt;
* Align the plausibility checks performed by the GUI and TUI installers in case of an installation on Btrfs and a single disk.&lt;br /&gt;
* Improve the visibility of CLI errors by printing an additional newline.&lt;br /&gt;
* Provide &amp;lt;code&amp;gt;--verify-root-password&amp;lt;/code&amp;gt; as option for &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;, to catch mistakes before installation.&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; compatibility level to &amp;lt;code&amp;gt;3.6&amp;lt;/code&amp;gt; for all products.&lt;br /&gt;
*: Note that this affects all products **apart from Proxmox Mail Gateway**, which sets it to &amp;lt;code&amp;gt;3.11&amp;lt;/code&amp;gt; through the templating system.&lt;br /&gt;
* The timezone is now set earlier before configuring &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; to ensure it&#039;s set correctly if &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; runs in &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Note that this affects all products **apart from Proxmox Mail Gateway**, which runs &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Do not create the deprecated &amp;lt;code&amp;gt;/etc/timezone&amp;lt;/code&amp;gt; in alignment with [https://metadata.ftp-master.debian.org/changelogs//main/t/tzdata/tzdata_2025b-4_changelog Debian upstream].&lt;br /&gt;
* Ensure that &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; is enabled after installation - see the [https://salsa.debian.org/clamav-team/clamav/-/merge_requests/7 patch submitted upstream for more information].&lt;br /&gt;
&lt;br /&gt;
==== Notable changes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== The Test Repository Is Now Named pmg-test ====&lt;br /&gt;
&lt;br /&gt;
For consistency with existing repositories, the &amp;lt;code&amp;gt;pmgtest&amp;lt;/code&amp;gt; repository is now spelled &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Breaking Changes in the Proxmox Mail Gateway API ====&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Google Safe Browsing&amp;quot; option for &amp;lt;code&amp;gt;ClamAV&amp;lt;/code&amp;gt;, which is deprecated since PMG 7.0, in &amp;lt;code&amp;gt;pmg.conf&amp;lt;/code&amp;gt; was dropped.&lt;br /&gt;
* The superfluous fields &amp;lt;code&amp;gt;network_address&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;prefix_size&amp;lt;/code&amp;gt; returned by the &amp;lt;code&amp;gt;/config/mynetworks&amp;lt;/code&amp;gt; API call were dropped, as &amp;lt;code&amp;gt;cidr&amp;lt;/code&amp;gt; contains the same information.&lt;br /&gt;
* The &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; actions, which were not exposed since at least PMG 5.0, and deprecated in PMG 7.2, were dropped from the database handling code.&lt;br /&gt;
* Changing the password of a user via &amp;lt;code&amp;gt;PUT /access/users/{userid}&amp;lt;/code&amp;gt; has been dropped in favor of the &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; API call. The GUI is using &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; since at least 2017.&lt;br /&gt;
* Adding and removing entries in the block- and welcomelists of users are now done by the master node in a cluster ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* The API has renamed all black-/whitelist API calls to block-/welcomelist respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
*: The old API calls are still present for backward compatibility but will be dropped with the next major release.&lt;br /&gt;
*: As these calls were also used in the templates for the spamreport e-mails sent to users, which are often modified by administrators, we recommend adapting your overridden configuration templates.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmail_raw&amp;lt;/code&amp;gt; variable available to the template for the spam reports sent to users has been renamed to &amp;lt;code&amp;gt;pmail_plain&amp;lt;/code&amp;gt; to match the other variables formatted for plain-text reports.&lt;br /&gt;
*: This variable was never used by a template shipped by Promxox Mail Gateway, thus it is very unlikely to have been used in a modification.&lt;br /&gt;
&lt;br /&gt;
==== Potential changes in network interface names ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 can now transparently handle many network interface name changes.&lt;br /&gt;
&lt;br /&gt;
These changes may occur when upgrading from Proxmox Mail Gateway 8.x to Proxmox Mail Gateway 9.0 due to new naming scheme policies or the added support for new NIC features. For example, this may happen when upgrading from Kernel 6.8 to Kernel 6.14.&lt;br /&gt;
If the previous primary name remains available as an alternative name, manual intervention may not be necessary since Proxmox Mail Gateway 9.0 allows the use of alternative names in network configurations and firewall rules.&lt;br /&gt;
&lt;br /&gt;
However, in some cases, the previous primary name might not be available as an alternative name after the upgrade. In such cases, manual reconfiguration after the upgrade is currently still necessary.&lt;br /&gt;
&lt;br /&gt;
Before upgrading, you can use the &amp;lt;code&amp;gt;proxmox-network-interface-pinning&amp;lt;/code&amp;gt; CLI tool to pin network interfaces to custom names.&lt;br /&gt;
For details, see the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_overriding_network_device_names Overriding Network Device Names] section in the reference documentation.&lt;br /&gt;
&lt;br /&gt;
==== AppArmor 4 ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 ships with AppArmor version 4.1.&lt;br /&gt;
Since this version is relatively new, you might see regressions in packages, for example &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt;, or software that is not part of the core Proxmox Mail Gateway distribution, for example the CUPS printing daemon.&lt;br /&gt;
&lt;br /&gt;
Most issues with older profiles can be resolved by configuring AppArmor to use the 3.0 ABI by adding the &amp;lt;code&amp;gt;abi &amp;lt;abi/3.0&amp;gt;,&amp;lt;/code&amp;gt; rule to the relevant profile.&lt;br /&gt;
For more details, see the [https://gitlab.com/apparmor/apparmor/-/wikis/apparmorpolicyfeaturesABI AppArmor Wiki].&lt;br /&gt;
&lt;br /&gt;
==== systemd logs &amp;quot;System is tainted: unmerged-bin&amp;quot; after boot ====&lt;br /&gt;
&lt;br /&gt;
It is recommended to ignore this message. See the [https://www.debian.org/releases/trixie/release-notes/issues.en.html#systemd-message-system-is-tainted-unmerged-bin Debian Trixie release notes] for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 9.0 BETA ==&lt;br /&gt;
&#039;&#039;&#039;Released 24. September 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|This is a test version that is not yet intended for production use. The release notes will be continuously updated during the beta phase.}}&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Trixie (13.1)&lt;br /&gt;
* SpamAssassin 4.0.2 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.4.3&lt;br /&gt;
* PostgreSQL 17&lt;br /&gt;
* Latest 6.14.11-2 Kernel as new stable default&lt;br /&gt;
* ZFS 2.3.4&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New major release based on the great Debian Trixie.&lt;br /&gt;
* New Quarantine UI on mobile browsers based on the modern Rust-based Yew framework.&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 8.2, see [[Upgrade from 8 to 9]]&lt;br /&gt;
* Single-Sign-On (SSO) with OpenID Connect, and multiple authentication realms for PMG, which were introduced with PMG 8.2 got significantly improved based on the feedback from our customers and community.&lt;br /&gt;
* Synchronize the configuration templates of the core service &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; with the latest recommendations from upstream.&lt;br /&gt;
* Adapt the Content-Type filters to the renaming of relevant MIME-types for Microsoft executable formats.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* New Quarantine UI on mobile browers based on the Rust based Yew framework, in place of the one based on framework7.&lt;br /&gt;
* The non-mobile Quarantine UI offers a button to switch to the mobile version and recommends switching on displays which are too narrow for comfortable work with it.&lt;br /&gt;
* An XSS vulnerability for the HTTP proxy setting was fixed. See the corresponding Proxmox Security Advisory [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-798035  PSA-2025-00015-1] for further information.&lt;br /&gt;
* It is now possible to define an authentication realm as default instead of the hard-coded internal &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm.&lt;br /&gt;
* OpenID Connect realms can now be configured in the GUI, including the &amp;lt;code&amp;gt;username-claim&amp;lt;/code&amp;gt;, and the default role to be assigned to auto-created users.&lt;br /&gt;
* All labels and widgets containing the terms &amp;quot;blacklist&amp;quot; and &amp;quot;whitelist&amp;quot; were renamed to &amp;quot;blocklist&amp;quot; and &amp;quot;welcomelist,&amp;quot; respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
* Improve the configuration and display of DNSBL sites in the Mail Proxy (&amp;lt;code&amp;gt;postscreen_dnsbl_sites&amp;lt;/code&amp;gt;)([https://bugzilla.proxmox.com/show_bug.cgi?id=3284 issue 3284]).&lt;br /&gt;
* Make the SpamInfo text selectable in the Spam Quarantine interface.&lt;br /&gt;
* Improved handling of translations:&lt;br /&gt;
** Add support for plural forms and ngettext usage.&lt;br /&gt;
** Translations can now contain comments that are extracted from the source code and provide useful context for translators.&lt;br /&gt;
* Updated translations, among others:&lt;br /&gt;
** Czech (new!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Bulgarian&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Polish&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Swedish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
&lt;br /&gt;
* Improvements of OpenID Connect realms, which were introduced in Proxmox Mail Gateway 8.2:&lt;br /&gt;
** Fix an error when logging in the first time to a secondary node as a user in an OIDC realm with enabled auto-creation.&lt;br /&gt;
** The validation for OIDC &amp;lt;code&amp;gt;client-id&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;client-key&amp;lt;/code&amp;gt; was aligned with the [https://www.rfc-editor.org/rfc/rfc6749#appendix-A relevant RFC].&lt;br /&gt;
** The &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm is not hardcoded as the default realm anymore, allowing to select a different default realm.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgqm&amp;lt;/code&amp;gt; utility used for sending spam reports to users now supports timespans between 1 and 24 hours in addition to &amp;lt;code&amp;gt;today&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;yesterday&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;week&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=2452 issue 2452]).&lt;br /&gt;
* Fix an issue where a disallowed value for the Destination TLS policy was accepted by the backend.&lt;br /&gt;
* Leading and trailing whitespace in the &amp;lt;code&amp;gt;__MSGID__&amp;lt;/code&amp;gt; macro in the rule system (containing the &amp;lt;code&amp;gt;Message-ID&amp;lt;/code&amp;gt; header) is now trimmed.&lt;br /&gt;
* The TLS-inbound domains are now added to the Proxmox Mail Gateway system report used in Enterprise support.&lt;br /&gt;
* Mails generated by Proxmox Mail Gateway now have a &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; header allowing them to have a valid DKIM signature.&lt;br /&gt;
* The Date header for autogenerated mails is set with a fixed locale to have it compliant with [https://www.rfc-editor.org/rfc/rfc5322 RFC5322].&lt;br /&gt;
* An issue of &amp;lt;code&amp;gt;pmgtunnel&amp;lt;/code&amp;gt; exiting with errors due to not correctly adapting to changes in the network information parsing code was repaired by fixing its handling of child processes.&lt;br /&gt;
* With the upgrade to Debian Trixie, the &amp;lt;code&amp;gt;application/x-ms-dos-executable&amp;lt;/code&amp;gt; MIME-Type was renamed to &amp;lt;code&amp;gt;application/vnd.microsoft.portable-executable&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;application/x-msdownload&amp;lt;/code&amp;gt;. As &amp;lt;code&amp;gt;exe&amp;lt;/code&amp;gt; files are filtered out in the default ruleset and are usually considered special when handling mails, the existing rules are automatically adapted.&lt;br /&gt;
* The &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; MTA package used by PMG was significantly reworked and improved upstream. PMG was adapted to the changes:&lt;br /&gt;
** &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; is now explicitly configured to run without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; confinement ([https://bugzilla.proxmox.com/show_bug.cgi?id=5323 issue 5323]).&lt;br /&gt;
*: The processes were running without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; since version 5.0, the change now is only making this explicit in the configuration files.&lt;br /&gt;
*: The change is in accordance with [https://salsa.debian.org/postfix-team/postfix-dev/-/blob/debian/master/debian/README.Debian?ref_type=heads#L44 Debian&#039;s recommendation] and in line with [https://www.postfix.org/COMPATIBILITY_README.html#chroot upstream].&lt;br /&gt;
** The &amp;lt;code&amp;gt;postfix@-&amp;lt;/code&amp;gt; default instance was dropped in favor of directly using &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;&lt;br /&gt;
** Deprecations in the shipped postfix configuration templates were fixed, and the [https://www.postfix.org/COMPATIBILITY_README.html compatibility level] was raised to 3.11.&lt;br /&gt;
* The Debian repository sources shipped for the &amp;lt;code&amp;gt;pmg-enterprise&amp;lt;/code&amp;gt; repository were adapted to the preferred Deb822 format.&lt;br /&gt;
* A change in the upstream &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; package caused the daemon not to be enabled automatically since PMG 8.1. Now the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package enables the service in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; maintainer script.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgdaemon&amp;lt;/code&amp;gt; HTTP API servers were adapted to the paths used by the new Yew-based mobile quarantine UI.&lt;br /&gt;
* The locale files served by the HTTP API servers now return their modification times to facilitate caching.&lt;br /&gt;
* Spamreports send to users and the system status report sent to administrators now have a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; version in addition to &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=4023 issue 4023]) ([https://bugzilla.proxmox.com/show_bug.cgi?id=1621 issue 1621]).&lt;br /&gt;
* Adding a custom ACME provider via the &amp;lt;code&amp;gt;pmgconfig&amp;lt;/code&amp;gt; command line utility was fixed for Proxmox Mail Gateway ([https://bugzilla.proxmox.com/show_bug.cgi?id=6748 issue 6748]).&lt;br /&gt;
* The &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; package used for downloading mails via POP/IMAP to be processed by Proxmox Mail Gateway now ships a systemd-unit file instead of a legacy sysv-init script. This is a change to Debian upstream&#039;s version.&lt;br /&gt;
* Fix a spurious warning by the &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; API server daemon, when sending a &amp;lt;code&amp;gt;Cookie&amp;lt;/code&amp;gt; header without a valid authentication ticket.&lt;br /&gt;
* Fix a spurious warning during early boot due to &amp;lt;code&amp;gt;/run/pmg-smtp-filter.cfg&amp;lt;/code&amp;gt; not being in place yet.&lt;br /&gt;
* Ensure the &amp;lt;code&amp;gt;pmgspamreport.timer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgreport.timer&amp;lt;/code&amp;gt; units are run after their prerequisites have started on reboot&lt;br /&gt;
* Allow all &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; users to see the list of known MIME-Types, when adding ContentType filter objects ([https://bugzilla.proxmox.com/show_bug.cgi?id=5438 issue 5438]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Install the microcode package matching the current platform.&lt;br /&gt;
*: This ensures that new Proxmox Mail Gateway installations get available fixes for CPU security issues and other CPU bugs.&lt;br /&gt;
*: This also means that installations now have the &amp;lt;code&amp;gt;non-free-firmware&amp;lt;/code&amp;gt; repository enabled.&lt;br /&gt;
*: To get microcode updates that were released after the ISO was built, hosts have to be updated regularly. Microcode updates need a reboot to go into effect.&lt;br /&gt;
* Ignore network interfaces without a valid MAC address instead of aborting the installation.&lt;br /&gt;
* Check that the configured LVM swapsize is not greater than half the disk size ([https://bugzilla.proxmox.com/show_bug.cgi?id=5887 issue 5887]).&lt;br /&gt;
* Handle the case where the DHCP lease includes the search domain in the Host Name option.&lt;br /&gt;
* Improve error reporting for disk and RAID checks.&lt;br /&gt;
* Improvements to the text-based installer and &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;:&lt;br /&gt;
** Improve error reporting when encountering an invalid CIDR.&lt;br /&gt;
** Add plausibility checks for subnet masks and IPv4 address&lt;br /&gt;
* Improvements to the automated installation:&lt;br /&gt;
** Handle the case where the answer file provides an empty search domain.&lt;br /&gt;
** Check the number of disks for RAID configurations already when parsing the answer file to catch invalid configurations earlier.&lt;br /&gt;
** Warn if the answer file contains deprecated &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; keys.&lt;br /&gt;
** Check for duplicate disks in the answer file.&lt;br /&gt;
* Improve robustness of installing on Btrfs.&lt;br /&gt;
* Align the plausibility checks performed by the GUI and TUI installers in case of an installation on Btrfs and a single disk.&lt;br /&gt;
* Improve the visibility of CLI errors by printing an additional newline.&lt;br /&gt;
* Provide &amp;lt;code&amp;gt;--verify-root-password&amp;lt;/code&amp;gt; as option for &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;, to catch mistakes before installation.&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; compatibility level to &amp;lt;code&amp;gt;3.6&amp;lt;/code&amp;gt; for all products&lt;br /&gt;
* The timezone is now set earlier before configuring &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; to ensure it&#039;s set correctly if &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; runs in &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Note that this affects all products **apart from Proxmox Mail Gateway**, which runs &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;&lt;br /&gt;
* Do not create the deprecated &amp;lt;code&amp;gt;/etc/timezone&amp;lt;/code&amp;gt; in alignment with [https://metadata.ftp-master.debian.org/changelogs//main/t/tzdata/tzdata_2025b-4_changelog Debian upstream].&lt;br /&gt;
* Ensure that &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; is enabled after installation - see the [https://salsa.debian.org/clamav-team/clamav/-/merge_requests/7 patch submitted upstream for more information].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Notable changes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== The Test Repository Is Now Named pmg-test ====&lt;br /&gt;
&lt;br /&gt;
For consistency with existing repositories, the &amp;lt;code&amp;gt;pmgtest&amp;lt;/code&amp;gt; repository is now spelled &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Breaking Changes in the Proxmox Mail Gateway API ====&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Google Safe Browsing&amp;quot; option for &amp;lt;code&amp;gt;ClamAV&amp;lt;/code&amp;gt;, which is deprecated since PMG 7.0, in &amp;lt;code&amp;gt;pmg.conf&amp;lt;/code&amp;gt; was dropped.&lt;br /&gt;
* The superfluous fields &amp;lt;code&amp;gt;network_address&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;prefix_size&amp;lt;/code&amp;gt; returned by the &amp;lt;code&amp;gt;/config/mynetworks&amp;lt;/code&amp;gt; API call were dropped, as &amp;lt;code&amp;gt;cidr&amp;lt;/code&amp;gt; contains the same information.&lt;br /&gt;
* The &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; actions, which were not exposed since at least PMG 5.0, and deprecated in PMG 7.2, were dropped from the database handling code.&lt;br /&gt;
* Changing the password of a user via &amp;lt;code&amp;gt;PUT /access/users/{userid}&amp;lt;/code&amp;gt; has been dropped in favor of the &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; API call. The GUI is using &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; since at least 2017.&lt;br /&gt;
* Adding and removing entries in the block- and welcomelists of users are now done by the master node in a cluster ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* The API has renamed all black-/whitelist API calls to block-/welcomelist respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
*: The old API calls are still present for backward compatibility but will be dropped with the next major release.&lt;br /&gt;
*: As these calls were also used in the templates for the spamreport e-mails sent to users, which are often modified by administrators, we recommend adapting your overridden configuration templates.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmail_raw&amp;lt;/code&amp;gt; variable available to the template for the spam reports sent to users has been renamed to &amp;lt;code&amp;gt;pmail_plain&amp;lt;/code&amp;gt; to match the other variables formatted for plain-text reports.&lt;br /&gt;
*: This variable was never used by a templated shipped by Promxox Mail Gateway, thus it is very unlikely to have been used in a modification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Potential changes in network interface names ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 can now transparently handle many network interface name changes.&lt;br /&gt;
&lt;br /&gt;
These changes may occur when upgrading from Proxmox Mail Gateway 8.x to Proxmox Mail Gateway 9.0 due to new naming scheme policies or the added support for new NIC features. For example, this may happen when upgrading from Kernel 6.8 to Kernel 6.14.&lt;br /&gt;
If the previous primary name remains available as an alternative name, manual intervention may not be necessary since Proxmox Mail Gateway 9.0 allows the use of alternative names in network configurations and firewall rules.&lt;br /&gt;
&lt;br /&gt;
However, in some cases, the previous primary name might not be available as an alternative name after the upgrade. In such cases, manual reconfiguration after the upgrade is currently still necessary.&lt;br /&gt;
&lt;br /&gt;
Before upgrading, you can use the &amp;lt;code&amp;gt;pve-network-interface-pinning&amp;lt;/code&amp;gt; CLI tool to pin network interfaces to custom names.&lt;br /&gt;
For details, see the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_overriding_network_device_names Overriding Network Device Names] section in the reference documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AppArmor 4 ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 ships with AppArmor version 4.1.&lt;br /&gt;
Since this version is relatively new, you might see regressions in packages that are not part of the core Proxmox Mail Gateway distribution, for example, &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt; or the CUPS printing daemon.&lt;br /&gt;
&lt;br /&gt;
Most issues with older profiles can be resolved by configuring AppArmor to use the 3.0 ABI by adding the &amp;lt;code&amp;gt;abi &amp;lt;abi/3.0&amp;gt;,&amp;lt;/code&amp;gt; rule to the relevant profile.&lt;br /&gt;
For more details, see the [https://gitlab.com/apparmor/apparmor/-/wikis/apparmorpolicyfeaturesABI AppArmor Wiki].&lt;br /&gt;
&lt;br /&gt;
==== systemd logs &amp;quot;System is tainted: unmerged-bin&amp;quot; after boot ====&lt;br /&gt;
&lt;br /&gt;
It is recommended to ignore this message. See the [https://www.debian.org/releases/trixie/release-notes/issues.en.html#systemd-message-system-is-tainted-unmerged-bin Debian Trixie release notes] for more details.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.2 ==&lt;br /&gt;
&#039;&#039;&#039;Released 27. February 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.9)&lt;br /&gt;
* SpamAssassin 4.0.1 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.7&lt;br /&gt;
* PostgreSQL 15.11&lt;br /&gt;
* Latest 6.8 Kernel as new stable default&lt;br /&gt;
* Newer 6.11 Kernel as opt-in&lt;br /&gt;
* ZFS 2.2.7&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Support for multiple authentication realms, known from Proxmox VE and Proxmox Backup Server.&lt;br /&gt;
* Single-Sign-On (SSO) with the new OpenID Connect access realm type as first new realm.&lt;br /&gt;
*: External authorization servers can now be integrated for management access with Proxmox Mail Gateway, either using existing public services or your own identity and access management solution, for example, Keycloak, Zitadel or LemonLDAP::NG.&lt;br /&gt;
* Support for automated and unattended installation of Proxmox Mail Gateway.&lt;br /&gt;
*: Proxmox VE now ships a tool that prepares a Proxmox Mail Gateway ISO for automated installation.&lt;br /&gt;
*: The prepared ISO retrieves all required settings for automated installation from an answer file.&lt;br /&gt;
*: The answer file can be provided directly in the ISO, on an additional disk such as a USB flash drive, or over the network.&lt;br /&gt;
* Rule System: New option for the Content-Type What Objects, to ignore externally provided type information from the filename and header, and rely solely on file signature based detection.&lt;br /&gt;
* Rule System: New option for Match Field What Object, to restrict matching on the top header section, instead of also matching headers in attached emails.&lt;br /&gt;
* Mails generated by the Proxmox Mail Gateway processing stack can now be signed with DKIM.&lt;br /&gt;
* The Proxmox team has been tracking security-relevant issues in our software explicitly and publishes them in the [https://forum.proxmox.com/threads/149333/ Community Forum] since January 2024.&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [https://pmg.proxmox.com/wiki/index.php/Upgrade_from_7_to_8 Upgrade from 7 to 8].&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.2-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* Add an option to the Match Field What Object to only consider the headers of the top mail-part, instead of also comparing the headers of all attachments (including emails forwarded as attachment [https://bugzilla.proxmox.com/show_bug.cgi?id=2709 issue 2709]).&lt;br /&gt;
* Optionally restrict Content-Type What Object to only match based on the signature detected in the content of the file, disregarding the &amp;lt;code&amp;gt;Content-Type:&amp;lt;/code&amp;gt; and the recommended filename header information ([https://bugzilla.proxmox.com/show_bug.cgi?id=2691 issue 2691] [https://bugzilla.proxmox.com/show_bug.cgi?id=5618 issue 5618]).&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* The end-user quarantine interface now has a short help page explaining its purpose and the available keyboard shortcuts ([https://bugzilla.proxmox.com/show_bug.cgi?id=4311 issue 4311]).&lt;br /&gt;
* The listing of Who, What and When Objects can now optionally also display the description set for each object group, without explicitly selecting it.&lt;br /&gt;
* Fix an XSS issue in the Mail Queue view.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/149333/post-730687 PSA-2024-00015-1] for details.&lt;br /&gt;
* Fix the display message when removing a rule object, to not include the html-escaped icon.&lt;br /&gt;
* Fix a typo in the suggested default text when creating new notification objects.&lt;br /&gt;
* Remove whitespace before or after the subscription key when adding a new one, as they usually are copy-pasted.&lt;br /&gt;
* Fix the public-key DNS record displaying for DKIM selectors larger than 2048 bit.&lt;br /&gt;
* Clarify the label for DKIM domain selection.&lt;br /&gt;
* Enable autocompletion hints for the username, password, and TFA input fields to improve compatibility with password managers ([https://bugzilla.proxmox.com/show_bug.cgi?id=5251 issue 5251]).&lt;br /&gt;
* Show only installed services in the node&#039;s system panel by default, but optionally allow to show all services ([https://bugzilla.proxmox.com/show_bug.cgi?id=5611 issue 5611]).&lt;br /&gt;
* Fix an issue where clicking on an external link to the GUI would display a login screen, even if the current session was still valid.&lt;br /&gt;
* Fix an issue where the date picker would choose the wrong date after changing to a different month.&lt;br /&gt;
* Fix an issue where edit windows would not be correctly masked while loading.&lt;br /&gt;
* Display the end-of-life message as a notice up until three weeks before the end-of-life date, and display it as a warning from that point on.&lt;br /&gt;
* Move the &amp;quot;Reset&amp;quot; button for edit windows to an icon-only button in the title bar ([https://bugzilla.proxmox.com/show_bug.cgi?id=5277 issue 5277]).&lt;br /&gt;
*: This reduces the risk of misclicking and accidentally resetting form data.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Bulgarian (NEW!)&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
* You can now configure the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header information used for mails from the system itself:&lt;br /&gt;
** When sending admin reports&lt;br /&gt;
** Notifications from a notify action&lt;br /&gt;
** Backup jobs&lt;br /&gt;
** Bounces for messages refused for part of the recipients if before queue filtering is used and NDR on block is enabled.&lt;br /&gt;
*: For spam reports and quarantine links this could already be set in the Spam Quarantine options.&lt;br /&gt;
*: The emails still use an empty envelope from address, or for some cases &amp;lt;code&amp;gt;postmaster&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If this is set to contain an email address with a domain name, and DKIM signing based on header is enabled, the mails are now signed with DKIM ([https://bugzilla.proxmox.com/show_bug.cgi?id=4658 issue 4658]).&lt;br /&gt;
* Fix enabling custom SpamAssassin scores on systems where &amp;lt;code&amp;gt;/var/cache&amp;lt;/code&amp;gt; is on a different filesystem from &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Any pending changes will be preserved across the upgrade.&lt;br /&gt;
* Fix a post-authentication privileged file read vulnerability in the Proxmox Mail Gateway API.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-705346 PSA-2024-00009-1] for details.&lt;br /&gt;
* Make the static email containing the quarantine access link into a template, helping deployments with predominantly non-English speaking users ([https://bugzilla.proxmox.com/show_bug.cgi?id=4211 issue 4211]).&lt;br /&gt;
* Support having a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; alternative part for report emails generated by PMG, like the daily admin report and the spam quarantine report send to users.&lt;br /&gt;
* Fix the default examples for the Who Objects to use a domain (&amp;lt;code&amp;gt;fromthisdomain.example&amp;lt;/code&amp;gt;) reserved for documentation and examples ([https://bugzilla.proxmox.com/show_bug.cgi?id=5972 issue 5972]).&lt;br /&gt;
* Include the failure to DKIM sign a mail in the Tracking Center output, by adding the internal queue-id to the log message.&lt;br /&gt;
* Prevent a mail from being delivered multiple times when a user clicks on the deliver-button in their spam report multiple times ([https://bugzilla.proxmox.com/show_bug.cgi?id=6126 issue 6126]).&lt;br /&gt;
* Include the receiver email address when logging release or deletion from the quarantine.&lt;br /&gt;
* Fix the custom check script interface to also allow negative spam-scores as result.&lt;br /&gt;
* Fix an issue where comments set for LDAP profiles did not preserve percent encodings.&lt;br /&gt;
* Clarify that links are not displayed as links, but as plain-text when enabling the  &amp;lt;code&amp;gt;allowhrefs&amp;lt;/code&amp;gt; option.&lt;br /&gt;
* Use a lower level perl routine for setting file-contents to reduce write amplification.&lt;br /&gt;
* Use double-hyphen as argument prefix instead of the outdated single-hyphen in CLI commands documentation.&lt;br /&gt;
* Fix an issue where the documentation for CLI aliases did not mention the complete aliased command.&lt;br /&gt;
* Reload all Proxmox Mail Gateway services when the &amp;lt;code&amp;gt;proxmox-spamassassin&amp;lt;/code&amp;gt; package is updated to a new version.&lt;br /&gt;
&lt;br /&gt;
==== Access Control ====&lt;br /&gt;
* Realm System ported from Proxmox VE.&lt;br /&gt;
*: Enables you to configure multiple external authentication realms for users in the administration backend.&lt;br /&gt;
* Single-Sign-On (SSO) with the new OpenID Connect access realm type as first new realm.&lt;br /&gt;
*: External authorization servers can now be integrated for management access with Proxmox Mail Gateway, either using existing public services or your own identity and access management solution, for example, Keycloak, Zitadel or LemonLDAP::NG.&lt;br /&gt;
*: With the ability to auto-create users upon first logging it.&lt;br /&gt;
*: Roles for auto-created users can be queried from a configurable role-claim on your OpenID Connect service, or use a fixed role for all auto-created user of a realm.&lt;br /&gt;
*: Initial login for an auto-created user in a cluster needs to be done on the primary/master node.&lt;br /&gt;
&lt;br /&gt;
==== Notable bugfixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Since the release of Proxmox Mail Gateway 8.1 the Proxmox team has begun [https://forum.proxmox.com/forums/security-advisories.26/ tracking explicit security issues publicly in our forum]. The thread lists all security issues since January 2024.&lt;br /&gt;
*: Following the posts there is highly recommended.&lt;br /&gt;
* Fix an RCE vulnerability in the shim bootloader used for Secure Boot support.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-virtual-environment-security-advisories.149331/post-678937 PSA-2024-00007-1] for details.&lt;br /&gt;
* Fix unexpected behavior in handling single-part attachments in the rule system.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-728656 PSA-2024-00012-1] for details.&lt;br /&gt;
* Fix the &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; tool to identify the newer released &amp;lt;code&amp;gt;proxmox-kernel&amp;lt;/code&amp;gt; series (6.5, 6.8, 6.11) as expected kernel versions.&lt;br /&gt;
* Add a section to the &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; tool for checking potential issues in the currently configured ruleset.&lt;br /&gt;
* Increase the minimum password length to 8, following NIST recommendation and the change in the installer&lt;br /&gt;
* Include information about the routing table in the &amp;lt;code&amp;gt;pmg-system-report&amp;lt;/code&amp;gt; tool used for Enterprise Support information collection.&lt;br /&gt;
* Add anchors to subsections of the documentation to provide links to the specific point where an option is documented.&lt;br /&gt;
* Document the steps needed to activate a custom SpamAssassin configuration ([https://bugzilla.proxmox.com/show_bug.cgi?id=3979 issue 3979]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
* Support for automated and unattended installation of Proxmox Mail Gateway, as already released for Proxmox VE 8.2 and Proxmox Backup Server 3.2.&lt;br /&gt;
*: Introduce the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt; tool that prepares an ISO for automated installation.&lt;br /&gt;
*: The automated installation ISO reads all required settings from an answer file in TOML format.&lt;br /&gt;
*: One option to provide the answer file is to directly add it to the ISO. Alternatively, the installer can retrieve it from a specifically-labeled partition or via HTTPS from a specific URL.&lt;br /&gt;
*: If the answer file is retrieved via HTTPS, URL and fingerprint can be directly added to the ISO, or obtained via DHCP or DNS.&lt;br /&gt;
*: See the [https://pve.proxmox.com/wiki/Automated_Installation wiki page on Automated Installation] for more details.&lt;br /&gt;
* Ship the recent version 7.20 of memtestx86+, adding support for current CPU Generations (Intel&#039;s Arrow Lake and Ryzen 9000 series) as well as preliminary NUMA support.&lt;br /&gt;
* Fix an issue where setting ZFS compression to &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; did not have any effect, due to a change in upstream defaults.&lt;br /&gt;
* Improve the layout of widgets in the GTK-based installer for consistent margins and alignment.&lt;br /&gt;
* Add a post-installation notification mechanism for automated installations ([https://bugzilla.proxmox.com/show_bug.cgi?id=5536 issue 5536]).&lt;br /&gt;
*: This mechanism can be configured with the new &amp;lt;code&amp;gt;post-installation-webhook&amp;lt;/code&amp;gt; section in the answer file.&lt;br /&gt;
* Add support for running a custom script on first boot after automated installation ([https://bugzilla.proxmox.com/show_bug.cgi?id=5579 issue 5579]).&lt;br /&gt;
*: The script can be provided in the ISO or fetched from an URL.&lt;br /&gt;
* Allow users to set hashed passwords in the &amp;lt;code&amp;gt;proxmox-auto-installer&amp;lt;/code&amp;gt; answer file.&lt;br /&gt;
* Allow users to customize the label of the partition from which the automated installer fetches the answer file.&lt;br /&gt;
* Add ability to detect and rename an existing ZFS pool named &amp;lt;code&amp;gt;rpool&amp;lt;/code&amp;gt; during the installation.&lt;br /&gt;
* Improve the email address validation to include a broader set of email address formats.&lt;br /&gt;
*: This implements the email validation check specified in the [https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address HTML specification].&lt;br /&gt;
* The text-based installer now fails if no supported NIC was found, similar to graphical installer.&lt;br /&gt;
* Improve UI consistency by adding the missing background layer for the initial setup error screen in the text-based installer.&lt;br /&gt;
* Improve usability for small screens by adding a tabbed view for the advanced options at the disk selection step in the text-based installer.&lt;br /&gt;
*: This change only affects screens with a screen width of less than or equal to 80 columns.&lt;br /&gt;
* Fix an issue with ISOs generated with the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt; which caused the user to end up in the GRUB shell when booting from a block device (e.g. an USB flash drive) in UEFI mode.&lt;br /&gt;
* Fix a bug which caused some kernel parameters related to the automated installer to be removed incorrectly.&lt;br /&gt;
* Fix a bug which caused the installer to not detect Secure Boot in some cases.&lt;br /&gt;
* Ask the user for patience while making the system bootable if multiple disks are configured, as this may take longer than expected.&lt;br /&gt;
* Preserve the &amp;lt;code&amp;gt;nomodeset&amp;lt;/code&amp;gt; kernel command-line parameter.&lt;br /&gt;
*: A missing &amp;lt;code&amp;gt;nomodeset&amp;lt;/code&amp;gt; parameter has caused display rendering issues when booting the finished Proxmox Mail Gateway installation on some systems ([https://bugzilla.proxmox.com/show_bug.cgi?id=4230#c38 see this comment for more information]).&lt;br /&gt;
* Improve user-visible error and log messages in the installer.&lt;br /&gt;
* Improve documentation for the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve error reporting by printing the full error message when the installation fails in &amp;lt;code&amp;gt;proxmox-auto-installer&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve error reporting by printing the full error message when mounting and unmounting the installation file system fails in &amp;lt;code&amp;gt;proxmox-chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve debugging and testing by enumerating the installation environment anew (e.g. when running the command &amp;lt;code&amp;gt;dump-env&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Send the correct content-type charset &amp;lt;code&amp;gt;utf-8&amp;lt;/code&amp;gt; when fetching answer files from an HTTP server during automated installation.&lt;br /&gt;
* Switch the text-based installer rendering backend from termion to crossterm.&lt;br /&gt;
* Raise minimum root password length from 5 to 8 characters for all installers.&lt;br /&gt;
*: This change is done in accordance with current [https://pages.nist.gov/800-63-4/sp800-63b.html#passwordver NIST recommendations].&lt;br /&gt;
* Print more user-visible information about the reasons the auto installation failed.&lt;br /&gt;
* Allow RAID levels to be set case-insensitively in the answer file for the auto-installer.&lt;br /&gt;
* Prevent the auto-installer from printing progress messages while there has been no progress.&lt;br /&gt;
* Disallow configuring BTRFS as root filesystem for Proxmox products that do not currently support it.&lt;br /&gt;
* Correctly acknowledge the user&#039;s preference whether to reboot on error during auto installation ([https://bugzilla.proxmox.com/show_bug.cgi?id=5984 issue 5984]).&lt;br /&gt;
* Allow binary executables (in addition to shell scripts) to be used as the first-boot executable for the auto-installer.&lt;br /&gt;
* Allow properties in the answer file of the auto-installer to be either in &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;kebab-case&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: The &amp;lt;code&amp;gt;kebab-case&amp;lt;/code&amp;gt; variant is preferred to be more consistent with other Proxmox configuration file formats.&lt;br /&gt;
*: The &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; variant will be gradually deprecated and removed in future major version releases.&lt;br /&gt;
* Validate the locale and first-boot-hook settings while preparing the auto-installer ISO instead of failing the installation due to wrong settings.&lt;br /&gt;
* Prevent printing non-critical kernel logging messages, which drew over the TUI installer&#039;s interface.&lt;br /&gt;
* Keep network configuration detected via DHCP in the GUI Installer, even when not clicking &amp;lt;code&amp;gt;Next&amp;lt;/code&amp;gt; first ([https://bugzilla.proxmox.com/show_bug.cgi?id=2502 issue 2502]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.2-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel 6.8 ====&lt;br /&gt;
&lt;br /&gt;
The Proxmox Mail Gateway 8.2 releases will install and use the 6.8 Linux kernel by default. A major kernel version change can have a few hardware-specific side effects. The kernel version 6.8 has been the default kernel for Proxmox Mail Gateway installations since April 2024, so most existing installations should already be using it.&lt;br /&gt;
&lt;br /&gt;
Most issues with new kernel versions do not affect virtual machines and container guests, so virtualized Promox Mail Gateway installations are not affected.&lt;br /&gt;
&lt;br /&gt;
===== Kernel: Change in Network Interface Names =====&lt;br /&gt;
&lt;br /&gt;
Upgrading kernels always carries the risk of changes in network interface names, which can lead to invalid network configurations after a reboot.&lt;br /&gt;
In this case, you must either update the network configuration to reflect the name changes, or pin the network interface to its name beforehand.&lt;br /&gt;
&lt;br /&gt;
See [https://pve.proxmox.com/pve-docs/pve-admin-guide.html#network_override_device_names the Proxmox VE reference documentation] on how to pin the interface names based on MAC Addresses.&lt;br /&gt;
&lt;br /&gt;
Currently, the following models are known to be affected at higher rates:&lt;br /&gt;
* Models using &amp;lt;code&amp;gt;i40e&amp;lt;/code&amp;gt;. Their names can get an additional port suffix like &amp;lt;code&amp;gt;p0&amp;lt;/code&amp;gt; added.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.1 ==&lt;br /&gt;
&#039;&#039;&#039;Released 29. February 2024&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.5)&lt;br /&gt;
* SpamAssassin 4.0.0 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.3&lt;br /&gt;
* PostgreSQL 15.6&lt;br /&gt;
* Latest 6.5 Kernel as new stable default&lt;br /&gt;
* ZFS 2.2.2&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Extend the rule system to allow selection of the &amp;lt;strong&amp;gt;match-if mode&amp;lt;/strong&amp;gt; for entries in What/Who/When Objects, and multiple Objects in Rules, providing flexible control over whether all, any, none, or some but not all must match.&lt;br /&gt;
*: See the [[#8.1-rule-system-enhancements|enhancements in the rule system section]] for more details and examples.&lt;br /&gt;
* Optional DKIM signing based on the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header (also known as &amp;lt;code&amp;gt;RFC5322.From&amp;lt;/code&amp;gt;), instead of the Envelope sender (also known as &amp;lt;code&amp;gt;RFC5321.From&amp;lt;/code&amp;gt;) ([https://bugzilla.proxmox.com/show_bug.cgi?id=2971 issue 2971]).&lt;br /&gt;
&lt;br /&gt;
* Secure Boot support.&lt;br /&gt;
*: Proxmox Mail Gateway now includes a signed shim bootloader trusted by most hardware&#039;s UEFI implementations. All necessary components of the boot chain are available in variants signed by Proxmox.&lt;br /&gt;
*: The Proxmox Mail Gateway installer can now be run in environments where Secure Boot is required and enabled, and the resulting installation can boot in such environments.&lt;br /&gt;
*: Existing Proxmox Mail Gateway installations can be switched over to Secure Boot without reinstallation by executing some manual steps, see the [https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysboot_secure_boot documentation] for details.&lt;br /&gt;
*: How to use custom secure boot keys has been documented in the [https://pve.proxmox.com/wiki/Secure_Boot_Setup Secure Boot Setup] page in the Proxmox VE wiki. For using DKMS modules with secure boot see the [https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysboot_secure_boot reference documentation].&lt;br /&gt;
&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [https://pmg.proxmox.com/wiki/index.php/Upgrade_from_7_to_8 Upgrade from 7 to 8]&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.1-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* Make the rule system more flexible by introducing a match-if-mode for objects and groups. The match-if-mode of an object (or group) determines whether any, all, not all or none of its children must match for the whole object (or group) to match. This allows to implement complex rules, for example:&lt;br /&gt;
** Exclude certain recipients from a rule, while still considering all later rules for them.&lt;br /&gt;
** Treat emails differently if they contain particular attachments and are detected as spam or contain a virus.&lt;br /&gt;
** Match attachments with a filename ending in &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;, but being detected as executable by the content-type filter.&lt;br /&gt;
** Matching a mail sent from one address and containing a phrase in the subject.&lt;br /&gt;
* Disclaimers can now be added on top of the message, instead of only at the bottom ([https://bugzilla.proxmox.com/show_bug.cgi?id=2606 issue 2606]).&lt;br /&gt;
* The separator &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; for disclaimers can now be optionally omitted ([https://bugzilla.proxmox.com/show_bug.cgi?id=2430 issue 2430]).&lt;br /&gt;
* Adapt the number of parallel worker processes for the SMTP filter to increased memory requirements and availability.&lt;br /&gt;
* Make the timeout for processing a mail consistent between before- and after-queue filtering, and make it configurable.&lt;br /&gt;
* Prevent duplicate mail delivery when filtering runs into a timeout.&lt;br /&gt;
* Fix the synchronization of the user wants- and blocklists if the last address is removed for a user ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* Further improve input validation for regular expressions in the rule system ([https://bugzilla.proxmox.com/show_bug.cgi?id=4811 issue 4811]).&lt;br /&gt;
* Fix an error in the collection of virus occurrence statistics.&lt;br /&gt;
* The spam report e-mails now correctly handle addresses with characters that need to be escaped for the API and GUI.&lt;br /&gt;
* Display the descriptions for rules from the advanced KAM ruleset in the spam info grid in the quarantine view.&lt;br /&gt;
* Improve the output of &amp;lt;code&amp;gt;pmgdb dump&amp;lt;/code&amp;gt; used for gathering information about the ruleset:&lt;br /&gt;
** Add information about the type of What Objects&lt;br /&gt;
** Add optional &amp;lt;code&amp;gt;--rules&amp;lt;/code&amp;gt; parameter to restrict output to rules that are active or inactive&lt;br /&gt;
** Visually emphasize whether a rule is active&lt;br /&gt;
** Remove unnecessary filler words from output&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
&lt;br /&gt;
* Make it easier to manage large deployments by adding a filter- and search-box for ([https://bugzilla.proxmox.com/show_bug.cgi?id=4510 issue 4510]):&lt;br /&gt;
*: Relay Domains&lt;br /&gt;
*: Transport&lt;br /&gt;
*: Networks&lt;br /&gt;
*: Objects in the rule system&lt;br /&gt;
* Add icons to the backup destination panel for improved UX.&lt;br /&gt;
* Fix an issue where the OK button would stay disabled when editing an ACME DNS challenge plugin ([https://bugzilla.proxmox.com/show_bug.cgi?id=4531 issue 4531]).&lt;br /&gt;
* Fix TLS 1.3-only configuration for the API proxy server ([https://bugzilla.proxmox.com/show_bug.cgi?id=4859 issue 4859]).&lt;br /&gt;
* Fix spelling errors in the GUI and improve gettext instances so that they can be better translated.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Croatian (NEW!)&lt;br /&gt;
** Georgian (NEW!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Catalan&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Polish&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
** The language code for Korean was corrected from &amp;lt;code&amp;gt;kr&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ko&amp;lt;/code&amp;gt; in alignment with ISO 639-1, while maintaining a symbolic link for backward compatibility for now.&lt;br /&gt;
** Several remaining occurrences of the &amp;lt;code&amp;gt;GiB&amp;lt;/code&amp;gt; unit in the GUI can now be translated ([https://bugzilla.proxmox.com/show_bug.cgi?id=4551 issue 4551]).&lt;br /&gt;
&lt;br /&gt;
==== Access Control ====&lt;br /&gt;
&lt;br /&gt;
* Allow usernames shorter than 4 characters, in accordance with Proxmox VE and Proxmox Backup Server ([https://bugzilla.proxmox.com/show_bug.cgi?id=4818 issue 4818])&lt;br /&gt;
&lt;br /&gt;
==== Notable bug fixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Harden the Postfix configuration for the external port to address the [https://www.postfix.org/smtp-smuggling.html SMTP Smuggling] security issue, by implementing all recommendations from upstream.&lt;br /&gt;
* Switch the default time-stamp format expected by the Tracking Center to the RFC3339 based information in the logs in Proxmox Mail Gateway 8.0 and newer. While this was initially meant as a small clean-up a few issues around the switch between DST and regular time were fixed with the changes.&lt;br /&gt;
* Secure Boot support.&lt;br /&gt;
*: Proxmox Mail Gateway now ships a shim bootloader signed by a CA trusted by most hardware&#039;s UEFI implementation. In addition, it ships variants of the GRUB bootloader, MOK utilities and kernel images signed by Proxmox and trusted by the shim bootloader.&lt;br /&gt;
*: New installation will support Secure Boot out of the box if it is enabled.&lt;br /&gt;
*: Existing installations can be adapted to Secure Boot by installing optional packages, and possibly reformatting and re-initializing the ESP(s), without the need for a complete reinstallation. See [https://pve.proxmox.com/wiki/Secure_Boot_Setup the wiki article for more details].&lt;br /&gt;
* Fix cluster setups recreated after restoring a backup with statistics ([https://bugzilla.proxmox.com/show_bug.cgi?id=5189 issue 5189]).&lt;br /&gt;
* The kernel shipped by Proxmox is shared for all products. This is now reflected in the renaming from &amp;lt;code&amp;gt;pve-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pve-headers&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;proxmox-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;proxmox-headers&amp;lt;/code&amp;gt; respectively in all relevant packages.&lt;br /&gt;
* The new &amp;lt;code&amp;gt;proxmox-default-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;proxmox-default-headers&amp;lt;/code&amp;gt; meta-packages will depend on the currently recommended kernel-series.&lt;br /&gt;
* Many edge-cases encountered during the upgrade from Proxmox Mail Gateway 7.3 to 8 by our user-base are now detected and warned about in the improved &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; checks:&lt;br /&gt;
** Notify when a template was copied to &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; without any modifications, to prevent missing important changes to config files.&lt;br /&gt;
** Warn if [https://github.com/dell/dkms DKMS] modules are detected, as many of them do not upgrade smoothly to the newer kernel versions in Mail Gateway 8.&lt;br /&gt;
** Warn if version 7 of the Mail Gateway system does not have the correct meta-package of &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; installed. The correct meta-package is required to actually upgrade the installed bootloader to the newest version.&lt;br /&gt;
* Support for adding custom ACME enabled CA&#039;s which require authentication through &#039;&#039;&#039;E&#039;&#039;&#039;xternal &#039;&#039;&#039;A&#039;&#039;&#039;ccount &#039;&#039;&#039;B&#039;&#039;&#039;inding (EAB) on the command line ([https://bugzilla.proxmox.com/show_bug.cgi?id=4497 issue 4497]).&lt;br /&gt;
* Fix non-interactive use of the &amp;lt;code&amp;gt;pmgsh&amp;lt;/code&amp;gt; utility ([https://bugzilla.proxmox.com/show_bug.cgi?id=4815 issue 4815]).&lt;br /&gt;
* Improve the parsing of config and system files, used in many places of the code. This fixes an issue with displaying the network interfaces without a correct hostname entry in &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; and aims to prevent similar issues in the future.&lt;br /&gt;
* Prevent cluster synchronization from failing due to a change in fingerprint parsing in OpenSSL.&lt;br /&gt;
* Add support for having a Proxmox Backup Server remote on an alternate port  ([https://bugzilla.proxmox.com/show_bug.cgi?id=4944 issue 4944]).&lt;br /&gt;
* Reduce log severity for periodic informational messages from &amp;lt;code&amp;gt;error&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Changelogs for new package versions shown in the UI are now all gathered with &amp;lt;code&amp;gt;apt changelog&amp;lt;/code&amp;gt;, as this is now supported by the Proxmox repositories.&lt;br /&gt;
* Add information about the configured domains for DKIM signing to the report generated for support cases.&lt;br /&gt;
* The documentation on firmware updates provided by the operating system has been extended and revised, helping administrators to identify if their setup is optimal.&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* The ISO is able to run on Secure Boot enabled machines.&lt;br /&gt;
* The text-based UI got significant improvement based on the feedback received from the first release in Proxmox Mail Gateway 8.0.&lt;br /&gt;
* The current link-state of each network interface is now displayed in the network configuration view, helping in identifying the correct NIC for the management interface ([https://bugzilla.proxmox.com/show_bug.cgi?id=4869 issue 4869]).&lt;br /&gt;
* If provided by the DHCP server, the hostname field is already filled out with the information from the lease.&lt;br /&gt;
* The correct meta-package of &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; is now installed based on the boot mode (&amp;lt;code&amp;gt;grub-pc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;grub-efi-amd64&amp;lt;/code&amp;gt;). This ensures that the bootloader on disk gets updated when there is an upgrade for the &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The text-based UI is now also available over a serial console, for headless systems with a serial port.&lt;br /&gt;
* The root dataset on ZFS installations now uses &amp;lt;code&amp;gt;acltype=posixacl&amp;lt;/code&amp;gt; in line with [https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Bookworm%20Root%20on%20ZFS.html upstream&#039;s recommendation].&lt;br /&gt;
* Kernel parameters passed on the command line during install are now also set in the target system ([https://bugzilla.proxmox.com/show_bug.cgi?id=4747 issue 4747]).&lt;br /&gt;
* Fix the warning that is shown in case the address family (IPv4, IPv6) of the host IP and DNS server do not match.&lt;br /&gt;
* The text-based UI now sets the correct disk-size for the selected disk, instead of limiting the installation to the size of the first disk in the list ([https://bugzilla.proxmox.com/show_bug.cgi?id=4856 issue 4856]).&lt;br /&gt;
* For better UX, the text-based UI now also displays a count-down before automatically rebooting.&lt;br /&gt;
* The screensaver in the graphical installer is now disabled.&lt;br /&gt;
* The graphical installer now displays the units used for disk-based options.&lt;br /&gt;
* The kernel command-line parameter &amp;lt;code&amp;gt;vga788&amp;lt;/code&amp;gt; is now set for both the graphical debug and all text-based UI installation options. This improves compatibility of the installer with certain hardware combinations.&lt;br /&gt;
* Remove the checksum-options of &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fletcher2&amp;lt;/code&amp;gt; for ZFS, for being dangerous and deprecated respectively.&lt;br /&gt;
* Improve the layout in the graphical installer to ensure correct margins and alignment of widgets.&lt;br /&gt;
* Set a timeout for country detection, preventing the installer from hanging at that step ([https://bugzilla.proxmox.com/show_bug.cgi?id=4872 issue 4872]).&lt;br /&gt;
* General improvements for running external commands in the installer backend in order to prevent lockups.&lt;br /&gt;
* Improve validation of hostname length and allowed characters set in the installer ([https://bugzilla.proxmox.com/show_bug.cgi?id=5230 issue 5230]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.1-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
* Some SAS2008 controllers need a workaround to get detected since kernel 6.2, see the [https://forum.proxmox.com/threads/no-sas2008-after-upgrade.129499/page-4#post-607858 forum thread] for details.&lt;br /&gt;
&lt;br /&gt;
* The TPM (Trusted Platform Module) hardware random number generator (RNG) is now disabled on all AMD systems equipped with a firmware-based TPM (fTPM) device. This change was implemented due to such RNGs causing stutters in many systems. Affected systems should switch the RNG source from &amp;lt;code&amp;gt;/dev/hwrng&amp;lt;/code&amp;gt; to an alternative, like &amp;lt;code&amp;gt;/dev/urandom&amp;lt;/code&amp;gt;.&lt;br /&gt;
: Reference: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=554b841d470338a3b1d6335b14ee1cd0c8f5d754 kernel commit &amp;quot;tpm: Disable RNG for all AMD fTPMs&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* Some Dell models, which appear to include all those using a BCM5720 network card, have a compatibility issue with the &amp;lt;code&amp;gt;tg3&amp;lt;/code&amp;gt; driver in the kernel based on version 6.5.11.&lt;br /&gt;
*: From our current understanding 14th Generation Dell Servers (T140, R240, R640,...) are affected, while others (e.g., R630, R620, R610,...) do not seem to be affected. We are currently investigating this issue. In the meantime, we recommend pinning the kernel to version 6.2 on affected hosts.&lt;br /&gt;
*: Some users report that disabling the &amp;lt;code&amp;gt;X2APIC&amp;lt;/code&amp;gt; option in the BIOS resolved this issue as a workaround.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 29. June 2023&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.0)&lt;br /&gt;
* Latest 6.2 Kernel as stable default&lt;br /&gt;
* ZFS 2.1.12&lt;br /&gt;
* SpamAssassin 4.0.0 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.1&lt;br /&gt;
* PostgreSQL 15.3&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New major release based on the great Debian Bookworm.&lt;br /&gt;
&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [[Upgrade from 7 to 8]]&lt;br /&gt;
*: New &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; pre-flight checking script analyzing the system for common misconfigurations and missed steps during the upgrade&lt;br /&gt;
&lt;br /&gt;
* Add new text-based UI mode for the installation ISO, written in Rust using the [https://github.com/gyscos/cursive Cursive] TUI (Text User Interface) library:&lt;br /&gt;
*: You can use the new TUI mode to work around issues with launching the GTK based graphical installer, sometimes observed on both very new and rather old hardware.&lt;br /&gt;
*: The new text mode executes the same code for the actual installation as the existing graphical mode.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
&lt;br /&gt;
* When adding a &amp;quot;Match Field&amp;quot; &#039;&#039;What&#039;&#039; object, check that the provided regular expression is a valid regular expression.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=d86c0aebe276674a8cf03e11f0f2eaf732806963 --&amp;gt;&lt;br /&gt;
* Disable SpamAssassin&#039;s naive-Bayesian-style classifier and the auto-whitelisting plugin by default.&lt;br /&gt;
*: Both features lead to worse detection rates in the Spam Filter in most setups.&lt;br /&gt;
*: Bayes needs manual training and thorough consideration, as well as continuous maintenance.&lt;br /&gt;
*: Existing setups are kept without change on upgrade.&lt;br /&gt;
*: For new setups the old behavior can be enabled through the GUI.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=f6ab3f7837946b5d11e0610b60057da079d0c0bc --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* Improved Dark color theme:&lt;br /&gt;
*: The Dark color theme, introduced in Proxmox Mail Gateway 7.3, received a lot of positive feedback from our community, which resulted in further improvements.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Ukrainian (NEW)&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=e0dd5e6989adcd4a5d796453707371ac82a1b4a3 --&amp;gt;&lt;br /&gt;
** Japanese&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=326feddf629345018f165216decaff2b5fb3bad2 --&amp;gt;&lt;br /&gt;
** Simplified Chinese &lt;br /&gt;
    &amp;lt;!--  https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=e5fb5ffc3fb71ea0e4aa9323b4dbfef3d2dbf998 --&amp;gt;&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
    &amp;lt;!--  https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=f133ff0de42bf852f5cfc32b20458f37790b82ef --&amp;gt;&lt;br /&gt;
** The size units (Bytes, KB, MiB,...) are now passed through the translation framework as well, allowing localized variants (e.g., for French).&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-widget-toolkit.git;a=commit;h=01e64778ad112504d1de155c442571f54da46a45 --&amp;gt;&lt;br /&gt;
** The language selection is now localized and displayed in the currently selected language&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=adf33b65568046ba74869d6f980bc1fb00ebf845 --&amp;gt;&lt;br /&gt;
* Disable advanced statistic filters by default, as their behavior may not be immediately clear without consulting the documentation first.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=64e64a212899721c4b0011c08557b65d8d83c9ac --&amp;gt;&lt;br /&gt;
* HTML-encode rule names before rendering as additional hardening against XSS.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-gui.git;a=commit;h=df2a647a7263efb667d801c3547883bcc72951df --&amp;gt;&lt;br /&gt;
* The tracking center can now parse the new syslog format for dates that was introduced in Debian Bookworm.&lt;br /&gt;
*: The logging format of &amp;lt;code&amp;gt;rsyslog&amp;lt;/code&amp;gt; was changed to include Timezone information (RFC3339) in the logs, making the Tracking Center more robust across DST changes and year changes.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-log-tracker.git;a=commit;h=34c921adddf2ba7d267de0365828a83a909c9698 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Access control ====&lt;br /&gt;
* Add TFA/TOTP lockout to protect against an attacker who has obtained the user password and attempts to guess the second factor:&lt;br /&gt;
*: If TFA fails too many times in a row, this user account is locked out of TFA for an hour. If TOTP fails too many times in a row, TOTP is disabled for the user account. Using a recovery key will unlock a user account. &amp;lt;!-- NOT YET BUMPED --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Add new text-based UI mode for the installation ISO, written in Rust using the [https://github.com/gyscos/cursive Cursive] TUI (Text User Interface) library:&lt;br /&gt;
*: You can use the new TUI mode to work around issues with launching the GTK based graphical installer, sometimes observed on both very new and rather old hardware.&lt;br /&gt;
*: The new text mode executes the same code for the actual installation as the existing graphical mode.&lt;br /&gt;
* The version of BusyBox shipped with the ISO was updated to version 1.36.1.&lt;br /&gt;
* Detection of unreasonable system time.&lt;br /&gt;
: If the system time is older than the time the installer was created, the system notifies the user with a warning.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pve-installer.git;a=commit;h=d0817324af4f25119ae5284720088198dd7985e3 --&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ethtool&amp;lt;/code&amp;gt; is now shipped with the ISO and installed on all systems.&lt;br /&gt;
* &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; is provided by its own package instead of &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; in Debian Bookworm and is installed with the new ISO.&lt;br /&gt;
* The installation ISO now ships the dependencies for extracting text from attachments using SpamAssassin 4, eliminating the need to install the packages manually.&lt;br /&gt;
&lt;br /&gt;
==== Notable bugfixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Add a &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; CLI tool to assist in upgrading from Proxmox Mail Gateway 7.3 to 8.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=16fe9a1e3d25021b4c4d33e1e9ba03e06c4d6ab8 --&amp;gt;&lt;br /&gt;
* Fix an issue where an invalid regular expression in a &amp;quot;Match Field&amp;quot; &#039;&#039;What&#039;&#039; object would cause &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; to exit and restart, possibly leading to wrongly denied mails. Instead, &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; now logs a warning if it encounters an invalid regular expression.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=d86c0aebe276674a8cf03e11f0f2eaf732806963 --&amp;gt;&lt;br /&gt;
* During package installation or upgrade, ignore certain transient or obvious errors to avoid leaving the package in a broken state.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=e53e413463d8a20d67037b7dbdabebc4ded294b5 --&amp;gt;&lt;br /&gt;
* Fix an issue where the Proxmox Mail Gateway system report would wrongly indicate a DNS misconfiguration.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=c7fd30ebab18e30aa55301640d5f4dec422b3a94 --&amp;gt;&lt;br /&gt;
* When authenticating via PAM, pass the &amp;lt;code&amp;gt;PAM_RHOST&amp;lt;/code&amp;gt; item. With this, it is possible to manually configure PAM such that certain users (for example root@pam) can only log in from certain hosts.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=1e0ca2d2d8ec9d32df73f7637fcd857bde20f49b --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
* The advanced statistics filter is now disabled by default.&lt;br /&gt;
*: To avoid changing the behavior of a Proxmox Mail Gateway 7.3 instance on upgrade, the upgrade process will set the &amp;lt;code&amp;gt;advfilter&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; if no explicit value is set.&lt;br /&gt;
&lt;br /&gt;
* SpamAssassin&#039;s naive-Bayesian-style classifier and the auto-whitelisting plugin are now disabled by default.&lt;br /&gt;
*:To avoid changing the behavior of a Proxmox Mail Gateway 7.3 instance on upgrade, the upgrade process will set each of the &amp;lt;code&amp;gt;use_awl&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;use_bayes&amp;lt;/code&amp;gt; options to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; if no explicit value is set.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.3 ==&lt;br /&gt;
&#039;&#039;&#039;Released 28. March 2023&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bullseye (11.6)&lt;br /&gt;
* Latest 5.15 Kernel as stable default&lt;br /&gt;
* Newer 6.2 kernel as opt-in&lt;br /&gt;
* ZFS 2.1.9&lt;br /&gt;
* SpamAssassin 4.0.0 (new major version)&lt;br /&gt;
* PostgreSQL 13.10&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Proxmox Mail Gateway now provides a dark theme for the administrative and quarantine web interfaces.&lt;br /&gt;
* SpamAssassin 4.0.0 was integrated, along with many of its new capabilities, like (optionally) scanning document contents (docx, pdf, images,...), or resolving URLs from url-shorteners.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* New major release SpamAssassin 4.0.0, with many new features: &lt;br /&gt;
** Detection of spam inside of attachments. This is implemented for the file types &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.odt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.docx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;, as well as images (through OCR).&lt;br /&gt;
*:: Attachment scanning can be enabled using the Web UI (&amp;lt;code&amp;gt;Spam Detector&amp;lt;/code&amp;gt; -&amp;gt; &amp;lt;code&amp;gt;Options&amp;lt;/code&amp;gt;), which sets the &amp;lt;code&amp;gt;extract_text&amp;lt;/code&amp;gt; option in the &amp;lt;code&amp;gt;spam&amp;lt;/code&amp;gt; section of &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*:: The dependencies required for attachment scanning are marked as optional, but recommended dependency for the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package.&lt;br /&gt;
*:: This means that on systems that did not change the apt preference the new dependencies should be pulled in automatically on upgrade, otherwise you might need to manually install them.&lt;br /&gt;
*: Note that attachment scanning, and OCR in particular, increases CPU time spent per mail. Depending on email volume and available CPU power, you may see a significant increase in load.&lt;br /&gt;
** Follow and analyze URL-shortener links.&lt;br /&gt;
** Improved support for using information from DMARC-policies.&lt;br /&gt;
** Improved handling of internationalized (IDN) domain names.&lt;br /&gt;
* Adaptation of the SpamAssassin integration for version 4.0.0:&lt;br /&gt;
: The SpamAssassin configuration files shipped with the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package were adapted to the new features.&lt;br /&gt;
: &amp;lt;code&amp;gt;extract_text&amp;lt;/code&amp;gt; was added as new option for the spam detector to disable content scanning, while most other new options are triggered with the &amp;lt;code&amp;gt;use_rbl&amp;lt;/code&amp;gt; option.&lt;br /&gt;
: On deployments with modified templates, the upgrade process will ask how changes should be merged. This provides an opportunity to re-evaluate which modifications are still needed.&lt;br /&gt;
* Support enforcing TLS-only connections for mails from certain domains:&lt;br /&gt;
: It is now possible to enforce TLS encryption for inbound mail, complementing the already-present TLS policy functionality for outbound mail.&lt;br /&gt;
* Improved handling of SMTPUTF8:&lt;br /&gt;
: Based on the user feedback on UTF-8 support for the rule system introduced in Proxmox Mail Gateway 7.2, it is now possible to disable SMTPUTF8 through the API and GUI.&lt;br /&gt;
: The detection for SMTPUTF8 was aligned with the implementation in &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The What objects &amp;quot;Match Archive Filename&amp;quot; now also use the optional filename from the GZIP header for matching.&lt;br /&gt;
* Support trusted network entries with host bits set in the CIDR:&lt;br /&gt;
: Quite a few deployments did use a CIDR with host-bits set, for example 192.0.2.5/24 instead of 192.0.2.0/24. This is now translated internally and handled correctly.&lt;br /&gt;
* Ordering of multiple rules with the same priority is now stable, despite not being a recommended setup.&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
&lt;br /&gt;
* Add a fully-integrated &amp;quot;Proxmox Dark&amp;quot; color theme variant of the long-time Crisp light theme.&lt;br /&gt;
: By default, the &amp;lt;code&amp;gt;prefers-color-scheme&amp;lt;/code&amp;gt; media query from the Browser/OS will be used to decide the default color scheme.&lt;br /&gt;
: Users can override the theme via a newly added &amp;lt;code&amp;gt;Color Theme&amp;lt;/code&amp;gt; menu in the user menu.&lt;br /&gt;
* Add &amp;quot;Proxmox Dark&amp;quot; color theme to the Proxmox Mail Gateway reference documentation.&lt;br /&gt;
: The &amp;lt;code&amp;gt;prefers-color-scheme&amp;lt;/code&amp;gt; media query from the Browser/OS will be used to decide if the light or dark color scheme should be used.&lt;br /&gt;
: The new dark theme is also available in the [https://pmg.proxmox.com/pmg-docs/api-viewer/index.html#/nodes/{node}/version Proxmox Mail Gateway API Viewer].&lt;br /&gt;
* Task logs can now be downloaded directly as text files for further inspection.&lt;br /&gt;
* The language chooser now displays, for each available language, both its native name as well as its name translated to the currently active language.&lt;br /&gt;
* HTML-encode API results before rendering as additional hardening against XSS.&lt;br /&gt;
* Automatically redirect HTTP requests to HTTPS for convenience.&lt;br /&gt;
: This avoids &amp;quot;Connection reset&amp;quot; browser errors that can be confusing, especially after setting up a Proxmox Mail Gateway host the first time.&lt;br /&gt;
* Invalid entries in advanced fields now cause the advanced panel to unfold, providing direct feedback.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Arabic&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Russian&lt;br /&gt;
** Slovenian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
&lt;br /&gt;
==== Notable General Improvements and Bug Fixes ====&lt;br /&gt;
* The documentation has now a chapter describing the statistics part of the GUI and API.&lt;br /&gt;
* Mail delivery from quarantine uses new code for sending locally generated mail, with the following improvements:&lt;br /&gt;
** support for IPv6-only deployments and delivery status notifications.&lt;br /&gt;
** Correct decoding of addresses containing UTF-8.&lt;br /&gt;
* The cleanup before restoring the configuration from a backup was improved, preventing issues when restoring without rebooting the system.&lt;br /&gt;
* Logging of errors when sending locally generated mail was improved.&lt;br /&gt;
* Errors in files related to TLS-policy are now also reported in the syslog.&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;pmgdb dump&amp;lt;/code&amp;gt; is now able to handle UTF-8 characters in rule names, object names, and comments.&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* the version of BusyBox shipped with the ISO was updated to version 1.36.0.&lt;br /&gt;
* The EFI System Partition (ESP) defaults to 1 GiB of size if the root disk partition (&amp;lt;code&amp;gt;hdsize&amp;lt;/code&amp;gt;) is bigger than 100 GB.&lt;br /&gt;
* UTC can now be selected as timezone during installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.3-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
* The ISO does not ship the optional dependencies for extracting text from attachments - If you installed from the ISO and want to use the feature, you can simply install them manually&lt;br /&gt;
 apt install antiword docx2txt odt2txt poppler-utils tesseract-ocr unrtf&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.2 ==&lt;br /&gt;
&#039;&#039;&#039;Released 30. November 2022&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bullseye (11.5)&lt;br /&gt;
* Latest 5.15 Kernel as stable default (5.15.74)&lt;br /&gt;
* Newer 5.19 kernel as opt-in&lt;br /&gt;
* ZFS 2.1.6&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* PostgreSQL 13.8&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the Rule system:&lt;br /&gt;
** Improved handling of international emails&lt;br /&gt;
*** Support for UTF-8 characters in the rule system (e.g. matching non-ASCII subjects).&lt;br /&gt;
*** Better handling of [https://www.rfc-editor.org/rfc/rfc6531 SMTPUTF8 emails] (the smtp-dialogue already contains non-ASCII data, the headers contain UTF-8 data without MIME encoding).&lt;br /&gt;
** Proper encoding for template-variable information in the Notifications and Modify Field actions.&lt;br /&gt;
** MatchField now matches all occurrences of a header - not only the first one - especially relevant for &amp;lt;code&amp;gt;Received&amp;lt;/code&amp;gt; headers.&lt;br /&gt;
** Deprecated the &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt; Actions.&lt;br /&gt;
*: While they were present in the code of Proxmox Mail Gateway, they were never exposed in the GUI or API.&lt;br /&gt;
*: All three have now been deprecated and will be removed with version 8.0.&lt;br /&gt;
&lt;br /&gt;
* Improved Quarantine UX:&lt;br /&gt;
** Quarantine interface for Administrators: many of the recent features for end-users in the Spam Quarantine have been ported to the administrator view:&lt;br /&gt;
*** Allow selection of multiple mails.&lt;br /&gt;
*** Context menu in the mail-listing.&lt;br /&gt;
*** Display the Receiver information in the Attachment and Virus quarantines and the Mail Info widget.&lt;br /&gt;
** Augmented the information visualization in the Spam information grid.&lt;br /&gt;
*** The weight (number of points) and the type of impact (positive or negative) of SpamAssassin rules is now shown with colors and font-weights to make them easier to grasp. &lt;br /&gt;
*** The rule IDs and scores are using a monospaced font for better comparison of values.&lt;br /&gt;
** Colorized &amp;lt;code&amp;gt;Deliver&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; actions improves intuitive handling of the common actions.&lt;br /&gt;
** Display of attachments in the Spam and Virus quarantines (for a more complete overview of the mail).&lt;br /&gt;
** Attachment and Virus quarantines can now optionally be filtered by Receiver - especially helpful in larger deployments.&lt;br /&gt;
** Display of descriptions for locally defined SpamAssassin rules.&lt;br /&gt;
** Fix displaying the quarantine interface on narrow screens: Part of the action buttons were cut off and not reachable through scrolling.&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI):&lt;br /&gt;
** The Postfix queue interface now displays the mail&#039;s headers in a decoded way - so that you see it as in your mail user agent.&lt;br /&gt;
** The Statistic time selector now does not show non-existent day/month combinations (e.g. the 31. Day of February).&lt;br /&gt;
** Better spacing of the Field labels in the rule object edit windows.&lt;br /&gt;
** Improved translations, among others:&lt;br /&gt;
*** Dutch&lt;br /&gt;
*** German&lt;br /&gt;
*** Italian&lt;br /&gt;
*** Polish&lt;br /&gt;
*** Traditional Chinese&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* Support Proxmox Offline Mirroring &amp;amp; Subscription Handling&lt;br /&gt;
** Proxmox Offline Mirror: The tool supports subscriptions and repository mirrors for air-gapped systems. The newly added [https://pom.proxmox.com proxmox-offline-mirror] utility can now be used to keep Proxmox Mail Gateway hosts, without access to the public internet up-to-date and running with a valid subscription.&lt;br /&gt;
&lt;br /&gt;
* Notable General Improvements and Bugfixes:&lt;br /&gt;
** Add IP networks uniquely to template variables (&amp;lt;code&amp;gt;postfix.mynetworks&amp;lt;/code&amp;gt;)&lt;br /&gt;
*: If you had multiple entries in your transport directory, all pointing to the same host, they were added multiple times to the variable used in the configuration system.&lt;br /&gt;
** Support for Proxmox Backup Server Namespaces.&lt;br /&gt;
** Spam report emails now correctly display the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header, even if it contains a comma (e.g. &amp;lt;code&amp;gt;&amp;quot;Lastname, Firstname&amp;quot; &amp;lt;firstname.lastname@domain.example&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
** The left-over config file &amp;lt;code&amp;gt;/etc/apt/apt.conf.d/75pmgconf&amp;lt;/code&amp;gt; was removed, enabling the automatic removal of obsolete kernel packages, which can take up significant amounts of space.&lt;br /&gt;
** SpamAssassin updates now handle updates to multiple channels correctly on the first run.&lt;br /&gt;
** Improved parsing of email attributes from LDAP profiles.&lt;br /&gt;
** Changing the directory to &#039;/&#039; before running &amp;lt;code&amp;gt;psql&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;postgres&amp;lt;/code&amp;gt;user - preventing the printing of harmless but confusing warnings with various Proxmox Mail Gateway CLI utilities.&lt;br /&gt;
** Support disabling TLS 1.2 and configuring TLS 1.3 ciphers for &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; - following the change for &amp;lt;code&amp;gt;pveproxy&amp;lt;/code&amp;gt; in Proxmox VE.&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
== Proxmox Mail Gateway 7.1 ==&lt;br /&gt;
&#039;&#039;&#039;Released 30. November 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Bullseye (11.1)&lt;br /&gt;
* Kernel 5.13&lt;br /&gt;
* ZFS 2.1&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* PostgreSQL 13.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI)&lt;br /&gt;
** Improved configuration editing of LDAP backends: Changes can now be applied without having to specify a password.&lt;br /&gt;
** The APT repository configuration, rather than being restricted to &#039;root&#039;, is now visible and editable by all users with &#039;Administrator&#039; privileges.&lt;br /&gt;
** Improved translations, among others:&lt;br /&gt;
*** Arabic&lt;br /&gt;
*** Basque&lt;br /&gt;
*** Brazilian Portuguese&lt;br /&gt;
*** French&lt;br /&gt;
*** German&lt;br /&gt;
*** Simplified Chinese&lt;br /&gt;
*** Traditional Chinese&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* Two-Factor Authentication&lt;br /&gt;
** Two-factor authentication (TFA) for the web interface. Shares the TFA implementation from Proxmox Backup Server, written in rust.&lt;br /&gt;
** Support for multiple types of second factors:&lt;br /&gt;
*** WebAuthn, which supports a wide range of security devices, like hardware keys or trusted platform modules.&lt;br /&gt;
*** Time-based One-Time Password (TOTP), a short code derived from a shared secret and the current time, it changes every 30 seconds. &lt;br /&gt;
*** Single use Recovery Keys.&lt;br /&gt;
&lt;br /&gt;
* Backend and API&lt;br /&gt;
** Improved support for setups using DHCP for their network configuration:&lt;br /&gt;
*: While email still requires working DNS records, you can now manage and configure the IP of your Proxmox Mail Gateway in your DHCP configuration.&lt;br /&gt;
** When adding a new entry to a Who object, a duplicate check is performed before saving.&lt;br /&gt;
** Better handling of trailing dot in domain-names:&lt;br /&gt;
*: Proxmox Mail Gateway uses the first search domain from &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; as domain name - it can now handle entries with a trailing dot.&lt;br /&gt;
** Delivery status notification (DSN, RFC 3461) support for outbound email with enabled before-queue filtering.&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 15. July 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Bullseye (11)&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* Kernel 5.11&lt;br /&gt;
* PostgreSQL 13&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI)&lt;br /&gt;
** Make dashboard status panel more detailed, showing, among other things, uptime, kernel version, CPU info and a high level repository status overview.&lt;br /&gt;
** New APT repository management panel in the &amp;lt;code&amp;gt;Administration&amp;lt;/code&amp;gt; tab shows an in-depth status and a list of all configured repositories.&lt;br /&gt;
**: Basic repository management, for example, activating or deactivating a repository, is also supported.&lt;br /&gt;
** Updated ExtJS JavaScript framework to latest GPL release 7.0&lt;br /&gt;
** Added advanced task-log filtering&lt;br /&gt;
** Improved translations, including:&lt;br /&gt;
*** Arabic&lt;br /&gt;
*** French&lt;br /&gt;
*** German&lt;br /&gt;
*** Japanese&lt;br /&gt;
*** Polish&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* ACME/Let&#039;s Encrypt&lt;br /&gt;
** Support the use of wildcard domains with the DNS plugins&lt;br /&gt;
** API: nodeconfig: validate ACME config before writing&lt;br /&gt;
&lt;br /&gt;
* API&lt;br /&gt;
** pmgproxy: allow setting LISTEN_IP parameter&lt;br /&gt;
** The &amp;quot;Authentication mode&amp;quot; setting of &amp;lt;code&amp;gt;LDAP&amp;lt;/code&amp;gt; for the quarantine interface no longer contains the ticket-link in the report-mails - thus, quarantine users need to provide their LDAP credentials to access the quarantine.&lt;br /&gt;
&lt;br /&gt;
* Installer:&lt;br /&gt;
** Rework the installer environment to use &amp;lt;code&amp;gt;switch_root&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;, when transitioning from initrd to the actual installer.&lt;br /&gt;
**: This improves module and firmware loading, and slightly reduces memory usage during installation.&lt;br /&gt;
** Automatically detect HiDPI screens, and increase console font and GUI scaling accordingly. This improves UX for workstations with Proxmox VE (for example, for passthrough).&lt;br /&gt;
** Improve ISO detection:&lt;br /&gt;
*** Support ISOs backed by devices using USB Attached SCSI (UAS), which modern USB3 flash drives often do.&lt;br /&gt;
*** Linearly increase the delay of subsequent scans for a device with an ISO image, bringing the total check time from 20s to 45s. This allows for the detection of very slow devices, while continuing faster in general.&lt;br /&gt;
** Use &amp;lt;code&amp;gt;zstd&amp;lt;/code&amp;gt; compression for the initrd image and the squashfs images.&lt;br /&gt;
** Update to busybox 1.33.1 as the core-utils provider.&lt;br /&gt;
&lt;br /&gt;
* libarchive-perl&lt;br /&gt;
** The perl-bindings to &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; have been updated to match &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; version 3.4.3 (shipped in Debian Bullseye) - the library interface was kept backwards-compatible&lt;br /&gt;
&lt;br /&gt;
* libxdgmime-perl&lt;br /&gt;
** The perl-bindings to [https://gitlab.freedesktop.org/xdg/xdgmime xdgmime] have been updated to match current upstream - the library interface was kept backwards-compatible&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.0-breaking-changes&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Breaking Changes&#039;&#039;&#039;&lt;br /&gt;
* New default bind address for pmgproxy, unifying the default behavior with Proxmox VE and Proxmox Backup Server&lt;br /&gt;
** In making the LISTEN_IP configurable, the daemon now binds to both wildcard addresses (IPv4 &amp;lt;code&amp;gt;0.0.0.0:8006&amp;lt;/code&amp;gt; and IPv6 &amp;lt;code&amp;gt;[::]:8006&amp;lt;/code&amp;gt;) by default.&lt;br /&gt;
*: Should you wish to prevent it from listening on IPv6, simply configure the IPv4 wildcard as LISTEN_IP in &amp;lt;code&amp;gt;/etc/default/pmgproxy&amp;lt;/code&amp;gt;:&lt;br /&gt;
*: &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Additionally, the logged IP address format changed for IPv4 in pmgproxy&#039;s access log (&amp;lt;code&amp;gt;/var/log/pmgproxy/pmgproxy.log&amp;lt;/code&amp;gt;). They are now logged as IPv4-mapped IPv6 addresses. Instead of:&lt;br /&gt;
*: &amp;lt;code&amp;gt;192.0.2.1- root@pam [01/06/2021:01:19:03 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*: the line now looks like:&lt;br /&gt;
*: &amp;lt;code&amp;gt;::ffff:192.0.2.1- root@pam [01/06/2021:01:19:03 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*:If you want to restore the old logging format, also set &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ClamAV has [https://blog.clamav.net/2021/04/are-you-still-attempting-to-download.html deprecated the SafeBrowsing feature]:&lt;br /&gt;
** These options have been removed from the shipped &amp;lt;code&amp;gt;freshclam.conf.in&amp;lt;/code&amp;gt; template.&lt;br /&gt;
** The &amp;lt;code&amp;gt;safebrowsing&amp;lt;/code&amp;gt; config key in &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; is currently ignored and will be dropped at some point in the future.&lt;br /&gt;
&lt;br /&gt;
* Changes to the database layout:&lt;br /&gt;
** The &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;cgreylist&amp;lt;/code&amp;gt; table, which has not been used since Proxmox Mailgateway 6.2, has been dropped from the schema and will be dropped from existing databases during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* API deprecations, moves and removals&lt;br /&gt;
** The &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; parameter of the &amp;lt;code&amp;gt;/nodes/{node}/termproxy&amp;lt;/code&amp;gt; API method has been replaced by providing &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
** The &amp;lt;code&amp;gt;domain&amp;lt;/code&amp;gt; parameter of the &amp;lt;code&amp;gt;/config/tlspolicy&amp;lt;/code&amp;gt; API method has been replaced by the &amp;lt;code&amp;gt;destination&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
** The &amp;lt;code&amp;gt;/quarantine/whitelist/{address}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/quarantine/blacklist/{address}&amp;lt;/code&amp;gt; API methods, that take the address as part of the path, have been deprecated in favor of explicitly providing the parameter in the request to &amp;lt;code&amp;gt;/quarantine/whitelist&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/quarantine/blacklist&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
** The API methods for detailed statistics per e-mail address, which take the address as part of the path (&amp;lt;code&amp;gt;/statistics/contact/{contact}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/statistics/sender/{sender}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/statistics/receiver/{receiver}&amp;lt;/code&amp;gt; have been deprecated in favor of &amp;lt;code&amp;gt;/statistics/detail&amp;lt;/code&amp;gt;, which takes the address as an explicit parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Known Issues&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Network&#039;&#039;&#039;: Due to the updated systemd version, and for most upgrades, the newer kernel version (5.4 to 5.11), some network interfaces might change upon reboot:&lt;br /&gt;
** Some may change their name. For example, due to newly supported functions, a change from &amp;lt;code&amp;gt;enp33s0f0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;enp33s0f0np0&amp;lt;/code&amp;gt; could occur.&lt;br /&gt;
**: We observed such changes with high-speed Mellanox models.&lt;br /&gt;
** [https://sources.debian.org/src/bridge-utils/1.7-1/debian/NEWS/#L3-L23 Bridge MAC address selection has changed in Debian Bullseye] - it is now generated based on the interface name and the &amp;lt;code&amp;gt;machine-id (5)&amp;lt;/code&amp;gt; of the system.&lt;br /&gt;
**: Note that by default, Proxmox Mail Gateway does not use a Linux Bridge for networking, so most setups are unaffected.&lt;br /&gt;
* &#039;&#039;&#039;Machine-id&#039;&#039;&#039;: Systems installed using the Proxmox Mail Gateway 5.0 to 5.4 ISO may have a non-unique machine-id. These systems will have their machine-id re-generated automatically on upgrade, to avoid a potentially duplicated bridge MAC and other issues.&lt;br /&gt;
: If you do the upgrade remotely, make sure you have a backup method of connecting to the host (for example, IPMI/iKVM, tiny-pilot, another network accessible by a cluster node, or physical access), in case the network used for SSH access becomes unreachable, due to the network failing to come up after a reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.4==&lt;br /&gt;
&#039;&#039;&#039;Released 30. March 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Buster (10.9)&lt;br /&gt;
* SpamAssassin 3.4.5 (with update ruleset)&lt;br /&gt;
* Kernel 5.4.106&lt;br /&gt;
* ACME integration&lt;br /&gt;
** Proxmox Mail Gateway now offers full integration of the ACME protocol via the GUI, enabling administrators to create valid and trusted certificates for their domains with the Let&#039;s Encrypt certificate authority, in the same way as with Proxmox VE.&lt;br /&gt;
** Full support for the &amp;lt;code&amp;gt;http-01&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;dns-01&amp;lt;/code&amp;gt; challenges, with all plugins from [https://github.com/acmesh-official/acme.sh acme.sh].&lt;br /&gt;
** Easily configurable from the GUI.&lt;br /&gt;
* General Certificate Management via the GUI&lt;br /&gt;
** It is now possible to upload custom certificates from the web interface, or set up a cluster-wide ACME account to automatically get and renew certificates from an ACME provider.&lt;br /&gt;
* Support for external SpamAssassin update channels (regular automated updates).&lt;br /&gt;
** By providing a short configuration file containing a SpamAssassin rule channel&#039;s URL and GPG key, Proxmox Mail Gateway will now fetch verified updates from that channel, along with the updates from updates.spamassassin.org.&lt;br /&gt;
** The KAM ruleset channel is now available, and a suitable configuration file is shipped with &amp;lt;code&amp;gt;proxmox-spamassassin&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improved Quarantine Management&lt;br /&gt;
** The admin view of the Spam Quarantine can now display quarantined mail of all users at once.&lt;br /&gt;
** All Quarantine views (admin and user) allow you to filter for subject or sender.&lt;br /&gt;
** The spam quarantine can now process huge amounts of mails at once (&amp;gt; 3200).&lt;br /&gt;
* TLS-logging improvements to the Tracking Center&lt;br /&gt;
** The Tracking Center now shows when an outbound connection is established over TLS.&lt;br /&gt;
* Enhancements to the Integration of Proxmox Backup Server&lt;br /&gt;
** It is now possible to get notified about the result of a scheduled backup to a configured Proxmox Backup Server Remote.&lt;br /&gt;
** Inclusion of the (potentially large) statistics database is now configurable per Remote.&lt;br /&gt;
* Notable Bugfixes:&lt;br /&gt;
** Support for &#039;/&#039; in the local part of an e-mail address (quarantine and statistics view).&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.3==&lt;br /&gt;
&#039;&#039;&#039;Released 19. November 2020&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.6)&lt;br /&gt;
* Updated SpamAssassin rules&lt;br /&gt;
* Kernel 5.4.73&lt;br /&gt;
* Proxmox Backup Server Integration&amp;lt;br/&amp;gt;Proxmox Mail Gateway is fully supported by the new Proxmox Backup Server 1.0, released on November 11, 2020:&lt;br /&gt;
** Backing up to multiple remote backup servers: You can define multiple remote instances of Proxmox Backup Server to store backups on. In case of a large-scale disaster, they can be quickly restored.&lt;br /&gt;
** Scheduled Backups: You can schedule regular backups via the GUI, which will then be automatically triggered by a systemd-timer unit. This removes the need for manual backup creation and individual, scripted solutions.&lt;br /&gt;
* Quarantine Link via login-page&amp;lt;br /&amp;gt;Users can request mails containing a link to their quarantineview, if enabled by the Admin. This enables users to edit their individual blocklists, even if no mails are in their quarantine. Until now this was only possible for sites using LDAP.&lt;br /&gt;
* Improvements to the Tracking Center&amp;lt;br /&amp;gt;To further improve user experience in the tracking center, pmg-log-tracker handles certain cases better:&lt;br /&gt;
** The case sensitivity has been removed from the search box.&lt;br /&gt;
** In case the pmg-smtp-filter fails to process emails due to misconfiguration, they are now marked as rejected.&lt;br /&gt;
* Notable Bugfixes:&lt;br /&gt;
** DKIM signing now uses the longest matching domain for the &#039;d=&#039; tag.&lt;br /&gt;
** Mails held in the Attachment Quarantine are assigned a new Message-ID - fixing interoperability with certain downstream servers (for example, MS Exchange), which silently discard messages with duplicate Message-IDs.&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.2==&lt;br /&gt;
&#039;&#039;&#039;Released 28. April 2020&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.3)&lt;br /&gt;
** Proxmox Mail Gateway is based on the latest stable release of Debian 10.3 (Buster).&lt;br /&gt;
* SpamAssassin 3.4.4&lt;br /&gt;
** Proxmox ships the latest upstream release of Apache SpamAssassin with a updated and enhance ruleset (KAM rules added)&lt;br /&gt;
* Kernel 5.4&lt;br /&gt;
** Proxmox Mail Gateway shares the kernel with Proxmox VE and is based on the 5.4 series from Ubuntu 20.04&lt;br /&gt;
* pmg-log-tracker in Rust&lt;br /&gt;
** &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; has been extended and reimplemented in the Rust programming language. &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; is the binary at the core of the Message Tracking Center, providing live searchable and grouped logs in the GUI.&lt;br /&gt;
** The new &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; has support for parsing and grouping logs in before-queue filtering mode.&lt;br /&gt;
** The refresh of the code base of &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; provides an optimized performance and more stability.&lt;br /&gt;
&lt;br /&gt;
* Support for before-queue filtering in the GUI&lt;br /&gt;
** With the added support for displaying before-queue filtering logs in the GUI and fixing some minor glitches in that area, the before-queue filtering can now be comfortably enabled in the GUI.&lt;br /&gt;
&lt;br /&gt;
* Improved IPv6 support&lt;br /&gt;
** The Mail Proxy&#039;s SPF checker also verifies SPF records for those remote mail servers connecting via IPv6. &lt;br /&gt;
** Greylisting support for IPv6 addresses (with variable netmask, defaulting to &#039;/64&#039;) - needs to be explicitly enabled.&lt;br /&gt;
** Who-objects containing IPv6 literal address work now.&lt;br /&gt;
&lt;br /&gt;
* Customizable netmask length for greylist matching&lt;br /&gt;
** Instead of fixing a greylist network to a &#039;/24&#039; the administrator can now configure which hosts should be considered as belonging to the same network by setting a larger (or smaller) prefix.&lt;br /&gt;
** This can help with receiving mail from some cloud-providers, who send out one mail from different ip addresses within a large network, which usually leads to a rather long delay and sometimes even to a legitimate mail being rejected.&lt;br /&gt;
** Due to the changed database layout partial upgrades of clusters will prevent nodes running the older version from syncing the greylist database until they are upgraded.&lt;br /&gt;
&lt;br /&gt;
* Better UX for the User Spam Quarantine interface&lt;br /&gt;
** If selected in the Quarantine view, the From header and the Subject are now displayed on top of the mail body.&lt;br /&gt;
** It is now possible to delete mail addresses containing certain special characters (for example &#039;/&#039;) from a users&#039; black- or whitelist.&lt;br /&gt;
** Users can set their preferred language directly in the quarantine interface instead of having to log out to change the setting.&lt;br /&gt;
** Fixed a bug in the selection of multiple e-mails.&lt;br /&gt;
&lt;br /&gt;
* Handling of changes to overridden templates with &amp;lt;code&amp;gt;ucf&amp;lt;/code&amp;gt;&lt;br /&gt;
** Starting with this release all service configuration templates, copied and modified in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; get registered with &amp;lt;code&amp;gt;ucf&amp;lt;/code&amp;gt;. Should a overridden template change with a new package version the administrator is asked and can accept or reject the changes.&lt;br /&gt;
** All users who have templates in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; will be asked about the current changes for the initial registration.&lt;br /&gt;
&lt;br /&gt;
* New What Object: &#039;Match Archive Filename&#039;&lt;br /&gt;
** In addition to match files in archives (zip, tar.gz, rar,...) based on the file&#039;s content-type, it is also possible to look for particular filename patterns inside of archives.&lt;br /&gt;
** This completes the feature matrix of matching files based on content-type or filename, as plain attachments, or inside archives.&lt;br /&gt;
&lt;br /&gt;
* Support for downstream LMTP servers&lt;br /&gt;
** In certain setups there is no advantage in having a dedicated SMTP server for receiving e-mails from Proxmox Mail Gateway, since all used functionality is provided by a MTA, which speaks IMAP and LMTP (e.g., Dovecot).&lt;br /&gt;
** It is now possible to configure Proxmox Mail Gateway to send e-mails directly to a LMTP relay, both as default transport and only as transport for certain domains.&lt;br /&gt;
&lt;br /&gt;
* Improvements to recently added features&lt;br /&gt;
** Before-queue filtering and DKIM signing, both implemented with Proxmox Mail Gateway 6.1, have a better user experience and are considered stable now.&lt;br /&gt;
** Some remaining glitches and bugs fixed for both. &lt;br /&gt;
** DKIM selector handling can handle the existence of multiple selectors and in the GUI, users can comfortably switch between the active selector.&lt;br /&gt;
&lt;br /&gt;
* TLS policy selection for internal downstream servers&lt;br /&gt;
** It is now possible to specify a desired level of encryption and authentication for the opportunistic TLS-encryption (STARTTLS) for downstream servers entered in your transports.&lt;br /&gt;
** This can help to ensure that your internal communication is not sent in the clear over the network. It can also be used to work around broken TLS implementations in legacy downstream servers.&lt;br /&gt;
&lt;br /&gt;
* Improvements to general usability&lt;br /&gt;
** The unbounded growth of the Quarantine disk usage for non-master nodes in clustered setups is fixed.&lt;br /&gt;
** It&#039;s now possible to switch to incremental updates of the AV signatures for ClamAV via GUI, alleviating the problem that both methods fail in certain cases for some users.&lt;br /&gt;
==Proxmox Mail Gateway 6.1==&lt;br /&gt;
&#039;&#039;&#039;Released 27. November 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.2)&lt;br /&gt;
** Proxmox Mail Gateway is based on the latest stable release of Debian 10.2 (Buster).&lt;br /&gt;
* Updated SpamAssassin rules&lt;br /&gt;
* Kernel 5.3&lt;br /&gt;
** Proxmox Mail Gateway shares the kernel with Proxmox VE and is based on the 5.3 series from Ubuntu 19.10&lt;br /&gt;
&lt;br /&gt;
* DKIM-Signing&lt;br /&gt;
** Support for adding DomainKeys Identified Mail (DKIM) Signatures (RFC 6376) to outbound emails&lt;br /&gt;
** Configuration via GUI&lt;br /&gt;
** Signing happens after processing the email with the rule system, thus ensuring that it leaves the Proxmox Mail Gateway with a valid signature&lt;br /&gt;
** Flexible control of which domains should get signed with sensible defaults (the relay domains)&lt;br /&gt;
** Inside a cluster, one common selector minimizes the overhead for adding required DNS entries&lt;br /&gt;
&lt;br /&gt;
* Attachment Quarantine&lt;br /&gt;
** The &amp;lt;code&amp;gt;Remove Attachments&amp;lt;/code&amp;gt; action can now optionally deliver the complete email to the Attachment Quarantine&lt;br /&gt;
** The Attachment Quarantine offers a comfortable GUI for selectively downloading parts of the email for further analysis, or delivering the mail to the original recipient&lt;br /&gt;
** Accessible only by the administrators, it offers safety from accidentally open malicious executables, doc-files, and other attachments infected with malware&lt;br /&gt;
&lt;br /&gt;
* Adjustable SpamAssassin Rule Scores via GUI&lt;br /&gt;
** Adapt the scores of individual SpamAssassin rules directly in the GUI&lt;br /&gt;
** Enables you to adapt the scoring to your environment, thus achieving better ham/spam detection rates&lt;br /&gt;
** Mostly for adding a bit of weight to rules, which are good indicators for Spam in your environment&lt;br /&gt;
** Selectively disable Rules, which cause false positives for your environment&lt;br /&gt;
&lt;br /&gt;
* Improved handling of Configuration and Rule changes in clustered environments&lt;br /&gt;
** The Filtering Engine gets notified about a range of configuration changes which require a reload&lt;br /&gt;
** The notification is propagated during the cluster sync&lt;br /&gt;
** This reduces the situations where you had to manually restart &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Experimental Support for Before Queue filtering&lt;br /&gt;
** Proxmox Mail Gateway can now optionally reject an email during the SMTP dialogue, instead of accepting it and silently discarding unwanted email&lt;br /&gt;
** This is a requirement in certain situations&lt;br /&gt;
** By answering with a permanent failure code (&amp;lt;code&amp;gt;554&amp;lt;/code&amp;gt;), there is no need to generate a Non-Delivery Report, which could cause your system to get blacklisted, due to Backscatter&lt;br /&gt;
** Currently incompatible with the Tracking Center, thus needs to be explicitly enabled in &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Improvements to general usability&lt;br /&gt;
** Clarification of ambiguously used terms in the GUI and documentation&lt;br /&gt;
** More detailed documentation of the Service Configuration Templates&lt;br /&gt;
** Downloading of emails larger than 2 MB as &amp;lt;nowiki&amp;gt;eml&amp;lt;/nowiki&amp;gt; from the Spam Quarantine now works&lt;br /&gt;
** API-Viewer now usable from inside every running PMG installation at https://pmg.local:8006/api-viewer/index.html or just online via https://pmg.proxmox.com/pmg-docs/api-viewer/index.html&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.0==&lt;br /&gt;
&#039;&#039;&#039;Released 27. August 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Proxmox Mail Gateway is based on the latest stable release of Debian 10.0 (Buster)&lt;br /&gt;
*This major version update provides an easy to follow step-by-step upgrade path - https://pmg.proxmox.com/wiki/index.php/Upgrade_from_5.x_to_6.0&lt;br /&gt;
*Rule name logging - each final action now logs the name of the rule which triggered it to the system log&lt;br /&gt;
*The system logs get displayed faster in the GUI because they now use the Proxmox `mini-journalreader` instead of `journalctl`&lt;br /&gt;
*ClamAV 0.101.4 (fix for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934359)&lt;br /&gt;
*Postgres 11 (new major version backing the rule system)&lt;br /&gt;
*OpenSSL 1.1.1c with support for TLS 1.3&lt;br /&gt;
*Updated shipped SpamAssassin Ruleset&lt;br /&gt;
*Countless bugfixes and improvements in the GUI labels&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.2==&lt;br /&gt;
&#039;&#039;&#039;Released 20. March 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Mobile Quarantine Interface&lt;br /&gt;
**based on the small and modern framework7&lt;br /&gt;
**Deliver/Delete/Whitelist/Blacklist mails in your Quarantine from your mobile device&lt;br /&gt;
*Improvements in the LDAP integration&lt;br /&gt;
**allow the use of FQDNs instead of IPs in the WebUI&lt;br /&gt;
**add support for certificate verification (and enable it for new deployments)&lt;br /&gt;
**add support for LDAP+starttls&lt;br /&gt;
*PMG-Appliance template&lt;br /&gt;
**Install PMG as a (unprivileged) Linux Container (e.g. in PVE)&lt;br /&gt;
**Introduces the new &#039;proxmox-mailgateway-container&#039; metapackage, which does not depend on a kernel, and results in a vastly reduced size (and fewer updates)&lt;br /&gt;
*Improvements in Logging&lt;br /&gt;
**pmg-smtp-filter now logs each SA-Rules score in addition to the rule names - simplifying the analysis of the spam filter&#039;s performance without the need to access the mail&#039;s source&lt;br /&gt;
*Improvements in the WebUI&#039;s TLS configuration&lt;br /&gt;
*pmgproxy can now be configured via &#039;/etc/default/pmgproxy&#039; to disable/enable certain ciphers, compression, cipher selection preference.&lt;br /&gt;
*new command: `pmg-system-report`&lt;br /&gt;
**Provides a overview of key characteristics of PMG&#039;s setup and performance&lt;br /&gt;
**Improves the initial diagnosis for our Enterprise support&lt;br /&gt;
*.eml download from the (non-mobile) Quarantine Interface&lt;br /&gt;
**Lets you download the complete source of a quarantined message in .eml format for further analysis&lt;br /&gt;
*Add support for custom checks&lt;br /&gt;
**Enable users to integrate their own custom check logic by providing a defined interface, which can optionally be enabled, and runs a custom check before the mail gets handed to the virus scanner and rule system.&lt;br /&gt;
*Improvements of Blacklist/Whitelist handling in the Quarantine Interface&lt;br /&gt;
**multiselect for removing multiple entries at once&lt;br /&gt;
*proxmox-spamassassin&lt;br /&gt;
**Update the shipped rulesets&lt;br /&gt;
*PMG-Cluster: full IPv6 support&lt;br /&gt;
*ISO works on Citrix XenServer&lt;br /&gt;
*Documentation available via https://pmg.proxmox.com/pmg-docs&lt;br /&gt;
*Bugfixes&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.1==&lt;br /&gt;
&#039;&#039;&#039;Released 05. October 2018&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Allow to configure TLS policy via GUI&lt;br /&gt;
*New &#039;helpdesk&#039; role&lt;br /&gt;
*Support SMTPUTF8 protocol feature&lt;br /&gt;
*GUI improvements&lt;br /&gt;
*Update Debian Stretch 9.5&lt;br /&gt;
*Update kernel to 4.15&lt;br /&gt;
*Bugfixes&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.0==&lt;br /&gt;
&#039;&#039;&#039;Released 23. January 2018&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Fully licensed under the open source license AGPL&lt;br /&gt;
*Based on Debian Stretch 9.3 with a 4.13.13 kernel&lt;br /&gt;
*ISO installer supports all ZFS raid levels&lt;br /&gt;
*ExtJS based user interface&lt;br /&gt;
*New API&lt;br /&gt;
*Integrated documentation&lt;br /&gt;
*Subscription-based enterprise support options (similar to the Proxmox VE support subscription model)&lt;br /&gt;
*Bug fixes&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
*Proxmox Mail Gateway 4.1&lt;br /&gt;
*Proxmox Mail Gateway 4.0&lt;br /&gt;
*Proxmox Mail Gateway 3.1&lt;br /&gt;
*Proxmox Mail Gateway 3.0&lt;br /&gt;
*Proxmox Mail Gateway 2.6&lt;br /&gt;
*Proxmox Mail Gateway 2.5&lt;br /&gt;
*Proxmox Mail Gateway 2.4&lt;br /&gt;
*Proxmox Mail Gateway 2.3&lt;br /&gt;
*Proxmox Mail Gateway 2.2&lt;br /&gt;
*Proxmox Mail Gateway 2.1&lt;br /&gt;
*Proxmox Mail Gateway 2.0&lt;br /&gt;
*Proxmox Mail Gateway 1.7&lt;br /&gt;
*Proxmox Mail Gateway 1.6&lt;br /&gt;
*Proxmox Mail Gateway 1.5&lt;br /&gt;
*Proxmox Mail Gateway 1.4&lt;br /&gt;
*Proxmox Mail Gateway 1.3&lt;br /&gt;
*Proxmox Mail Gateway 1.2&lt;br /&gt;
*Proxmox Mail Gateway 1.1&lt;br /&gt;
*Proxmox Mail Gateway 1.0 (April 2005)&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Roadmap&amp;diff=155</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Roadmap&amp;diff=155"/>
		<updated>2025-10-01T12:06:31Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: add PMG 9.0 release notes /* Proxmox Mail Gateway 9.0 BETA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*&amp;lt;s&amp;gt;SpamAssassin 4&amp;lt;/s&amp;gt; done&lt;br /&gt;
*Continuous security and bug fix updates&lt;br /&gt;
=Release History=&lt;br /&gt;
See also [https://forum.proxmox.com/forums/announcements.7/ Announcement forum]&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 9.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 01. October 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Trixie (13.1)&lt;br /&gt;
* SpamAssassin 4.0.2 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.4.3&lt;br /&gt;
* PostgreSQL 17&lt;br /&gt;
* Latest 6.14.11-2 Kernel as new stable default&lt;br /&gt;
* ZFS 2.3.4&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New major release based on the great Debian Trixie.&lt;br /&gt;
* New Quarantine UI on mobile browsers based on the modern Rust-based Yew framework.&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 8.2, see [[Upgrade from 8 to 9]]&lt;br /&gt;
* Single-Sign-On (SSO) with OpenID Connect, and multiple authentication realms for PMG: These were introduced with PMG 8.2 and were since significantly improved based on the feedback from our customers and community.&lt;br /&gt;
* Synchronize the configuration templates of the core service &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; with the latest recommendations from upstream.&lt;br /&gt;
* Adapt the Content-Type filters to the renaming of relevant MIME-types for Microsoft executable formats.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* New Quarantine UI on mobile browers based on the Rust based Yew framework, in place of the one based on framework7.&lt;br /&gt;
* The non-mobile Quarantine UI offers a button to switch to the mobile version and recommends switching on displays which are too narrow for comfortable work with it.&lt;br /&gt;
* An XSS vulnerability for the HTTP proxy setting was fixed. See the corresponding Proxmox Security Advisory [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-798035  PSA-2025-00015-1] for further information.&lt;br /&gt;
* It is now possible to define an authentication realm as default instead of the hard-coded internal &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm.&lt;br /&gt;
* OpenID Connect realms can now be configured in the GUI, including the &amp;lt;code&amp;gt;username-claim&amp;lt;/code&amp;gt;, and the default role to be assigned to auto-created users.&lt;br /&gt;
* All labels and widgets containing the terms &amp;quot;blacklist&amp;quot; and &amp;quot;whitelist&amp;quot; were renamed to &amp;quot;blocklist&amp;quot; and &amp;quot;welcomelist,&amp;quot; respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
* Allow selecting multiple mails in the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; queue administration widget for delivery or deletion ([https://bugzilla.proxmox.com/show_bug.cgi?id=3450 issue 3450]).&lt;br /&gt;
* Improve the configuration and display of DNSBL sites in the Mail Proxy (&amp;lt;code&amp;gt;postscreen_dnsbl_sites&amp;lt;/code&amp;gt;)([https://bugzilla.proxmox.com/show_bug.cgi?id=3284 issue 3284]).&lt;br /&gt;
* Make the SpamInfo text selectable in the Spam Quarantine interface.&lt;br /&gt;
* Improved handling of translations:&lt;br /&gt;
** Add support for plural forms and ngettext usage.&lt;br /&gt;
** Translations can now contain comments that are extracted from the source code and provide useful context for translators.&lt;br /&gt;
* Updated translations, among others:&lt;br /&gt;
** Czech (new!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Bulgarian&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Polish&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Swedish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
&lt;br /&gt;
* Improvements of OpenID Connect realms, which were introduced in Proxmox Mail Gateway 8.2:&lt;br /&gt;
** Fix an error when logging in the first time to a secondary node as a user in an OIDC realm with enabled auto-creation.&lt;br /&gt;
** The validation for OIDC &amp;lt;code&amp;gt;client-id&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;client-key&amp;lt;/code&amp;gt; was aligned with the [https://www.rfc-editor.org/rfc/rfc6749#appendix-A relevant RFC].&lt;br /&gt;
** The &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm is not hard-coded as the default realm anymore, allowing to select a different default realm.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgqm&amp;lt;/code&amp;gt; utility used for sending spam reports to users now supports timespans between 1 and 24 hours in addition to &amp;lt;code&amp;gt;today&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;yesterday&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;week&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=2452 issue 2452]).&lt;br /&gt;
* Fix an issue where a disallowed value for the Destination TLS policy was accepted by the backend.&lt;br /&gt;
* Leading and trailing whitespace in the &amp;lt;code&amp;gt;__MSGID__&amp;lt;/code&amp;gt; macro in the rule system (containing the &amp;lt;code&amp;gt;Message-ID&amp;lt;/code&amp;gt; header) is now trimmed.&lt;br /&gt;
* The TLS-inbound domains are now added to the Proxmox Mail Gateway system report used in Enterprise support.&lt;br /&gt;
* Mails generated by Proxmox Mail Gateway now have a &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; header allowing them to have a valid DKIM signature.&lt;br /&gt;
* The Date header for autogenerated mails is set with a fixed locale to have it compliant with [https://www.rfc-editor.org/rfc/rfc5322 RFC5322].&lt;br /&gt;
* An issue of &amp;lt;code&amp;gt;pmgtunnel&amp;lt;/code&amp;gt; exiting with errors due to not correctly adapting to changes in the network information parsing code was repaired by fixing its handling of child processes.&lt;br /&gt;
* With the upgrade to Debian Trixie, the &amp;lt;code&amp;gt;application/x-ms-dos-executable&amp;lt;/code&amp;gt; MIME-Type was renamed to &amp;lt;code&amp;gt;application/vnd.microsoft.portable-executable&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;application/x-msdownload&amp;lt;/code&amp;gt;. As &amp;lt;code&amp;gt;exe&amp;lt;/code&amp;gt; files are filtered out in the default ruleset and are usually considered special when handling mails, the existing rules are automatically adapted.&lt;br /&gt;
* The &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; MTA package used by PMG was significantly reworked and improved upstream. PMG was adapted to the changes:&lt;br /&gt;
** &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; is now explicitly configured to run without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; confinement ([https://bugzilla.proxmox.com/show_bug.cgi?id=5323 issue 5323]).&lt;br /&gt;
*: The processes were running without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; since version 5.0, the change now is only making this explicit in the configuration files.&lt;br /&gt;
*: The change is in accordance with [https://salsa.debian.org/postfix-team/postfix-dev/-/blob/debian/master/debian/README.Debian?ref_type=heads#L44 Debian&#039;s recommendation] and in line with [https://www.postfix.org/COMPATIBILITY_README.html#chroot upstream].&lt;br /&gt;
** The &amp;lt;code&amp;gt;postfix@-&amp;lt;/code&amp;gt; default instance was dropped in favor of directly using &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;&lt;br /&gt;
** Deprecations in the shipped postfix configuration templates were fixed, and the [https://www.postfix.org/COMPATIBILITY_README.html compatibility level] was raised to 3.11.&lt;br /&gt;
* The Debian repository sources shipped for the &amp;lt;code&amp;gt;pmg-enterprise&amp;lt;/code&amp;gt; repository were adapted to the preferred Deb822 format.&lt;br /&gt;
* A change in the upstream &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; package caused the daemon not to be enabled automatically since PMG 8.1. Now the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package enables the service in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; maintainer script.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgdaemon&amp;lt;/code&amp;gt; HTTP API servers were adapted to the paths used by the new Yew-based mobile quarantine UI.&lt;br /&gt;
* The locale files served by the HTTP API servers now return their modification times to facilitate caching.&lt;br /&gt;
* Spam reports send to users and the system status report sent to administrators now have a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; version in addition to &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=4023 issue 4023]) ([https://bugzilla.proxmox.com/show_bug.cgi?id=1621 issue 1621]).&lt;br /&gt;
* Adding a custom ACME provider via the &amp;lt;code&amp;gt;pmgconfig&amp;lt;/code&amp;gt; command line utility was fixed for Proxmox Mail Gateway ([https://bugzilla.proxmox.com/show_bug.cgi?id=6748 issue 6748]).&lt;br /&gt;
* Improvements to handling external mail-sources via &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt;:&lt;br /&gt;
** &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; changed the semantics of TLS related parameters in version &amp;lt;code&amp;gt;6.4.0&amp;lt;/code&amp;gt;. The issue of not being able to connect to a system via plaintext session without StartTLS/implicit TLS was fixed ([https://bugzilla.proxmox.com/show_bug.cgi?id=6798 issue 6798]).&lt;br /&gt;
** Changing the configuration of &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; accounts now triggers a restart of the &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; daemon, resulting in the changes being live directly.&lt;br /&gt;
** The &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; package used for downloading mails via POP/IMAP to be processed by Proxmox Mail Gateway now ships a systemd-unit file instead of a legacy sysv-init script. This is a change to Debian upstream&#039;s version.&lt;br /&gt;
* Fix a spurious warning by the &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; API server daemon, when sending a &amp;lt;code&amp;gt;Cookie&amp;lt;/code&amp;gt; header without a valid authentication ticket.&lt;br /&gt;
* Fix a spurious warning during early boot due to &amp;lt;code&amp;gt;/run/pmg-smtp-filter.cfg&amp;lt;/code&amp;gt; not being in place yet.&lt;br /&gt;
* Ensure the &amp;lt;code&amp;gt;pmgspamreport.timer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgreport.timer&amp;lt;/code&amp;gt; units are run after their prerequisites have started on reboot&lt;br /&gt;
* Allow all &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; users to see the list of known MIME-Types, when adding ContentType filter objects ([https://bugzilla.proxmox.com/show_bug.cgi?id=5438 issue 5438]).&lt;br /&gt;
* Allow providing a list of &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; queue-ids and action (&amp;lt;code&amp;gt;deliver,delete&amp;lt;/code&amp;gt;) to the &amp;lt;code&amp;gt;/nodes/{node}/postfix/queue/{queue}&amp;lt;/code&amp;gt; to delete or flush multiple mails at once ([https://bugzilla.proxmox.com/show_bug.cgi?id=3450 issue 3450]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Install the microcode package matching the current platform.&lt;br /&gt;
*: This ensures that new Proxmox Mail Gateway installations get available fixes for CPU security issues and other CPU bugs.&lt;br /&gt;
*: This also means that installations now have the &amp;lt;code&amp;gt;non-free-firmware&amp;lt;/code&amp;gt; repository enabled.&lt;br /&gt;
*: To get microcode updates that were released after the ISO was built, hosts have to be updated regularly. Microcode updates need a reboot to go into effect.&lt;br /&gt;
* Ignore network interfaces without a valid MAC address instead of aborting the installation.&lt;br /&gt;
* Check that the configured LVM swapsize is not greater than half the disk size ([https://bugzilla.proxmox.com/show_bug.cgi?id=5887 issue 5887]).&lt;br /&gt;
* Handle the case where the DHCP lease includes the search domain in the Host Name option.&lt;br /&gt;
* Improve error reporting for disk and RAID checks.&lt;br /&gt;
* Improvements to the text-based installer and &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;:&lt;br /&gt;
** Improve error reporting when encountering an invalid CIDR.&lt;br /&gt;
** Add plausibility checks for subnet masks and IPv4 address.&lt;br /&gt;
* Improvements to the automated installation:&lt;br /&gt;
** Handle the case where the answer file provides an empty search domain.&lt;br /&gt;
** Check the number of disks for RAID configurations already when parsing the answer file to catch invalid configurations earlier.&lt;br /&gt;
** Warn if the answer file contains deprecated &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; keys.&lt;br /&gt;
** Check for duplicate disks in the answer file.&lt;br /&gt;
* Improve robustness of installing on Btrfs.&lt;br /&gt;
* Align the plausibility checks performed by the GUI and TUI installers in case of an installation on Btrfs and a single disk.&lt;br /&gt;
* Improve the visibility of CLI errors by printing an additional newline.&lt;br /&gt;
* Provide &amp;lt;code&amp;gt;--verify-root-password&amp;lt;/code&amp;gt; as option for &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;, to catch mistakes before installation.&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; compatibility level to &amp;lt;code&amp;gt;3.6&amp;lt;/code&amp;gt; for all products.&lt;br /&gt;
*: Note that this affects all products **apart from Proxmox Mail Gateway**, which sets it to &amp;lt;code&amp;gt;3.11&amp;lt;/code&amp;gt; through the templating system.&lt;br /&gt;
* The timezone is now set earlier before configuring &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; to ensure it&#039;s set correctly if &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; runs in &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Note that this affects all products **apart from Proxmox Mail Gateway**, which runs &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Do not create the deprecated &amp;lt;code&amp;gt;/etc/timezone&amp;lt;/code&amp;gt; in alignment with [https://metadata.ftp-master.debian.org/changelogs//main/t/tzdata/tzdata_2025b-4_changelog Debian upstream].&lt;br /&gt;
* Ensure that &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; is enabled after installation - see the [https://salsa.debian.org/clamav-team/clamav/-/merge_requests/7 patch submitted upstream for more information].&lt;br /&gt;
&lt;br /&gt;
==== Notable changes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== The Test Repository Is Now Named pmg-test ====&lt;br /&gt;
&lt;br /&gt;
For consistency with existing repositories, the &amp;lt;code&amp;gt;pmgtest&amp;lt;/code&amp;gt; repository is now spelled &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Breaking Changes in the Proxmox Mail Gateway API ====&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Google Safe Browsing&amp;quot; option for &amp;lt;code&amp;gt;ClamAV&amp;lt;/code&amp;gt;, which is deprecated since PMG 7.0, in &amp;lt;code&amp;gt;pmg.conf&amp;lt;/code&amp;gt; was dropped.&lt;br /&gt;
* The superfluous fields &amp;lt;code&amp;gt;network_address&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;prefix_size&amp;lt;/code&amp;gt; returned by the &amp;lt;code&amp;gt;/config/mynetworks&amp;lt;/code&amp;gt; API call were dropped, as &amp;lt;code&amp;gt;cidr&amp;lt;/code&amp;gt; contains the same information.&lt;br /&gt;
* The &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; actions, which were not exposed since at least PMG 5.0, and deprecated in PMG 7.2, were dropped from the database handling code.&lt;br /&gt;
* Changing the password of a user via &amp;lt;code&amp;gt;PUT /access/users/{userid}&amp;lt;/code&amp;gt; has been dropped in favor of the &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; API call. The GUI is using &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; since at least 2017.&lt;br /&gt;
* Adding and removing entries in the block- and welcomelists of users are now done by the master node in a cluster ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* The API has renamed all black-/whitelist API calls to block-/welcomelist respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
*: The old API calls are still present for backward compatibility but will be dropped with the next major release.&lt;br /&gt;
*: As these calls were also used in the templates for the spamreport e-mails sent to users, which are often modified by administrators, we recommend adapting your overridden configuration templates.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmail_raw&amp;lt;/code&amp;gt; variable available to the template for the spam reports sent to users has been renamed to &amp;lt;code&amp;gt;pmail_plain&amp;lt;/code&amp;gt; to match the other variables formatted for plain-text reports.&lt;br /&gt;
*: This variable was never used by a template shipped by Promxox Mail Gateway, thus it is very unlikely to have been used in a modification.&lt;br /&gt;
&lt;br /&gt;
==== Potential changes in network interface names ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 can now transparently handle many network interface name changes.&lt;br /&gt;
&lt;br /&gt;
These changes may occur when upgrading from Proxmox Mail Gateway 8.x to Proxmox Mail Gateway 9.0 due to new naming scheme policies or the added support for new NIC features. For example, this may happen when upgrading from Kernel 6.8 to Kernel 6.14.&lt;br /&gt;
If the previous primary name remains available as an alternative name, manual intervention may not be necessary since Proxmox Mail Gateway 9.0 allows the use of alternative names in network configurations and firewall rules.&lt;br /&gt;
&lt;br /&gt;
However, in some cases, the previous primary name might not be available as an alternative name after the upgrade. In such cases, manual reconfiguration after the upgrade is currently still necessary.&lt;br /&gt;
&lt;br /&gt;
Before upgrading, you can use the &amp;lt;code&amp;gt;proxmox-network-interface-pinning&amp;lt;/code&amp;gt; CLI tool to pin network interfaces to custom names.&lt;br /&gt;
For details, see the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_overriding_network_device_names Overriding Network Device Names] section in the reference documentation.&lt;br /&gt;
&lt;br /&gt;
==== Fresh installation from the Proxmox VE container template does not work with dhcp as network configuration ====&lt;br /&gt;
&lt;br /&gt;
Installations done with the Proxmox VE &amp;lt;code&amp;gt;pct&amp;lt;/code&amp;gt; appliance template will currently not work when configured to use DHCP for network configuration.&lt;br /&gt;
This is related to &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt; package being EOL, and due to the use of &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; for network configuration in Promxox Mail Gateway.&lt;br /&gt;
Installations upgraded from version 8.2, and installations using static IP configuration (as is recommended in general) are not affected. See also the&lt;br /&gt;
the related bug-reports: [https://bugzilla.proxmox.com/show_bug.cgi?id=6644 issue 6644], [https://bugzilla.proxmox.com/show_bug.cgi?id=6777 issue 6777], [https://bugzilla.proxmox.com/show_bug.cgi?id=6784 issue 6784].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AppArmor 4 ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 ships with AppArmor version 4.1.&lt;br /&gt;
Since this version is relatively new, you might see regressions in packages, for example &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt;, or software that is not part of the core Proxmox Mail Gateway distribution, for example the CUPS printing daemon.&lt;br /&gt;
&lt;br /&gt;
Most issues with older profiles can be resolved by configuring AppArmor to use the 3.0 ABI by adding the &amp;lt;code&amp;gt;abi &amp;lt;abi/3.0&amp;gt;,&amp;lt;/code&amp;gt; rule to the relevant profile.&lt;br /&gt;
For more details, see the [https://gitlab.com/apparmor/apparmor/-/wikis/apparmorpolicyfeaturesABI AppArmor Wiki].&lt;br /&gt;
&lt;br /&gt;
==== systemd logs &amp;quot;System is tainted: unmerged-bin&amp;quot; after boot ====&lt;br /&gt;
&lt;br /&gt;
It is recommended to ignore this message. See the [https://www.debian.org/releases/trixie/release-notes/issues.en.html#systemd-message-system-is-tainted-unmerged-bin Debian Trixie release notes] for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 9.0 BETA ==&lt;br /&gt;
&#039;&#039;&#039;Released 24. September 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|This is a test version that is not yet intended for production use. The release notes will be continuously updated during the beta phase.}}&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Trixie (13.1)&lt;br /&gt;
* SpamAssassin 4.0.2 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.4.3&lt;br /&gt;
* PostgreSQL 17&lt;br /&gt;
* Latest 6.14.11-2 Kernel as new stable default&lt;br /&gt;
* ZFS 2.3.4&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New major release based on the great Debian Trixie.&lt;br /&gt;
* New Quarantine UI on mobile browsers based on the modern Rust-based Yew framework.&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 8.2, see [[Upgrade from 8 to 9]]&lt;br /&gt;
* Single-Sign-On (SSO) with OpenID Connect, and multiple authentication realms for PMG, which were introduced with PMG 8.2 got significantly improved based on the feedback from our customers and community.&lt;br /&gt;
* Synchronize the configuration templates of the core service &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; with the latest recommendations from upstream.&lt;br /&gt;
* Adapt the Content-Type filters to the renaming of relevant MIME-types for Microsoft executable formats.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* New Quarantine UI on mobile browers based on the Rust based Yew framework, in place of the one based on framework7.&lt;br /&gt;
* The non-mobile Quarantine UI offers a button to switch to the mobile version and recommends switching on displays which are too narrow for comfortable work with it.&lt;br /&gt;
* An XSS vulnerability for the HTTP proxy setting was fixed. See the corresponding Proxmox Security Advisory [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-798035  PSA-2025-00015-1] for further information.&lt;br /&gt;
* It is now possible to define an authentication realm as default instead of the hard-coded internal &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm.&lt;br /&gt;
* OpenID Connect realms can now be configured in the GUI, including the &amp;lt;code&amp;gt;username-claim&amp;lt;/code&amp;gt;, and the default role to be assigned to auto-created users.&lt;br /&gt;
* All labels and widgets containing the terms &amp;quot;blacklist&amp;quot; and &amp;quot;whitelist&amp;quot; were renamed to &amp;quot;blocklist&amp;quot; and &amp;quot;welcomelist,&amp;quot; respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
* Improve the configuration and display of DNSBL sites in the Mail Proxy (&amp;lt;code&amp;gt;postscreen_dnsbl_sites&amp;lt;/code&amp;gt;)([https://bugzilla.proxmox.com/show_bug.cgi?id=3284 issue 3284]).&lt;br /&gt;
* Make the SpamInfo text selectable in the Spam Quarantine interface.&lt;br /&gt;
* Improved handling of translations:&lt;br /&gt;
** Add support for plural forms and ngettext usage.&lt;br /&gt;
** Translations can now contain comments that are extracted from the source code and provide useful context for translators.&lt;br /&gt;
* Updated translations, among others:&lt;br /&gt;
** Czech (new!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Bulgarian&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Polish&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Swedish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
&lt;br /&gt;
* Improvements of OpenID Connect realms, which were introduced in Proxmox Mail Gateway 8.2:&lt;br /&gt;
** Fix an error when logging in the first time to a secondary node as a user in an OIDC realm with enabled auto-creation.&lt;br /&gt;
** The validation for OIDC &amp;lt;code&amp;gt;client-id&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;client-key&amp;lt;/code&amp;gt; was aligned with the [https://www.rfc-editor.org/rfc/rfc6749#appendix-A relevant RFC].&lt;br /&gt;
** The &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm is not hardcoded as the default realm anymore, allowing to select a different default realm.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgqm&amp;lt;/code&amp;gt; utility used for sending spam reports to users now supports timespans between 1 and 24 hours in addition to &amp;lt;code&amp;gt;today&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;yesterday&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;week&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=2452 issue 2452]).&lt;br /&gt;
* Fix an issue where a disallowed value for the Destination TLS policy was accepted by the backend.&lt;br /&gt;
* Leading and trailing whitespace in the &amp;lt;code&amp;gt;__MSGID__&amp;lt;/code&amp;gt; macro in the rule system (containing the &amp;lt;code&amp;gt;Message-ID&amp;lt;/code&amp;gt; header) is now trimmed.&lt;br /&gt;
* The TLS-inbound domains are now added to the Proxmox Mail Gateway system report used in Enterprise support.&lt;br /&gt;
* Mails generated by Proxmox Mail Gateway now have a &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; header allowing them to have a valid DKIM signature.&lt;br /&gt;
* The Date header for autogenerated mails is set with a fixed locale to have it compliant with [https://www.rfc-editor.org/rfc/rfc5322 RFC5322].&lt;br /&gt;
* An issue of &amp;lt;code&amp;gt;pmgtunnel&amp;lt;/code&amp;gt; exiting with errors due to not correctly adapting to changes in the network information parsing code was repaired by fixing its handling of child processes.&lt;br /&gt;
* With the upgrade to Debian Trixie, the &amp;lt;code&amp;gt;application/x-ms-dos-executable&amp;lt;/code&amp;gt; MIME-Type was renamed to &amp;lt;code&amp;gt;application/vnd.microsoft.portable-executable&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;application/x-msdownload&amp;lt;/code&amp;gt;. As &amp;lt;code&amp;gt;exe&amp;lt;/code&amp;gt; files are filtered out in the default ruleset and are usually considered special when handling mails, the existing rules are automatically adapted.&lt;br /&gt;
* The &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; MTA package used by PMG was significantly reworked and improved upstream. PMG was adapted to the changes:&lt;br /&gt;
** &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; is now explicitly configured to run without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; confinement ([https://bugzilla.proxmox.com/show_bug.cgi?id=5323 issue 5323]).&lt;br /&gt;
*: The processes were running without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; since version 5.0, the change now is only making this explicit in the configuration files.&lt;br /&gt;
*: The change is in accordance with [https://salsa.debian.org/postfix-team/postfix-dev/-/blob/debian/master/debian/README.Debian?ref_type=heads#L44 Debian&#039;s recommendation] and in line with [https://www.postfix.org/COMPATIBILITY_README.html#chroot upstream].&lt;br /&gt;
** The &amp;lt;code&amp;gt;postfix@-&amp;lt;/code&amp;gt; default instance was dropped in favor of directly using &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;&lt;br /&gt;
** Deprecations in the shipped postfix configuration templates were fixed, and the [https://www.postfix.org/COMPATIBILITY_README.html compatibility level] was raised to 3.11.&lt;br /&gt;
* The Debian repository sources shipped for the &amp;lt;code&amp;gt;pmg-enterprise&amp;lt;/code&amp;gt; repository were adapted to the preferred Deb822 format.&lt;br /&gt;
* A change in the upstream &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; package caused the daemon not to be enabled automatically since PMG 8.1. Now the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package enables the service in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; maintainer script.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgdaemon&amp;lt;/code&amp;gt; HTTP API servers were adapted to the paths used by the new Yew-based mobile quarantine UI.&lt;br /&gt;
* The locale files served by the HTTP API servers now return their modification times to facilitate caching.&lt;br /&gt;
* Spamreports send to users and the system status report sent to administrators now have a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; version in addition to &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=4023 issue 4023]) ([https://bugzilla.proxmox.com/show_bug.cgi?id=1621 issue 1621]).&lt;br /&gt;
* Adding a custom ACME provider via the &amp;lt;code&amp;gt;pmgconfig&amp;lt;/code&amp;gt; command line utility was fixed for Proxmox Mail Gateway ([https://bugzilla.proxmox.com/show_bug.cgi?id=6748 issue 6748]).&lt;br /&gt;
* The &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; package used for downloading mails via POP/IMAP to be processed by Proxmox Mail Gateway now ships a systemd-unit file instead of a legacy sysv-init script. This is a change to Debian upstream&#039;s version.&lt;br /&gt;
* Fix a spurious warning by the &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; API server daemon, when sending a &amp;lt;code&amp;gt;Cookie&amp;lt;/code&amp;gt; header without a valid authentication ticket.&lt;br /&gt;
* Fix a spurious warning during early boot due to &amp;lt;code&amp;gt;/run/pmg-smtp-filter.cfg&amp;lt;/code&amp;gt; not being in place yet.&lt;br /&gt;
* Ensure the &amp;lt;code&amp;gt;pmgspamreport.timer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgreport.timer&amp;lt;/code&amp;gt; units are run after their prerequisites have started on reboot&lt;br /&gt;
* Allow all &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; users to see the list of known MIME-Types, when adding ContentType filter objects ([https://bugzilla.proxmox.com/show_bug.cgi?id=5438 issue 5438]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Install the microcode package matching the current platform.&lt;br /&gt;
*: This ensures that new Proxmox Mail Gateway installations get available fixes for CPU security issues and other CPU bugs.&lt;br /&gt;
*: This also means that installations now have the &amp;lt;code&amp;gt;non-free-firmware&amp;lt;/code&amp;gt; repository enabled.&lt;br /&gt;
*: To get microcode updates that were released after the ISO was built, hosts have to be updated regularly. Microcode updates need a reboot to go into effect.&lt;br /&gt;
* Ignore network interfaces without a valid MAC address instead of aborting the installation.&lt;br /&gt;
* Check that the configured LVM swapsize is not greater than half the disk size ([https://bugzilla.proxmox.com/show_bug.cgi?id=5887 issue 5887]).&lt;br /&gt;
* Handle the case where the DHCP lease includes the search domain in the Host Name option.&lt;br /&gt;
* Improve error reporting for disk and RAID checks.&lt;br /&gt;
* Improvements to the text-based installer and &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;:&lt;br /&gt;
** Improve error reporting when encountering an invalid CIDR.&lt;br /&gt;
** Add plausibility checks for subnet masks and IPv4 address&lt;br /&gt;
* Improvements to the automated installation:&lt;br /&gt;
** Handle the case where the answer file provides an empty search domain.&lt;br /&gt;
** Check the number of disks for RAID configurations already when parsing the answer file to catch invalid configurations earlier.&lt;br /&gt;
** Warn if the answer file contains deprecated &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; keys.&lt;br /&gt;
** Check for duplicate disks in the answer file.&lt;br /&gt;
* Improve robustness of installing on Btrfs.&lt;br /&gt;
* Align the plausibility checks performed by the GUI and TUI installers in case of an installation on Btrfs and a single disk.&lt;br /&gt;
* Improve the visibility of CLI errors by printing an additional newline.&lt;br /&gt;
* Provide &amp;lt;code&amp;gt;--verify-root-password&amp;lt;/code&amp;gt; as option for &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;, to catch mistakes before installation.&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; compatibility level to &amp;lt;code&amp;gt;3.6&amp;lt;/code&amp;gt; for all products&lt;br /&gt;
* The timezone is now set earlier before configuring &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; to ensure it&#039;s set correctly if &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; runs in &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Note that this affects all products **apart from Proxmox Mail Gateway**, which runs &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;&lt;br /&gt;
* Do not create the deprecated &amp;lt;code&amp;gt;/etc/timezone&amp;lt;/code&amp;gt; in alignment with [https://metadata.ftp-master.debian.org/changelogs//main/t/tzdata/tzdata_2025b-4_changelog Debian upstream].&lt;br /&gt;
* Ensure that &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; is enabled after installation - see the [https://salsa.debian.org/clamav-team/clamav/-/merge_requests/7 patch submitted upstream for more information].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Notable changes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== The Test Repository Is Now Named pmg-test ====&lt;br /&gt;
&lt;br /&gt;
For consistency with existing repositories, the &amp;lt;code&amp;gt;pmgtest&amp;lt;/code&amp;gt; repository is now spelled &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Breaking Changes in the Proxmox Mail Gateway API ====&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Google Safe Browsing&amp;quot; option for &amp;lt;code&amp;gt;ClamAV&amp;lt;/code&amp;gt;, which is deprecated since PMG 7.0, in &amp;lt;code&amp;gt;pmg.conf&amp;lt;/code&amp;gt; was dropped.&lt;br /&gt;
* The superfluous fields &amp;lt;code&amp;gt;network_address&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;prefix_size&amp;lt;/code&amp;gt; returned by the &amp;lt;code&amp;gt;/config/mynetworks&amp;lt;/code&amp;gt; API call were dropped, as &amp;lt;code&amp;gt;cidr&amp;lt;/code&amp;gt; contains the same information.&lt;br /&gt;
* The &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; actions, which were not exposed since at least PMG 5.0, and deprecated in PMG 7.2, were dropped from the database handling code.&lt;br /&gt;
* Changing the password of a user via &amp;lt;code&amp;gt;PUT /access/users/{userid}&amp;lt;/code&amp;gt; has been dropped in favor of the &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; API call. The GUI is using &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; since at least 2017.&lt;br /&gt;
* Adding and removing entries in the block- and welcomelists of users are now done by the master node in a cluster ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* The API has renamed all black-/whitelist API calls to block-/welcomelist respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
*: The old API calls are still present for backward compatibility but will be dropped with the next major release.&lt;br /&gt;
*: As these calls were also used in the templates for the spamreport e-mails sent to users, which are often modified by administrators, we recommend adapting your overridden configuration templates.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmail_raw&amp;lt;/code&amp;gt; variable available to the template for the spam reports sent to users has been renamed to &amp;lt;code&amp;gt;pmail_plain&amp;lt;/code&amp;gt; to match the other variables formatted for plain-text reports.&lt;br /&gt;
*: This variable was never used by a templated shipped by Promxox Mail Gateway, thus it is very unlikely to have been used in a modification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Potential changes in network interface names ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 can now transparently handle many network interface name changes.&lt;br /&gt;
&lt;br /&gt;
These changes may occur when upgrading from Proxmox Mail Gateway 8.x to Proxmox Mail Gateway 9.0 due to new naming scheme policies or the added support for new NIC features. For example, this may happen when upgrading from Kernel 6.8 to Kernel 6.14.&lt;br /&gt;
If the previous primary name remains available as an alternative name, manual intervention may not be necessary since Proxmox Mail Gateway 9.0 allows the use of alternative names in network configurations and firewall rules.&lt;br /&gt;
&lt;br /&gt;
However, in some cases, the previous primary name might not be available as an alternative name after the upgrade. In such cases, manual reconfiguration after the upgrade is currently still necessary.&lt;br /&gt;
&lt;br /&gt;
Before upgrading, you can use the &amp;lt;code&amp;gt;pve-network-interface-pinning&amp;lt;/code&amp;gt; CLI tool to pin network interfaces to custom names.&lt;br /&gt;
For details, see the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_overriding_network_device_names Overriding Network Device Names] section in the reference documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AppArmor 4 ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 ships with AppArmor version 4.1.&lt;br /&gt;
Since this version is relatively new, you might see regressions in packages that are not part of the core Proxmox Mail Gateway distribution, for example, &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt; or the CUPS printing daemon.&lt;br /&gt;
&lt;br /&gt;
Most issues with older profiles can be resolved by configuring AppArmor to use the 3.0 ABI by adding the &amp;lt;code&amp;gt;abi &amp;lt;abi/3.0&amp;gt;,&amp;lt;/code&amp;gt; rule to the relevant profile.&lt;br /&gt;
For more details, see the [https://gitlab.com/apparmor/apparmor/-/wikis/apparmorpolicyfeaturesABI AppArmor Wiki].&lt;br /&gt;
&lt;br /&gt;
==== systemd logs &amp;quot;System is tainted: unmerged-bin&amp;quot; after boot ====&lt;br /&gt;
&lt;br /&gt;
It is recommended to ignore this message. See the [https://www.debian.org/releases/trixie/release-notes/issues.en.html#systemd-message-system-is-tainted-unmerged-bin Debian Trixie release notes] for more details.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.2 ==&lt;br /&gt;
&#039;&#039;&#039;Released 27. February 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.9)&lt;br /&gt;
* SpamAssassin 4.0.1 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.7&lt;br /&gt;
* PostgreSQL 15.11&lt;br /&gt;
* Latest 6.8 Kernel as new stable default&lt;br /&gt;
* Newer 6.11 Kernel as opt-in&lt;br /&gt;
* ZFS 2.2.7&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Support for multiple authentication realms, known from Proxmox VE and Proxmox Backup Server.&lt;br /&gt;
* Single-Sign-On (SSO) with the new OpenID Connect access realm type as first new realm.&lt;br /&gt;
*: External authorization servers can now be integrated for management access with Proxmox Mail Gateway, either using existing public services or your own identity and access management solution, for example, Keycloak, Zitadel or LemonLDAP::NG.&lt;br /&gt;
* Support for automated and unattended installation of Proxmox Mail Gateway.&lt;br /&gt;
*: Proxmox VE now ships a tool that prepares a Proxmox Mail Gateway ISO for automated installation.&lt;br /&gt;
*: The prepared ISO retrieves all required settings for automated installation from an answer file.&lt;br /&gt;
*: The answer file can be provided directly in the ISO, on an additional disk such as a USB flash drive, or over the network.&lt;br /&gt;
* Rule System: New option for the Content-Type What Objects, to ignore externally provided type information from the filename and header, and rely solely on file signature based detection.&lt;br /&gt;
* Rule System: New option for Match Field What Object, to restrict matching on the top header section, instead of also matching headers in attached emails.&lt;br /&gt;
* Mails generated by the Proxmox Mail Gateway processing stack can now be signed with DKIM.&lt;br /&gt;
* The Proxmox team has been tracking security-relevant issues in our software explicitly and publishes them in the [https://forum.proxmox.com/threads/149333/ Community Forum] since January 2024.&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [https://pmg.proxmox.com/wiki/index.php/Upgrade_from_7_to_8 Upgrade from 7 to 8].&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.2-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* Add an option to the Match Field What Object to only consider the headers of the top mail-part, instead of also comparing the headers of all attachments (including emails forwarded as attachment [https://bugzilla.proxmox.com/show_bug.cgi?id=2709 issue 2709]).&lt;br /&gt;
* Optionally restrict Content-Type What Object to only match based on the signature detected in the content of the file, disregarding the &amp;lt;code&amp;gt;Content-Type:&amp;lt;/code&amp;gt; and the recommended filename header information ([https://bugzilla.proxmox.com/show_bug.cgi?id=2691 issue 2691] [https://bugzilla.proxmox.com/show_bug.cgi?id=5618 issue 5618]).&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* The end-user quarantine interface now has a short help page explaining its purpose and the available keyboard shortcuts ([https://bugzilla.proxmox.com/show_bug.cgi?id=4311 issue 4311]).&lt;br /&gt;
* The listing of Who, What and When Objects can now optionally also display the description set for each object group, without explicitly selecting it.&lt;br /&gt;
* Fix an XSS issue in the Mail Queue view.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/149333/post-730687 PSA-2024-00015-1] for details.&lt;br /&gt;
* Fix the display message when removing a rule object, to not include the html-escaped icon.&lt;br /&gt;
* Fix a typo in the suggested default text when creating new notification objects.&lt;br /&gt;
* Remove whitespace before or after the subscription key when adding a new one, as they usually are copy-pasted.&lt;br /&gt;
* Fix the public-key DNS record displaying for DKIM selectors larger than 2048 bit.&lt;br /&gt;
* Clarify the label for DKIM domain selection.&lt;br /&gt;
* Enable autocompletion hints for the username, password, and TFA input fields to improve compatibility with password managers ([https://bugzilla.proxmox.com/show_bug.cgi?id=5251 issue 5251]).&lt;br /&gt;
* Show only installed services in the node&#039;s system panel by default, but optionally allow to show all services ([https://bugzilla.proxmox.com/show_bug.cgi?id=5611 issue 5611]).&lt;br /&gt;
* Fix an issue where clicking on an external link to the GUI would display a login screen, even if the current session was still valid.&lt;br /&gt;
* Fix an issue where the date picker would choose the wrong date after changing to a different month.&lt;br /&gt;
* Fix an issue where edit windows would not be correctly masked while loading.&lt;br /&gt;
* Display the end-of-life message as a notice up until three weeks before the end-of-life date, and display it as a warning from that point on.&lt;br /&gt;
* Move the &amp;quot;Reset&amp;quot; button for edit windows to an icon-only button in the title bar ([https://bugzilla.proxmox.com/show_bug.cgi?id=5277 issue 5277]).&lt;br /&gt;
*: This reduces the risk of misclicking and accidentally resetting form data.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Bulgarian (NEW!)&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
* You can now configure the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header information used for mails from the system itself:&lt;br /&gt;
** When sending admin reports&lt;br /&gt;
** Notifications from a notify action&lt;br /&gt;
** Backup jobs&lt;br /&gt;
** Bounces for messages refused for part of the recipients if before queue filtering is used and NDR on block is enabled.&lt;br /&gt;
*: For spam reports and quarantine links this could already be set in the Spam Quarantine options.&lt;br /&gt;
*: The emails still use an empty envelope from address, or for some cases &amp;lt;code&amp;gt;postmaster&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If this is set to contain an email address with a domain name, and DKIM signing based on header is enabled, the mails are now signed with DKIM ([https://bugzilla.proxmox.com/show_bug.cgi?id=4658 issue 4658]).&lt;br /&gt;
* Fix enabling custom SpamAssassin scores on systems where &amp;lt;code&amp;gt;/var/cache&amp;lt;/code&amp;gt; is on a different filesystem from &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Any pending changes will be preserved across the upgrade.&lt;br /&gt;
* Fix a post-authentication privileged file read vulnerability in the Proxmox Mail Gateway API.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-705346 PSA-2024-00009-1] for details.&lt;br /&gt;
* Make the static email containing the quarantine access link into a template, helping deployments with predominantly non-English speaking users ([https://bugzilla.proxmox.com/show_bug.cgi?id=4211 issue 4211]).&lt;br /&gt;
* Support having a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; alternative part for report emails generated by PMG, like the daily admin report and the spam quarantine report send to users.&lt;br /&gt;
* Fix the default examples for the Who Objects to use a domain (&amp;lt;code&amp;gt;fromthisdomain.example&amp;lt;/code&amp;gt;) reserved for documentation and examples ([https://bugzilla.proxmox.com/show_bug.cgi?id=5972 issue 5972]).&lt;br /&gt;
* Include the failure to DKIM sign a mail in the Tracking Center output, by adding the internal queue-id to the log message.&lt;br /&gt;
* Prevent a mail from being delivered multiple times when a user clicks on the deliver-button in their spam report multiple times ([https://bugzilla.proxmox.com/show_bug.cgi?id=6126 issue 6126]).&lt;br /&gt;
* Include the receiver email address when logging release or deletion from the quarantine.&lt;br /&gt;
* Fix the custom check script interface to also allow negative spam-scores as result.&lt;br /&gt;
* Fix an issue where comments set for LDAP profiles did not preserve percent encodings.&lt;br /&gt;
* Clarify that links are not displayed as links, but as plain-text when enabling the  &amp;lt;code&amp;gt;allowhrefs&amp;lt;/code&amp;gt; option.&lt;br /&gt;
* Use a lower level perl routine for setting file-contents to reduce write amplification.&lt;br /&gt;
* Use double-hyphen as argument prefix instead of the outdated single-hyphen in CLI commands documentation.&lt;br /&gt;
* Fix an issue where the documentation for CLI aliases did not mention the complete aliased command.&lt;br /&gt;
* Reload all Proxmox Mail Gateway services when the &amp;lt;code&amp;gt;proxmox-spamassassin&amp;lt;/code&amp;gt; package is updated to a new version.&lt;br /&gt;
&lt;br /&gt;
==== Access Control ====&lt;br /&gt;
* Realm System ported from Proxmox VE.&lt;br /&gt;
*: Enables you to configure multiple external authentication realms for users in the administration backend.&lt;br /&gt;
* Single-Sign-On (SSO) with the new OpenID Connect access realm type as first new realm.&lt;br /&gt;
*: External authorization servers can now be integrated for management access with Proxmox Mail Gateway, either using existing public services or your own identity and access management solution, for example, Keycloak, Zitadel or LemonLDAP::NG.&lt;br /&gt;
*: With the ability to auto-create users upon first logging it.&lt;br /&gt;
*: Roles for auto-created users can be queried from a configurable role-claim on your OpenID Connect service, or use a fixed role for all auto-created user of a realm.&lt;br /&gt;
*: Initial login for an auto-created user in a cluster needs to be done on the primary/master node.&lt;br /&gt;
&lt;br /&gt;
==== Notable bugfixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Since the release of Proxmox Mail Gateway 8.1 the Proxmox team has begun [https://forum.proxmox.com/forums/security-advisories.26/ tracking explicit security issues publicly in our forum]. The thread lists all security issues since January 2024.&lt;br /&gt;
*: Following the posts there is highly recommended.&lt;br /&gt;
* Fix an RCE vulnerability in the shim bootloader used for Secure Boot support.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-virtual-environment-security-advisories.149331/post-678937 PSA-2024-00007-1] for details.&lt;br /&gt;
* Fix unexpected behavior in handling single-part attachments in the rule system.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-728656 PSA-2024-00012-1] for details.&lt;br /&gt;
* Fix the &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; tool to identify the newer released &amp;lt;code&amp;gt;proxmox-kernel&amp;lt;/code&amp;gt; series (6.5, 6.8, 6.11) as expected kernel versions.&lt;br /&gt;
* Add a section to the &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; tool for checking potential issues in the currently configured ruleset.&lt;br /&gt;
* Increase the minimum password length to 8, following NIST recommendation and the change in the installer&lt;br /&gt;
* Include information about the routing table in the &amp;lt;code&amp;gt;pmg-system-report&amp;lt;/code&amp;gt; tool used for Enterprise Support information collection.&lt;br /&gt;
* Add anchors to subsections of the documentation to provide links to the specific point where an option is documented.&lt;br /&gt;
* Document the steps needed to activate a custom SpamAssassin configuration ([https://bugzilla.proxmox.com/show_bug.cgi?id=3979 issue 3979]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
* Support for automated and unattended installation of Proxmox Mail Gateway, as already released for Proxmox VE 8.2 and Proxmox Backup Server 3.2.&lt;br /&gt;
*: Introduce the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt; tool that prepares an ISO for automated installation.&lt;br /&gt;
*: The automated installation ISO reads all required settings from an answer file in TOML format.&lt;br /&gt;
*: One option to provide the answer file is to directly add it to the ISO. Alternatively, the installer can retrieve it from a specifically-labeled partition or via HTTPS from a specific URL.&lt;br /&gt;
*: If the answer file is retrieved via HTTPS, URL and fingerprint can be directly added to the ISO, or obtained via DHCP or DNS.&lt;br /&gt;
*: See the [https://pve.proxmox.com/wiki/Automated_Installation wiki page on Automated Installation] for more details.&lt;br /&gt;
* Ship the recent version 7.20 of memtestx86+, adding support for current CPU Generations (Intel&#039;s Arrow Lake and Ryzen 9000 series) as well as preliminary NUMA support.&lt;br /&gt;
* Fix an issue where setting ZFS compression to &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; did not have any effect, due to a change in upstream defaults.&lt;br /&gt;
* Improve the layout of widgets in the GTK-based installer for consistent margins and alignment.&lt;br /&gt;
* Add a post-installation notification mechanism for automated installations ([https://bugzilla.proxmox.com/show_bug.cgi?id=5536 issue 5536]).&lt;br /&gt;
*: This mechanism can be configured with the new &amp;lt;code&amp;gt;post-installation-webhook&amp;lt;/code&amp;gt; section in the answer file.&lt;br /&gt;
* Add support for running a custom script on first boot after automated installation ([https://bugzilla.proxmox.com/show_bug.cgi?id=5579 issue 5579]).&lt;br /&gt;
*: The script can be provided in the ISO or fetched from an URL.&lt;br /&gt;
* Allow users to set hashed passwords in the &amp;lt;code&amp;gt;proxmox-auto-installer&amp;lt;/code&amp;gt; answer file.&lt;br /&gt;
* Allow users to customize the label of the partition from which the automated installer fetches the answer file.&lt;br /&gt;
* Add ability to detect and rename an existing ZFS pool named &amp;lt;code&amp;gt;rpool&amp;lt;/code&amp;gt; during the installation.&lt;br /&gt;
* Improve the email address validation to include a broader set of email address formats.&lt;br /&gt;
*: This implements the email validation check specified in the [https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address HTML specification].&lt;br /&gt;
* The text-based installer now fails if no supported NIC was found, similar to graphical installer.&lt;br /&gt;
* Improve UI consistency by adding the missing background layer for the initial setup error screen in the text-based installer.&lt;br /&gt;
* Improve usability for small screens by adding a tabbed view for the advanced options at the disk selection step in the text-based installer.&lt;br /&gt;
*: This change only affects screens with a screen width of less than or equal to 80 columns.&lt;br /&gt;
* Fix an issue with ISOs generated with the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt; which caused the user to end up in the GRUB shell when booting from a block device (e.g. an USB flash drive) in UEFI mode.&lt;br /&gt;
* Fix a bug which caused some kernel parameters related to the automated installer to be removed incorrectly.&lt;br /&gt;
* Fix a bug which caused the installer to not detect Secure Boot in some cases.&lt;br /&gt;
* Ask the user for patience while making the system bootable if multiple disks are configured, as this may take longer than expected.&lt;br /&gt;
* Preserve the &amp;lt;code&amp;gt;nomodeset&amp;lt;/code&amp;gt; kernel command-line parameter.&lt;br /&gt;
*: A missing &amp;lt;code&amp;gt;nomodeset&amp;lt;/code&amp;gt; parameter has caused display rendering issues when booting the finished Proxmox Mail Gateway installation on some systems ([https://bugzilla.proxmox.com/show_bug.cgi?id=4230#c38 see this comment for more information]).&lt;br /&gt;
* Improve user-visible error and log messages in the installer.&lt;br /&gt;
* Improve documentation for the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve error reporting by printing the full error message when the installation fails in &amp;lt;code&amp;gt;proxmox-auto-installer&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve error reporting by printing the full error message when mounting and unmounting the installation file system fails in &amp;lt;code&amp;gt;proxmox-chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve debugging and testing by enumerating the installation environment anew (e.g. when running the command &amp;lt;code&amp;gt;dump-env&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Send the correct content-type charset &amp;lt;code&amp;gt;utf-8&amp;lt;/code&amp;gt; when fetching answer files from an HTTP server during automated installation.&lt;br /&gt;
* Switch the text-based installer rendering backend from termion to crossterm.&lt;br /&gt;
* Raise minimum root password length from 5 to 8 characters for all installers.&lt;br /&gt;
*: This change is done in accordance with current [https://pages.nist.gov/800-63-4/sp800-63b.html#passwordver NIST recommendations].&lt;br /&gt;
* Print more user-visible information about the reasons the auto installation failed.&lt;br /&gt;
* Allow RAID levels to be set case-insensitively in the answer file for the auto-installer.&lt;br /&gt;
* Prevent the auto-installer from printing progress messages while there has been no progress.&lt;br /&gt;
* Disallow configuring BTRFS as root filesystem for Proxmox products that do not currently support it.&lt;br /&gt;
* Correctly acknowledge the user&#039;s preference whether to reboot on error during auto installation ([https://bugzilla.proxmox.com/show_bug.cgi?id=5984 issue 5984]).&lt;br /&gt;
* Allow binary executables (in addition to shell scripts) to be used as the first-boot executable for the auto-installer.&lt;br /&gt;
* Allow properties in the answer file of the auto-installer to be either in &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;kebab-case&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: The &amp;lt;code&amp;gt;kebab-case&amp;lt;/code&amp;gt; variant is preferred to be more consistent with other Proxmox configuration file formats.&lt;br /&gt;
*: The &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; variant will be gradually deprecated and removed in future major version releases.&lt;br /&gt;
* Validate the locale and first-boot-hook settings while preparing the auto-installer ISO instead of failing the installation due to wrong settings.&lt;br /&gt;
* Prevent printing non-critical kernel logging messages, which drew over the TUI installer&#039;s interface.&lt;br /&gt;
* Keep network configuration detected via DHCP in the GUI Installer, even when not clicking &amp;lt;code&amp;gt;Next&amp;lt;/code&amp;gt; first ([https://bugzilla.proxmox.com/show_bug.cgi?id=2502 issue 2502]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.2-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel 6.8 ====&lt;br /&gt;
&lt;br /&gt;
The Proxmox Mail Gateway 8.2 releases will install and use the 6.8 Linux kernel by default. A major kernel version change can have a few hardware-specific side effects. The kernel version 6.8 has been the default kernel for Proxmox Mail Gateway installations since April 2024, so most existing installations should already be using it.&lt;br /&gt;
&lt;br /&gt;
Most issues with new kernel versions do not affect virtual machines and container guests, so virtualized Promox Mail Gateway installations are not affected.&lt;br /&gt;
&lt;br /&gt;
===== Kernel: Change in Network Interface Names =====&lt;br /&gt;
&lt;br /&gt;
Upgrading kernels always carries the risk of changes in network interface names, which can lead to invalid network configurations after a reboot.&lt;br /&gt;
In this case, you must either update the network configuration to reflect the name changes, or pin the network interface to its name beforehand.&lt;br /&gt;
&lt;br /&gt;
See [https://pve.proxmox.com/pve-docs/pve-admin-guide.html#network_override_device_names the Proxmox VE reference documentation] on how to pin the interface names based on MAC Addresses.&lt;br /&gt;
&lt;br /&gt;
Currently, the following models are known to be affected at higher rates:&lt;br /&gt;
* Models using &amp;lt;code&amp;gt;i40e&amp;lt;/code&amp;gt;. Their names can get an additional port suffix like &amp;lt;code&amp;gt;p0&amp;lt;/code&amp;gt; added.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.1 ==&lt;br /&gt;
&#039;&#039;&#039;Released 29. February 2024&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.5)&lt;br /&gt;
* SpamAssassin 4.0.0 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.3&lt;br /&gt;
* PostgreSQL 15.6&lt;br /&gt;
* Latest 6.5 Kernel as new stable default&lt;br /&gt;
* ZFS 2.2.2&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Extend the rule system to allow selection of the &amp;lt;strong&amp;gt;match-if mode&amp;lt;/strong&amp;gt; for entries in What/Who/When Objects, and multiple Objects in Rules, providing flexible control over whether all, any, none, or some but not all must match.&lt;br /&gt;
*: See the [[#8.1-rule-system-enhancements|enhancements in the rule system section]] for more details and examples.&lt;br /&gt;
* Optional DKIM signing based on the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header (also known as &amp;lt;code&amp;gt;RFC5322.From&amp;lt;/code&amp;gt;), instead of the Envelope sender (also known as &amp;lt;code&amp;gt;RFC5321.From&amp;lt;/code&amp;gt;) ([https://bugzilla.proxmox.com/show_bug.cgi?id=2971 issue 2971]).&lt;br /&gt;
&lt;br /&gt;
* Secure Boot support.&lt;br /&gt;
*: Proxmox Mail Gateway now includes a signed shim bootloader trusted by most hardware&#039;s UEFI implementations. All necessary components of the boot chain are available in variants signed by Proxmox.&lt;br /&gt;
*: The Proxmox Mail Gateway installer can now be run in environments where Secure Boot is required and enabled, and the resulting installation can boot in such environments.&lt;br /&gt;
*: Existing Proxmox Mail Gateway installations can be switched over to Secure Boot without reinstallation by executing some manual steps, see the [https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysboot_secure_boot documentation] for details.&lt;br /&gt;
*: How to use custom secure boot keys has been documented in the [https://pve.proxmox.com/wiki/Secure_Boot_Setup Secure Boot Setup] page in the Proxmox VE wiki. For using DKMS modules with secure boot see the [https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysboot_secure_boot reference documentation].&lt;br /&gt;
&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [https://pmg.proxmox.com/wiki/index.php/Upgrade_from_7_to_8 Upgrade from 7 to 8]&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.1-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* Make the rule system more flexible by introducing a match-if-mode for objects and groups. The match-if-mode of an object (or group) determines whether any, all, not all or none of its children must match for the whole object (or group) to match. This allows to implement complex rules, for example:&lt;br /&gt;
** Exclude certain recipients from a rule, while still considering all later rules for them.&lt;br /&gt;
** Treat emails differently if they contain particular attachments and are detected as spam or contain a virus.&lt;br /&gt;
** Match attachments with a filename ending in &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;, but being detected as executable by the content-type filter.&lt;br /&gt;
** Matching a mail sent from one address and containing a phrase in the subject.&lt;br /&gt;
* Disclaimers can now be added on top of the message, instead of only at the bottom ([https://bugzilla.proxmox.com/show_bug.cgi?id=2606 issue 2606]).&lt;br /&gt;
* The separator &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; for disclaimers can now be optionally omitted ([https://bugzilla.proxmox.com/show_bug.cgi?id=2430 issue 2430]).&lt;br /&gt;
* Adapt the number of parallel worker processes for the SMTP filter to increased memory requirements and availability.&lt;br /&gt;
* Make the timeout for processing a mail consistent between before- and after-queue filtering, and make it configurable.&lt;br /&gt;
* Prevent duplicate mail delivery when filtering runs into a timeout.&lt;br /&gt;
* Fix the synchronization of the user wants- and blocklists if the last address is removed for a user ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* Further improve input validation for regular expressions in the rule system ([https://bugzilla.proxmox.com/show_bug.cgi?id=4811 issue 4811]).&lt;br /&gt;
* Fix an error in the collection of virus occurrence statistics.&lt;br /&gt;
* The spam report e-mails now correctly handle addresses with characters that need to be escaped for the API and GUI.&lt;br /&gt;
* Display the descriptions for rules from the advanced KAM ruleset in the spam info grid in the quarantine view.&lt;br /&gt;
* Improve the output of &amp;lt;code&amp;gt;pmgdb dump&amp;lt;/code&amp;gt; used for gathering information about the ruleset:&lt;br /&gt;
** Add information about the type of What Objects&lt;br /&gt;
** Add optional &amp;lt;code&amp;gt;--rules&amp;lt;/code&amp;gt; parameter to restrict output to rules that are active or inactive&lt;br /&gt;
** Visually emphasize whether a rule is active&lt;br /&gt;
** Remove unnecessary filler words from output&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
&lt;br /&gt;
* Make it easier to manage large deployments by adding a filter- and search-box for ([https://bugzilla.proxmox.com/show_bug.cgi?id=4510 issue 4510]):&lt;br /&gt;
*: Relay Domains&lt;br /&gt;
*: Transport&lt;br /&gt;
*: Networks&lt;br /&gt;
*: Objects in the rule system&lt;br /&gt;
* Add icons to the backup destination panel for improved UX.&lt;br /&gt;
* Fix an issue where the OK button would stay disabled when editing an ACME DNS challenge plugin ([https://bugzilla.proxmox.com/show_bug.cgi?id=4531 issue 4531]).&lt;br /&gt;
* Fix TLS 1.3-only configuration for the API proxy server ([https://bugzilla.proxmox.com/show_bug.cgi?id=4859 issue 4859]).&lt;br /&gt;
* Fix spelling errors in the GUI and improve gettext instances so that they can be better translated.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Croatian (NEW!)&lt;br /&gt;
** Georgian (NEW!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Catalan&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Polish&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
** The language code for Korean was corrected from &amp;lt;code&amp;gt;kr&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ko&amp;lt;/code&amp;gt; in alignment with ISO 639-1, while maintaining a symbolic link for backward compatibility for now.&lt;br /&gt;
** Several remaining occurrences of the &amp;lt;code&amp;gt;GiB&amp;lt;/code&amp;gt; unit in the GUI can now be translated ([https://bugzilla.proxmox.com/show_bug.cgi?id=4551 issue 4551]).&lt;br /&gt;
&lt;br /&gt;
==== Access Control ====&lt;br /&gt;
&lt;br /&gt;
* Allow usernames shorter than 4 characters, in accordance with Proxmox VE and Proxmox Backup Server ([https://bugzilla.proxmox.com/show_bug.cgi?id=4818 issue 4818])&lt;br /&gt;
&lt;br /&gt;
==== Notable bug fixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Harden the Postfix configuration for the external port to address the [https://www.postfix.org/smtp-smuggling.html SMTP Smuggling] security issue, by implementing all recommendations from upstream.&lt;br /&gt;
* Switch the default time-stamp format expected by the Tracking Center to the RFC3339 based information in the logs in Proxmox Mail Gateway 8.0 and newer. While this was initially meant as a small clean-up a few issues around the switch between DST and regular time were fixed with the changes.&lt;br /&gt;
* Secure Boot support.&lt;br /&gt;
*: Proxmox Mail Gateway now ships a shim bootloader signed by a CA trusted by most hardware&#039;s UEFI implementation. In addition, it ships variants of the GRUB bootloader, MOK utilities and kernel images signed by Proxmox and trusted by the shim bootloader.&lt;br /&gt;
*: New installation will support Secure Boot out of the box if it is enabled.&lt;br /&gt;
*: Existing installations can be adapted to Secure Boot by installing optional packages, and possibly reformatting and re-initializing the ESP(s), without the need for a complete reinstallation. See [https://pve.proxmox.com/wiki/Secure_Boot_Setup the wiki article for more details].&lt;br /&gt;
* Fix cluster setups recreated after restoring a backup with statistics ([https://bugzilla.proxmox.com/show_bug.cgi?id=5189 issue 5189]).&lt;br /&gt;
* The kernel shipped by Proxmox is shared for all products. This is now reflected in the renaming from &amp;lt;code&amp;gt;pve-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pve-headers&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;proxmox-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;proxmox-headers&amp;lt;/code&amp;gt; respectively in all relevant packages.&lt;br /&gt;
* The new &amp;lt;code&amp;gt;proxmox-default-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;proxmox-default-headers&amp;lt;/code&amp;gt; meta-packages will depend on the currently recommended kernel-series.&lt;br /&gt;
* Many edge-cases encountered during the upgrade from Proxmox Mail Gateway 7.3 to 8 by our user-base are now detected and warned about in the improved &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; checks:&lt;br /&gt;
** Notify when a template was copied to &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; without any modifications, to prevent missing important changes to config files.&lt;br /&gt;
** Warn if [https://github.com/dell/dkms DKMS] modules are detected, as many of them do not upgrade smoothly to the newer kernel versions in Mail Gateway 8.&lt;br /&gt;
** Warn if version 7 of the Mail Gateway system does not have the correct meta-package of &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; installed. The correct meta-package is required to actually upgrade the installed bootloader to the newest version.&lt;br /&gt;
* Support for adding custom ACME enabled CA&#039;s which require authentication through &#039;&#039;&#039;E&#039;&#039;&#039;xternal &#039;&#039;&#039;A&#039;&#039;&#039;ccount &#039;&#039;&#039;B&#039;&#039;&#039;inding (EAB) on the command line ([https://bugzilla.proxmox.com/show_bug.cgi?id=4497 issue 4497]).&lt;br /&gt;
* Fix non-interactive use of the &amp;lt;code&amp;gt;pmgsh&amp;lt;/code&amp;gt; utility ([https://bugzilla.proxmox.com/show_bug.cgi?id=4815 issue 4815]).&lt;br /&gt;
* Improve the parsing of config and system files, used in many places of the code. This fixes an issue with displaying the network interfaces without a correct hostname entry in &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; and aims to prevent similar issues in the future.&lt;br /&gt;
* Prevent cluster synchronization from failing due to a change in fingerprint parsing in OpenSSL.&lt;br /&gt;
* Add support for having a Proxmox Backup Server remote on an alternate port  ([https://bugzilla.proxmox.com/show_bug.cgi?id=4944 issue 4944]).&lt;br /&gt;
* Reduce log severity for periodic informational messages from &amp;lt;code&amp;gt;error&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Changelogs for new package versions shown in the UI are now all gathered with &amp;lt;code&amp;gt;apt changelog&amp;lt;/code&amp;gt;, as this is now supported by the Proxmox repositories.&lt;br /&gt;
* Add information about the configured domains for DKIM signing to the report generated for support cases.&lt;br /&gt;
* The documentation on firmware updates provided by the operating system has been extended and revised, helping administrators to identify if their setup is optimal.&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* The ISO is able to run on Secure Boot enabled machines.&lt;br /&gt;
* The text-based UI got significant improvement based on the feedback received from the first release in Proxmox Mail Gateway 8.0.&lt;br /&gt;
* The current link-state of each network interface is now displayed in the network configuration view, helping in identifying the correct NIC for the management interface ([https://bugzilla.proxmox.com/show_bug.cgi?id=4869 issue 4869]).&lt;br /&gt;
* If provided by the DHCP server, the hostname field is already filled out with the information from the lease.&lt;br /&gt;
* The correct meta-package of &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; is now installed based on the boot mode (&amp;lt;code&amp;gt;grub-pc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;grub-efi-amd64&amp;lt;/code&amp;gt;). This ensures that the bootloader on disk gets updated when there is an upgrade for the &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The text-based UI is now also available over a serial console, for headless systems with a serial port.&lt;br /&gt;
* The root dataset on ZFS installations now uses &amp;lt;code&amp;gt;acltype=posixacl&amp;lt;/code&amp;gt; in line with [https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Bookworm%20Root%20on%20ZFS.html upstream&#039;s recommendation].&lt;br /&gt;
* Kernel parameters passed on the command line during install are now also set in the target system ([https://bugzilla.proxmox.com/show_bug.cgi?id=4747 issue 4747]).&lt;br /&gt;
* Fix the warning that is shown in case the address family (IPv4, IPv6) of the host IP and DNS server do not match.&lt;br /&gt;
* The text-based UI now sets the correct disk-size for the selected disk, instead of limiting the installation to the size of the first disk in the list ([https://bugzilla.proxmox.com/show_bug.cgi?id=4856 issue 4856]).&lt;br /&gt;
* For better UX, the text-based UI now also displays a count-down before automatically rebooting.&lt;br /&gt;
* The screensaver in the graphical installer is now disabled.&lt;br /&gt;
* The graphical installer now displays the units used for disk-based options.&lt;br /&gt;
* The kernel command-line parameter &amp;lt;code&amp;gt;vga788&amp;lt;/code&amp;gt; is now set for both the graphical debug and all text-based UI installation options. This improves compatibility of the installer with certain hardware combinations.&lt;br /&gt;
* Remove the checksum-options of &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fletcher2&amp;lt;/code&amp;gt; for ZFS, for being dangerous and deprecated respectively.&lt;br /&gt;
* Improve the layout in the graphical installer to ensure correct margins and alignment of widgets.&lt;br /&gt;
* Set a timeout for country detection, preventing the installer from hanging at that step ([https://bugzilla.proxmox.com/show_bug.cgi?id=4872 issue 4872]).&lt;br /&gt;
* General improvements for running external commands in the installer backend in order to prevent lockups.&lt;br /&gt;
* Improve validation of hostname length and allowed characters set in the installer ([https://bugzilla.proxmox.com/show_bug.cgi?id=5230 issue 5230]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.1-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
* Some SAS2008 controllers need a workaround to get detected since kernel 6.2, see the [https://forum.proxmox.com/threads/no-sas2008-after-upgrade.129499/page-4#post-607858 forum thread] for details.&lt;br /&gt;
&lt;br /&gt;
* The TPM (Trusted Platform Module) hardware random number generator (RNG) is now disabled on all AMD systems equipped with a firmware-based TPM (fTPM) device. This change was implemented due to such RNGs causing stutters in many systems. Affected systems should switch the RNG source from &amp;lt;code&amp;gt;/dev/hwrng&amp;lt;/code&amp;gt; to an alternative, like &amp;lt;code&amp;gt;/dev/urandom&amp;lt;/code&amp;gt;.&lt;br /&gt;
: Reference: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=554b841d470338a3b1d6335b14ee1cd0c8f5d754 kernel commit &amp;quot;tpm: Disable RNG for all AMD fTPMs&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* Some Dell models, which appear to include all those using a BCM5720 network card, have a compatibility issue with the &amp;lt;code&amp;gt;tg3&amp;lt;/code&amp;gt; driver in the kernel based on version 6.5.11.&lt;br /&gt;
*: From our current understanding 14th Generation Dell Servers (T140, R240, R640,...) are affected, while others (e.g., R630, R620, R610,...) do not seem to be affected. We are currently investigating this issue. In the meantime, we recommend pinning the kernel to version 6.2 on affected hosts.&lt;br /&gt;
*: Some users report that disabling the &amp;lt;code&amp;gt;X2APIC&amp;lt;/code&amp;gt; option in the BIOS resolved this issue as a workaround.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 29. June 2023&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.0)&lt;br /&gt;
* Latest 6.2 Kernel as stable default&lt;br /&gt;
* ZFS 2.1.12&lt;br /&gt;
* SpamAssassin 4.0.0 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.1&lt;br /&gt;
* PostgreSQL 15.3&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New major release based on the great Debian Bookworm.&lt;br /&gt;
&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [[Upgrade from 7 to 8]]&lt;br /&gt;
*: New &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; pre-flight checking script analyzing the system for common misconfigurations and missed steps during the upgrade&lt;br /&gt;
&lt;br /&gt;
* Add new text-based UI mode for the installation ISO, written in Rust using the [https://github.com/gyscos/cursive Cursive] TUI (Text User Interface) library:&lt;br /&gt;
*: You can use the new TUI mode to work around issues with launching the GTK based graphical installer, sometimes observed on both very new and rather old hardware.&lt;br /&gt;
*: The new text mode executes the same code for the actual installation as the existing graphical mode.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
&lt;br /&gt;
* When adding a &amp;quot;Match Field&amp;quot; &#039;&#039;What&#039;&#039; object, check that the provided regular expression is a valid regular expression.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=d86c0aebe276674a8cf03e11f0f2eaf732806963 --&amp;gt;&lt;br /&gt;
* Disable SpamAssassin&#039;s naive-Bayesian-style classifier and the auto-whitelisting plugin by default.&lt;br /&gt;
*: Both features lead to worse detection rates in the Spam Filter in most setups.&lt;br /&gt;
*: Bayes needs manual training and thorough consideration, as well as continuous maintenance.&lt;br /&gt;
*: Existing setups are kept without change on upgrade.&lt;br /&gt;
*: For new setups the old behavior can be enabled through the GUI.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=f6ab3f7837946b5d11e0610b60057da079d0c0bc --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* Improved Dark color theme:&lt;br /&gt;
*: The Dark color theme, introduced in Proxmox Mail Gateway 7.3, received a lot of positive feedback from our community, which resulted in further improvements.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Ukrainian (NEW)&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=e0dd5e6989adcd4a5d796453707371ac82a1b4a3 --&amp;gt;&lt;br /&gt;
** Japanese&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=326feddf629345018f165216decaff2b5fb3bad2 --&amp;gt;&lt;br /&gt;
** Simplified Chinese &lt;br /&gt;
    &amp;lt;!--  https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=e5fb5ffc3fb71ea0e4aa9323b4dbfef3d2dbf998 --&amp;gt;&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
    &amp;lt;!--  https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=f133ff0de42bf852f5cfc32b20458f37790b82ef --&amp;gt;&lt;br /&gt;
** The size units (Bytes, KB, MiB,...) are now passed through the translation framework as well, allowing localized variants (e.g., for French).&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-widget-toolkit.git;a=commit;h=01e64778ad112504d1de155c442571f54da46a45 --&amp;gt;&lt;br /&gt;
** The language selection is now localized and displayed in the currently selected language&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=adf33b65568046ba74869d6f980bc1fb00ebf845 --&amp;gt;&lt;br /&gt;
* Disable advanced statistic filters by default, as their behavior may not be immediately clear without consulting the documentation first.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=64e64a212899721c4b0011c08557b65d8d83c9ac --&amp;gt;&lt;br /&gt;
* HTML-encode rule names before rendering as additional hardening against XSS.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-gui.git;a=commit;h=df2a647a7263efb667d801c3547883bcc72951df --&amp;gt;&lt;br /&gt;
* The tracking center can now parse the new syslog format for dates that was introduced in Debian Bookworm.&lt;br /&gt;
*: The logging format of &amp;lt;code&amp;gt;rsyslog&amp;lt;/code&amp;gt; was changed to include Timezone information (RFC3339) in the logs, making the Tracking Center more robust across DST changes and year changes.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-log-tracker.git;a=commit;h=34c921adddf2ba7d267de0365828a83a909c9698 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Access control ====&lt;br /&gt;
* Add TFA/TOTP lockout to protect against an attacker who has obtained the user password and attempts to guess the second factor:&lt;br /&gt;
*: If TFA fails too many times in a row, this user account is locked out of TFA for an hour. If TOTP fails too many times in a row, TOTP is disabled for the user account. Using a recovery key will unlock a user account. &amp;lt;!-- NOT YET BUMPED --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Add new text-based UI mode for the installation ISO, written in Rust using the [https://github.com/gyscos/cursive Cursive] TUI (Text User Interface) library:&lt;br /&gt;
*: You can use the new TUI mode to work around issues with launching the GTK based graphical installer, sometimes observed on both very new and rather old hardware.&lt;br /&gt;
*: The new text mode executes the same code for the actual installation as the existing graphical mode.&lt;br /&gt;
* The version of BusyBox shipped with the ISO was updated to version 1.36.1.&lt;br /&gt;
* Detection of unreasonable system time.&lt;br /&gt;
: If the system time is older than the time the installer was created, the system notifies the user with a warning.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pve-installer.git;a=commit;h=d0817324af4f25119ae5284720088198dd7985e3 --&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ethtool&amp;lt;/code&amp;gt; is now shipped with the ISO and installed on all systems.&lt;br /&gt;
* &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; is provided by its own package instead of &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; in Debian Bookworm and is installed with the new ISO.&lt;br /&gt;
* The installation ISO now ships the dependencies for extracting text from attachments using SpamAssassin 4, eliminating the need to install the packages manually.&lt;br /&gt;
&lt;br /&gt;
==== Notable bugfixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Add a &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; CLI tool to assist in upgrading from Proxmox Mail Gateway 7.3 to 8.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=16fe9a1e3d25021b4c4d33e1e9ba03e06c4d6ab8 --&amp;gt;&lt;br /&gt;
* Fix an issue where an invalid regular expression in a &amp;quot;Match Field&amp;quot; &#039;&#039;What&#039;&#039; object would cause &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; to exit and restart, possibly leading to wrongly denied mails. Instead, &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; now logs a warning if it encounters an invalid regular expression.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=d86c0aebe276674a8cf03e11f0f2eaf732806963 --&amp;gt;&lt;br /&gt;
* During package installation or upgrade, ignore certain transient or obvious errors to avoid leaving the package in a broken state.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=e53e413463d8a20d67037b7dbdabebc4ded294b5 --&amp;gt;&lt;br /&gt;
* Fix an issue where the Proxmox Mail Gateway system report would wrongly indicate a DNS misconfiguration.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=c7fd30ebab18e30aa55301640d5f4dec422b3a94 --&amp;gt;&lt;br /&gt;
* When authenticating via PAM, pass the &amp;lt;code&amp;gt;PAM_RHOST&amp;lt;/code&amp;gt; item. With this, it is possible to manually configure PAM such that certain users (for example root@pam) can only log in from certain hosts.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=1e0ca2d2d8ec9d32df73f7637fcd857bde20f49b --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
* The advanced statistics filter is now disabled by default.&lt;br /&gt;
*: To avoid changing the behavior of a Proxmox Mail Gateway 7.3 instance on upgrade, the upgrade process will set the &amp;lt;code&amp;gt;advfilter&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; if no explicit value is set.&lt;br /&gt;
&lt;br /&gt;
* SpamAssassin&#039;s naive-Bayesian-style classifier and the auto-whitelisting plugin are now disabled by default.&lt;br /&gt;
*:To avoid changing the behavior of a Proxmox Mail Gateway 7.3 instance on upgrade, the upgrade process will set each of the &amp;lt;code&amp;gt;use_awl&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;use_bayes&amp;lt;/code&amp;gt; options to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; if no explicit value is set.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.3 ==&lt;br /&gt;
&#039;&#039;&#039;Released 28. March 2023&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bullseye (11.6)&lt;br /&gt;
* Latest 5.15 Kernel as stable default&lt;br /&gt;
* Newer 6.2 kernel as opt-in&lt;br /&gt;
* ZFS 2.1.9&lt;br /&gt;
* SpamAssassin 4.0.0 (new major version)&lt;br /&gt;
* PostgreSQL 13.10&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Proxmox Mail Gateway now provides a dark theme for the administrative and quarantine web interfaces.&lt;br /&gt;
* SpamAssassin 4.0.0 was integrated, along with many of its new capabilities, like (optionally) scanning document contents (docx, pdf, images,...), or resolving URLs from url-shorteners.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* New major release SpamAssassin 4.0.0, with many new features: &lt;br /&gt;
** Detection of spam inside of attachments. This is implemented for the file types &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.odt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.docx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;, as well as images (through OCR).&lt;br /&gt;
*:: Attachment scanning can be enabled using the Web UI (&amp;lt;code&amp;gt;Spam Detector&amp;lt;/code&amp;gt; -&amp;gt; &amp;lt;code&amp;gt;Options&amp;lt;/code&amp;gt;), which sets the &amp;lt;code&amp;gt;extract_text&amp;lt;/code&amp;gt; option in the &amp;lt;code&amp;gt;spam&amp;lt;/code&amp;gt; section of &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*:: The dependencies required for attachment scanning are marked as optional, but recommended dependency for the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package.&lt;br /&gt;
*:: This means that on systems that did not change the apt preference the new dependencies should be pulled in automatically on upgrade, otherwise you might need to manually install them.&lt;br /&gt;
*: Note that attachment scanning, and OCR in particular, increases CPU time spent per mail. Depending on email volume and available CPU power, you may see a significant increase in load.&lt;br /&gt;
** Follow and analyze URL-shortener links.&lt;br /&gt;
** Improved support for using information from DMARC-policies.&lt;br /&gt;
** Improved handling of internationalized (IDN) domain names.&lt;br /&gt;
* Adaptation of the SpamAssassin integration for version 4.0.0:&lt;br /&gt;
: The SpamAssassin configuration files shipped with the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package were adapted to the new features.&lt;br /&gt;
: &amp;lt;code&amp;gt;extract_text&amp;lt;/code&amp;gt; was added as new option for the spam detector to disable content scanning, while most other new options are triggered with the &amp;lt;code&amp;gt;use_rbl&amp;lt;/code&amp;gt; option.&lt;br /&gt;
: On deployments with modified templates, the upgrade process will ask how changes should be merged. This provides an opportunity to re-evaluate which modifications are still needed.&lt;br /&gt;
* Support enforcing TLS-only connections for mails from certain domains:&lt;br /&gt;
: It is now possible to enforce TLS encryption for inbound mail, complementing the already-present TLS policy functionality for outbound mail.&lt;br /&gt;
* Improved handling of SMTPUTF8:&lt;br /&gt;
: Based on the user feedback on UTF-8 support for the rule system introduced in Proxmox Mail Gateway 7.2, it is now possible to disable SMTPUTF8 through the API and GUI.&lt;br /&gt;
: The detection for SMTPUTF8 was aligned with the implementation in &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The What objects &amp;quot;Match Archive Filename&amp;quot; now also use the optional filename from the GZIP header for matching.&lt;br /&gt;
* Support trusted network entries with host bits set in the CIDR:&lt;br /&gt;
: Quite a few deployments did use a CIDR with host-bits set, for example 192.0.2.5/24 instead of 192.0.2.0/24. This is now translated internally and handled correctly.&lt;br /&gt;
* Ordering of multiple rules with the same priority is now stable, despite not being a recommended setup.&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
&lt;br /&gt;
* Add a fully-integrated &amp;quot;Proxmox Dark&amp;quot; color theme variant of the long-time Crisp light theme.&lt;br /&gt;
: By default, the &amp;lt;code&amp;gt;prefers-color-scheme&amp;lt;/code&amp;gt; media query from the Browser/OS will be used to decide the default color scheme.&lt;br /&gt;
: Users can override the theme via a newly added &amp;lt;code&amp;gt;Color Theme&amp;lt;/code&amp;gt; menu in the user menu.&lt;br /&gt;
* Add &amp;quot;Proxmox Dark&amp;quot; color theme to the Proxmox Mail Gateway reference documentation.&lt;br /&gt;
: The &amp;lt;code&amp;gt;prefers-color-scheme&amp;lt;/code&amp;gt; media query from the Browser/OS will be used to decide if the light or dark color scheme should be used.&lt;br /&gt;
: The new dark theme is also available in the [https://pmg.proxmox.com/pmg-docs/api-viewer/index.html#/nodes/{node}/version Proxmox Mail Gateway API Viewer].&lt;br /&gt;
* Task logs can now be downloaded directly as text files for further inspection.&lt;br /&gt;
* The language chooser now displays, for each available language, both its native name as well as its name translated to the currently active language.&lt;br /&gt;
* HTML-encode API results before rendering as additional hardening against XSS.&lt;br /&gt;
* Automatically redirect HTTP requests to HTTPS for convenience.&lt;br /&gt;
: This avoids &amp;quot;Connection reset&amp;quot; browser errors that can be confusing, especially after setting up a Proxmox Mail Gateway host the first time.&lt;br /&gt;
* Invalid entries in advanced fields now cause the advanced panel to unfold, providing direct feedback.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Arabic&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Russian&lt;br /&gt;
** Slovenian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
&lt;br /&gt;
==== Notable General Improvements and Bug Fixes ====&lt;br /&gt;
* The documentation has now a chapter describing the statistics part of the GUI and API.&lt;br /&gt;
* Mail delivery from quarantine uses new code for sending locally generated mail, with the following improvements:&lt;br /&gt;
** support for IPv6-only deployments and delivery status notifications.&lt;br /&gt;
** Correct decoding of addresses containing UTF-8.&lt;br /&gt;
* The cleanup before restoring the configuration from a backup was improved, preventing issues when restoring without rebooting the system.&lt;br /&gt;
* Logging of errors when sending locally generated mail was improved.&lt;br /&gt;
* Errors in files related to TLS-policy are now also reported in the syslog.&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;pmgdb dump&amp;lt;/code&amp;gt; is now able to handle UTF-8 characters in rule names, object names, and comments.&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* the version of BusyBox shipped with the ISO was updated to version 1.36.0.&lt;br /&gt;
* The EFI System Partition (ESP) defaults to 1 GiB of size if the root disk partition (&amp;lt;code&amp;gt;hdsize&amp;lt;/code&amp;gt;) is bigger than 100 GB.&lt;br /&gt;
* UTC can now be selected as timezone during installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.3-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
* The ISO does not ship the optional dependencies for extracting text from attachments - If you installed from the ISO and want to use the feature, you can simply install them manually&lt;br /&gt;
 apt install antiword docx2txt odt2txt poppler-utils tesseract-ocr unrtf&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.2 ==&lt;br /&gt;
&#039;&#039;&#039;Released 30. November 2022&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bullseye (11.5)&lt;br /&gt;
* Latest 5.15 Kernel as stable default (5.15.74)&lt;br /&gt;
* Newer 5.19 kernel as opt-in&lt;br /&gt;
* ZFS 2.1.6&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* PostgreSQL 13.8&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the Rule system:&lt;br /&gt;
** Improved handling of international emails&lt;br /&gt;
*** Support for UTF-8 characters in the rule system (e.g. matching non-ASCII subjects).&lt;br /&gt;
*** Better handling of [https://www.rfc-editor.org/rfc/rfc6531 SMTPUTF8 emails] (the smtp-dialogue already contains non-ASCII data, the headers contain UTF-8 data without MIME encoding).&lt;br /&gt;
** Proper encoding for template-variable information in the Notifications and Modify Field actions.&lt;br /&gt;
** MatchField now matches all occurrences of a header - not only the first one - especially relevant for &amp;lt;code&amp;gt;Received&amp;lt;/code&amp;gt; headers.&lt;br /&gt;
** Deprecated the &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt; Actions.&lt;br /&gt;
*: While they were present in the code of Proxmox Mail Gateway, they were never exposed in the GUI or API.&lt;br /&gt;
*: All three have now been deprecated and will be removed with version 8.0.&lt;br /&gt;
&lt;br /&gt;
* Improved Quarantine UX:&lt;br /&gt;
** Quarantine interface for Administrators: many of the recent features for end-users in the Spam Quarantine have been ported to the administrator view:&lt;br /&gt;
*** Allow selection of multiple mails.&lt;br /&gt;
*** Context menu in the mail-listing.&lt;br /&gt;
*** Display the Receiver information in the Attachment and Virus quarantines and the Mail Info widget.&lt;br /&gt;
** Augmented the information visualization in the Spam information grid.&lt;br /&gt;
*** The weight (number of points) and the type of impact (positive or negative) of SpamAssassin rules is now shown with colors and font-weights to make them easier to grasp. &lt;br /&gt;
*** The rule IDs and scores are using a monospaced font for better comparison of values.&lt;br /&gt;
** Colorized &amp;lt;code&amp;gt;Deliver&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; actions improves intuitive handling of the common actions.&lt;br /&gt;
** Display of attachments in the Spam and Virus quarantines (for a more complete overview of the mail).&lt;br /&gt;
** Attachment and Virus quarantines can now optionally be filtered by Receiver - especially helpful in larger deployments.&lt;br /&gt;
** Display of descriptions for locally defined SpamAssassin rules.&lt;br /&gt;
** Fix displaying the quarantine interface on narrow screens: Part of the action buttons were cut off and not reachable through scrolling.&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI):&lt;br /&gt;
** The Postfix queue interface now displays the mail&#039;s headers in a decoded way - so that you see it as in your mail user agent.&lt;br /&gt;
** The Statistic time selector now does not show non-existent day/month combinations (e.g. the 31. Day of February).&lt;br /&gt;
** Better spacing of the Field labels in the rule object edit windows.&lt;br /&gt;
** Improved translations, among others:&lt;br /&gt;
*** Dutch&lt;br /&gt;
*** German&lt;br /&gt;
*** Italian&lt;br /&gt;
*** Polish&lt;br /&gt;
*** Traditional Chinese&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* Support Proxmox Offline Mirroring &amp;amp; Subscription Handling&lt;br /&gt;
** Proxmox Offline Mirror: The tool supports subscriptions and repository mirrors for air-gapped systems. The newly added [https://pom.proxmox.com proxmox-offline-mirror] utility can now be used to keep Proxmox Mail Gateway hosts, without access to the public internet up-to-date and running with a valid subscription.&lt;br /&gt;
&lt;br /&gt;
* Notable General Improvements and Bugfixes:&lt;br /&gt;
** Add IP networks uniquely to template variables (&amp;lt;code&amp;gt;postfix.mynetworks&amp;lt;/code&amp;gt;)&lt;br /&gt;
*: If you had multiple entries in your transport directory, all pointing to the same host, they were added multiple times to the variable used in the configuration system.&lt;br /&gt;
** Support for Proxmox Backup Server Namespaces.&lt;br /&gt;
** Spam report emails now correctly display the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header, even if it contains a comma (e.g. &amp;lt;code&amp;gt;&amp;quot;Lastname, Firstname&amp;quot; &amp;lt;firstname.lastname@domain.example&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
** The left-over config file &amp;lt;code&amp;gt;/etc/apt/apt.conf.d/75pmgconf&amp;lt;/code&amp;gt; was removed, enabling the automatic removal of obsolete kernel packages, which can take up significant amounts of space.&lt;br /&gt;
** SpamAssassin updates now handle updates to multiple channels correctly on the first run.&lt;br /&gt;
** Improved parsing of email attributes from LDAP profiles.&lt;br /&gt;
** Changing the directory to &#039;/&#039; before running &amp;lt;code&amp;gt;psql&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;postgres&amp;lt;/code&amp;gt;user - preventing the printing of harmless but confusing warnings with various Proxmox Mail Gateway CLI utilities.&lt;br /&gt;
** Support disabling TLS 1.2 and configuring TLS 1.3 ciphers for &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; - following the change for &amp;lt;code&amp;gt;pveproxy&amp;lt;/code&amp;gt; in Proxmox VE.&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
== Proxmox Mail Gateway 7.1 ==&lt;br /&gt;
&#039;&#039;&#039;Released 30. November 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Bullseye (11.1)&lt;br /&gt;
* Kernel 5.13&lt;br /&gt;
* ZFS 2.1&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* PostgreSQL 13.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI)&lt;br /&gt;
** Improved configuration editing of LDAP backends: Changes can now be applied without having to specify a password.&lt;br /&gt;
** The APT repository configuration, rather than being restricted to &#039;root&#039;, is now visible and editable by all users with &#039;Administrator&#039; privileges.&lt;br /&gt;
** Improved translations, among others:&lt;br /&gt;
*** Arabic&lt;br /&gt;
*** Basque&lt;br /&gt;
*** Brazilian Portuguese&lt;br /&gt;
*** French&lt;br /&gt;
*** German&lt;br /&gt;
*** Simplified Chinese&lt;br /&gt;
*** Traditional Chinese&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* Two-Factor Authentication&lt;br /&gt;
** Two-factor authentication (TFA) for the web interface. Shares the TFA implementation from Proxmox Backup Server, written in rust.&lt;br /&gt;
** Support for multiple types of second factors:&lt;br /&gt;
*** WebAuthn, which supports a wide range of security devices, like hardware keys or trusted platform modules.&lt;br /&gt;
*** Time-based One-Time Password (TOTP), a short code derived from a shared secret and the current time, it changes every 30 seconds. &lt;br /&gt;
*** Single use Recovery Keys.&lt;br /&gt;
&lt;br /&gt;
* Backend and API&lt;br /&gt;
** Improved support for setups using DHCP for their network configuration:&lt;br /&gt;
*: While email still requires working DNS records, you can now manage and configure the IP of your Proxmox Mail Gateway in your DHCP configuration.&lt;br /&gt;
** When adding a new entry to a Who object, a duplicate check is performed before saving.&lt;br /&gt;
** Better handling of trailing dot in domain-names:&lt;br /&gt;
*: Proxmox Mail Gateway uses the first search domain from &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; as domain name - it can now handle entries with a trailing dot.&lt;br /&gt;
** Delivery status notification (DSN, RFC 3461) support for outbound email with enabled before-queue filtering.&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 15. July 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Bullseye (11)&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* Kernel 5.11&lt;br /&gt;
* PostgreSQL 13&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI)&lt;br /&gt;
** Make dashboard status panel more detailed, showing, among other things, uptime, kernel version, CPU info and a high level repository status overview.&lt;br /&gt;
** New APT repository management panel in the &amp;lt;code&amp;gt;Administration&amp;lt;/code&amp;gt; tab shows an in-depth status and a list of all configured repositories.&lt;br /&gt;
**: Basic repository management, for example, activating or deactivating a repository, is also supported.&lt;br /&gt;
** Updated ExtJS JavaScript framework to latest GPL release 7.0&lt;br /&gt;
** Added advanced task-log filtering&lt;br /&gt;
** Improved translations, including:&lt;br /&gt;
*** Arabic&lt;br /&gt;
*** French&lt;br /&gt;
*** German&lt;br /&gt;
*** Japanese&lt;br /&gt;
*** Polish&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* ACME/Let&#039;s Encrypt&lt;br /&gt;
** Support the use of wildcard domains with the DNS plugins&lt;br /&gt;
** API: nodeconfig: validate ACME config before writing&lt;br /&gt;
&lt;br /&gt;
* API&lt;br /&gt;
** pmgproxy: allow setting LISTEN_IP parameter&lt;br /&gt;
** The &amp;quot;Authentication mode&amp;quot; setting of &amp;lt;code&amp;gt;LDAP&amp;lt;/code&amp;gt; for the quarantine interface no longer contains the ticket-link in the report-mails - thus, quarantine users need to provide their LDAP credentials to access the quarantine.&lt;br /&gt;
&lt;br /&gt;
* Installer:&lt;br /&gt;
** Rework the installer environment to use &amp;lt;code&amp;gt;switch_root&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;, when transitioning from initrd to the actual installer.&lt;br /&gt;
**: This improves module and firmware loading, and slightly reduces memory usage during installation.&lt;br /&gt;
** Automatically detect HiDPI screens, and increase console font and GUI scaling accordingly. This improves UX for workstations with Proxmox VE (for example, for passthrough).&lt;br /&gt;
** Improve ISO detection:&lt;br /&gt;
*** Support ISOs backed by devices using USB Attached SCSI (UAS), which modern USB3 flash drives often do.&lt;br /&gt;
*** Linearly increase the delay of subsequent scans for a device with an ISO image, bringing the total check time from 20s to 45s. This allows for the detection of very slow devices, while continuing faster in general.&lt;br /&gt;
** Use &amp;lt;code&amp;gt;zstd&amp;lt;/code&amp;gt; compression for the initrd image and the squashfs images.&lt;br /&gt;
** Update to busybox 1.33.1 as the core-utils provider.&lt;br /&gt;
&lt;br /&gt;
* libarchive-perl&lt;br /&gt;
** The perl-bindings to &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; have been updated to match &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; version 3.4.3 (shipped in Debian Bullseye) - the library interface was kept backwards-compatible&lt;br /&gt;
&lt;br /&gt;
* libxdgmime-perl&lt;br /&gt;
** The perl-bindings to [https://gitlab.freedesktop.org/xdg/xdgmime xdgmime] have been updated to match current upstream - the library interface was kept backwards-compatible&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.0-breaking-changes&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Breaking Changes&#039;&#039;&#039;&lt;br /&gt;
* New default bind address for pmgproxy, unifying the default behavior with Proxmox VE and Proxmox Backup Server&lt;br /&gt;
** In making the LISTEN_IP configurable, the daemon now binds to both wildcard addresses (IPv4 &amp;lt;code&amp;gt;0.0.0.0:8006&amp;lt;/code&amp;gt; and IPv6 &amp;lt;code&amp;gt;[::]:8006&amp;lt;/code&amp;gt;) by default.&lt;br /&gt;
*: Should you wish to prevent it from listening on IPv6, simply configure the IPv4 wildcard as LISTEN_IP in &amp;lt;code&amp;gt;/etc/default/pmgproxy&amp;lt;/code&amp;gt;:&lt;br /&gt;
*: &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Additionally, the logged IP address format changed for IPv4 in pmgproxy&#039;s access log (&amp;lt;code&amp;gt;/var/log/pmgproxy/pmgproxy.log&amp;lt;/code&amp;gt;). They are now logged as IPv4-mapped IPv6 addresses. Instead of:&lt;br /&gt;
*: &amp;lt;code&amp;gt;192.0.2.1- root@pam [01/06/2021:01:19:03 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*: the line now looks like:&lt;br /&gt;
*: &amp;lt;code&amp;gt;::ffff:192.0.2.1- root@pam [01/06/2021:01:19:03 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*:If you want to restore the old logging format, also set &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ClamAV has [https://blog.clamav.net/2021/04/are-you-still-attempting-to-download.html deprecated the SafeBrowsing feature]:&lt;br /&gt;
** These options have been removed from the shipped &amp;lt;code&amp;gt;freshclam.conf.in&amp;lt;/code&amp;gt; template.&lt;br /&gt;
** The &amp;lt;code&amp;gt;safebrowsing&amp;lt;/code&amp;gt; config key in &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; is currently ignored and will be dropped at some point in the future.&lt;br /&gt;
&lt;br /&gt;
* Changes to the database layout:&lt;br /&gt;
** The &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;cgreylist&amp;lt;/code&amp;gt; table, which has not been used since Proxmox Mailgateway 6.2, has been dropped from the schema and will be dropped from existing databases during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* API deprecations, moves and removals&lt;br /&gt;
** The &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; parameter of the &amp;lt;code&amp;gt;/nodes/{node}/termproxy&amp;lt;/code&amp;gt; API method has been replaced by providing &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
** The &amp;lt;code&amp;gt;domain&amp;lt;/code&amp;gt; parameter of the &amp;lt;code&amp;gt;/config/tlspolicy&amp;lt;/code&amp;gt; API method has been replaced by the &amp;lt;code&amp;gt;destination&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
** The &amp;lt;code&amp;gt;/quarantine/whitelist/{address}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/quarantine/blacklist/{address}&amp;lt;/code&amp;gt; API methods, that take the address as part of the path, have been deprecated in favor of explicitly providing the parameter in the request to &amp;lt;code&amp;gt;/quarantine/whitelist&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/quarantine/blacklist&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
** The API methods for detailed statistics per e-mail address, which take the address as part of the path (&amp;lt;code&amp;gt;/statistics/contact/{contact}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/statistics/sender/{sender}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/statistics/receiver/{receiver}&amp;lt;/code&amp;gt; have been deprecated in favor of &amp;lt;code&amp;gt;/statistics/detail&amp;lt;/code&amp;gt;, which takes the address as an explicit parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Known Issues&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Network&#039;&#039;&#039;: Due to the updated systemd version, and for most upgrades, the newer kernel version (5.4 to 5.11), some network interfaces might change upon reboot:&lt;br /&gt;
** Some may change their name. For example, due to newly supported functions, a change from &amp;lt;code&amp;gt;enp33s0f0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;enp33s0f0np0&amp;lt;/code&amp;gt; could occur.&lt;br /&gt;
**: We observed such changes with high-speed Mellanox models.&lt;br /&gt;
** [https://sources.debian.org/src/bridge-utils/1.7-1/debian/NEWS/#L3-L23 Bridge MAC address selection has changed in Debian Bullseye] - it is now generated based on the interface name and the &amp;lt;code&amp;gt;machine-id (5)&amp;lt;/code&amp;gt; of the system.&lt;br /&gt;
**: Note that by default, Proxmox Mail Gateway does not use a Linux Bridge for networking, so most setups are unaffected.&lt;br /&gt;
* &#039;&#039;&#039;Machine-id&#039;&#039;&#039;: Systems installed using the Proxmox Mail Gateway 5.0 to 5.4 ISO may have a non-unique machine-id. These systems will have their machine-id re-generated automatically on upgrade, to avoid a potentially duplicated bridge MAC and other issues.&lt;br /&gt;
: If you do the upgrade remotely, make sure you have a backup method of connecting to the host (for example, IPMI/iKVM, tiny-pilot, another network accessible by a cluster node, or physical access), in case the network used for SSH access becomes unreachable, due to the network failing to come up after a reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.4==&lt;br /&gt;
&#039;&#039;&#039;Released 30. March 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Buster (10.9)&lt;br /&gt;
* SpamAssassin 3.4.5 (with update ruleset)&lt;br /&gt;
* Kernel 5.4.106&lt;br /&gt;
* ACME integration&lt;br /&gt;
** Proxmox Mail Gateway now offers full integration of the ACME protocol via the GUI, enabling administrators to create valid and trusted certificates for their domains with the Let&#039;s Encrypt certificate authority, in the same way as with Proxmox VE.&lt;br /&gt;
** Full support for the &amp;lt;code&amp;gt;http-01&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;dns-01&amp;lt;/code&amp;gt; challenges, with all plugins from [https://github.com/acmesh-official/acme.sh acme.sh].&lt;br /&gt;
** Easily configurable from the GUI.&lt;br /&gt;
* General Certificate Management via the GUI&lt;br /&gt;
** It is now possible to upload custom certificates from the web interface, or set up a cluster-wide ACME account to automatically get and renew certificates from an ACME provider.&lt;br /&gt;
* Support for external SpamAssassin update channels (regular automated updates).&lt;br /&gt;
** By providing a short configuration file containing a SpamAssassin rule channel&#039;s URL and GPG key, Proxmox Mail Gateway will now fetch verified updates from that channel, along with the updates from updates.spamassassin.org.&lt;br /&gt;
** The KAM ruleset channel is now available, and a suitable configuration file is shipped with &amp;lt;code&amp;gt;proxmox-spamassassin&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improved Quarantine Management&lt;br /&gt;
** The admin view of the Spam Quarantine can now display quarantined mail of all users at once.&lt;br /&gt;
** All Quarantine views (admin and user) allow you to filter for subject or sender.&lt;br /&gt;
** The spam quarantine can now process huge amounts of mails at once (&amp;gt; 3200).&lt;br /&gt;
* TLS-logging improvements to the Tracking Center&lt;br /&gt;
** The Tracking Center now shows when an outbound connection is established over TLS.&lt;br /&gt;
* Enhancements to the Integration of Proxmox Backup Server&lt;br /&gt;
** It is now possible to get notified about the result of a scheduled backup to a configured Proxmox Backup Server Remote.&lt;br /&gt;
** Inclusion of the (potentially large) statistics database is now configurable per Remote.&lt;br /&gt;
* Notable Bugfixes:&lt;br /&gt;
** Support for &#039;/&#039; in the local part of an e-mail address (quarantine and statistics view).&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.3==&lt;br /&gt;
&#039;&#039;&#039;Released 19. November 2020&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.6)&lt;br /&gt;
* Updated SpamAssassin rules&lt;br /&gt;
* Kernel 5.4.73&lt;br /&gt;
* Proxmox Backup Server Integration&amp;lt;br/&amp;gt;Proxmox Mail Gateway is fully supported by the new Proxmox Backup Server 1.0, released on November 11, 2020:&lt;br /&gt;
** Backing up to multiple remote backup servers: You can define multiple remote instances of Proxmox Backup Server to store backups on. In case of a large-scale disaster, they can be quickly restored.&lt;br /&gt;
** Scheduled Backups: You can schedule regular backups via the GUI, which will then be automatically triggered by a systemd-timer unit. This removes the need for manual backup creation and individual, scripted solutions.&lt;br /&gt;
* Quarantine Link via login-page&amp;lt;br /&amp;gt;Users can request mails containing a link to their quarantineview, if enabled by the Admin. This enables users to edit their individual blocklists, even if no mails are in their quarantine. Until now this was only possible for sites using LDAP.&lt;br /&gt;
* Improvements to the Tracking Center&amp;lt;br /&amp;gt;To further improve user experience in the tracking center, pmg-log-tracker handles certain cases better:&lt;br /&gt;
** The case sensitivity has been removed from the search box.&lt;br /&gt;
** In case the pmg-smtp-filter fails to process emails due to misconfiguration, they are now marked as rejected.&lt;br /&gt;
* Notable Bugfixes:&lt;br /&gt;
** DKIM signing now uses the longest matching domain for the &#039;d=&#039; tag.&lt;br /&gt;
** Mails held in the Attachment Quarantine are assigned a new Message-ID - fixing interoperability with certain downstream servers (for example, MS Exchange), which silently discard messages with duplicate Message-IDs.&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.2==&lt;br /&gt;
&#039;&#039;&#039;Released 28. April 2020&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.3)&lt;br /&gt;
** Proxmox Mail Gateway is based on the latest stable release of Debian 10.3 (Buster).&lt;br /&gt;
* SpamAssassin 3.4.4&lt;br /&gt;
** Proxmox ships the latest upstream release of Apache SpamAssassin with a updated and enhance ruleset (KAM rules added)&lt;br /&gt;
* Kernel 5.4&lt;br /&gt;
** Proxmox Mail Gateway shares the kernel with Proxmox VE and is based on the 5.4 series from Ubuntu 20.04&lt;br /&gt;
* pmg-log-tracker in Rust&lt;br /&gt;
** &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; has been extended and reimplemented in the Rust programming language. &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; is the binary at the core of the Message Tracking Center, providing live searchable and grouped logs in the GUI.&lt;br /&gt;
** The new &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; has support for parsing and grouping logs in before-queue filtering mode.&lt;br /&gt;
** The refresh of the code base of &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; provides an optimized performance and more stability.&lt;br /&gt;
&lt;br /&gt;
* Support for before-queue filtering in the GUI&lt;br /&gt;
** With the added support for displaying before-queue filtering logs in the GUI and fixing some minor glitches in that area, the before-queue filtering can now be comfortably enabled in the GUI.&lt;br /&gt;
&lt;br /&gt;
* Improved IPv6 support&lt;br /&gt;
** The Mail Proxy&#039;s SPF checker also verifies SPF records for those remote mail servers connecting via IPv6. &lt;br /&gt;
** Greylisting support for IPv6 addresses (with variable netmask, defaulting to &#039;/64&#039;) - needs to be explicitly enabled.&lt;br /&gt;
** Who-objects containing IPv6 literal address work now.&lt;br /&gt;
&lt;br /&gt;
* Customizable netmask length for greylist matching&lt;br /&gt;
** Instead of fixing a greylist network to a &#039;/24&#039; the administrator can now configure which hosts should be considered as belonging to the same network by setting a larger (or smaller) prefix.&lt;br /&gt;
** This can help with receiving mail from some cloud-providers, who send out one mail from different ip addresses within a large network, which usually leads to a rather long delay and sometimes even to a legitimate mail being rejected.&lt;br /&gt;
** Due to the changed database layout partial upgrades of clusters will prevent nodes running the older version from syncing the greylist database until they are upgraded.&lt;br /&gt;
&lt;br /&gt;
* Better UX for the User Spam Quarantine interface&lt;br /&gt;
** If selected in the Quarantine view, the From header and the Subject are now displayed on top of the mail body.&lt;br /&gt;
** It is now possible to delete mail addresses containing certain special characters (for example &#039;/&#039;) from a users&#039; black- or whitelist.&lt;br /&gt;
** Users can set their preferred language directly in the quarantine interface instead of having to log out to change the setting.&lt;br /&gt;
** Fixed a bug in the selection of multiple e-mails.&lt;br /&gt;
&lt;br /&gt;
* Handling of changes to overridden templates with &amp;lt;code&amp;gt;ucf&amp;lt;/code&amp;gt;&lt;br /&gt;
** Starting with this release all service configuration templates, copied and modified in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; get registered with &amp;lt;code&amp;gt;ucf&amp;lt;/code&amp;gt;. Should a overridden template change with a new package version the administrator is asked and can accept or reject the changes.&lt;br /&gt;
** All users who have templates in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; will be asked about the current changes for the initial registration.&lt;br /&gt;
&lt;br /&gt;
* New What Object: &#039;Match Archive Filename&#039;&lt;br /&gt;
** In addition to match files in archives (zip, tar.gz, rar,...) based on the file&#039;s content-type, it is also possible to look for particular filename patterns inside of archives.&lt;br /&gt;
** This completes the feature matrix of matching files based on content-type or filename, as plain attachments, or inside archives.&lt;br /&gt;
&lt;br /&gt;
* Support for downstream LMTP servers&lt;br /&gt;
** In certain setups there is no advantage in having a dedicated SMTP server for receiving e-mails from Proxmox Mail Gateway, since all used functionality is provided by a MTA, which speaks IMAP and LMTP (e.g., Dovecot).&lt;br /&gt;
** It is now possible to configure Proxmox Mail Gateway to send e-mails directly to a LMTP relay, both as default transport and only as transport for certain domains.&lt;br /&gt;
&lt;br /&gt;
* Improvements to recently added features&lt;br /&gt;
** Before-queue filtering and DKIM signing, both implemented with Proxmox Mail Gateway 6.1, have a better user experience and are considered stable now.&lt;br /&gt;
** Some remaining glitches and bugs fixed for both. &lt;br /&gt;
** DKIM selector handling can handle the existence of multiple selectors and in the GUI, users can comfortably switch between the active selector.&lt;br /&gt;
&lt;br /&gt;
* TLS policy selection for internal downstream servers&lt;br /&gt;
** It is now possible to specify a desired level of encryption and authentication for the opportunistic TLS-encryption (STARTTLS) for downstream servers entered in your transports.&lt;br /&gt;
** This can help to ensure that your internal communication is not sent in the clear over the network. It can also be used to work around broken TLS implementations in legacy downstream servers.&lt;br /&gt;
&lt;br /&gt;
* Improvements to general usability&lt;br /&gt;
** The unbounded growth of the Quarantine disk usage for non-master nodes in clustered setups is fixed.&lt;br /&gt;
** It&#039;s now possible to switch to incremental updates of the AV signatures for ClamAV via GUI, alleviating the problem that both methods fail in certain cases for some users.&lt;br /&gt;
==Proxmox Mail Gateway 6.1==&lt;br /&gt;
&#039;&#039;&#039;Released 27. November 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.2)&lt;br /&gt;
** Proxmox Mail Gateway is based on the latest stable release of Debian 10.2 (Buster).&lt;br /&gt;
* Updated SpamAssassin rules&lt;br /&gt;
* Kernel 5.3&lt;br /&gt;
** Proxmox Mail Gateway shares the kernel with Proxmox VE and is based on the 5.3 series from Ubuntu 19.10&lt;br /&gt;
&lt;br /&gt;
* DKIM-Signing&lt;br /&gt;
** Support for adding DomainKeys Identified Mail (DKIM) Signatures (RFC 6376) to outbound emails&lt;br /&gt;
** Configuration via GUI&lt;br /&gt;
** Signing happens after processing the email with the rule system, thus ensuring that it leaves the Proxmox Mail Gateway with a valid signature&lt;br /&gt;
** Flexible control of which domains should get signed with sensible defaults (the relay domains)&lt;br /&gt;
** Inside a cluster, one common selector minimizes the overhead for adding required DNS entries&lt;br /&gt;
&lt;br /&gt;
* Attachment Quarantine&lt;br /&gt;
** The &amp;lt;code&amp;gt;Remove Attachments&amp;lt;/code&amp;gt; action can now optionally deliver the complete email to the Attachment Quarantine&lt;br /&gt;
** The Attachment Quarantine offers a comfortable GUI for selectively downloading parts of the email for further analysis, or delivering the mail to the original recipient&lt;br /&gt;
** Accessible only by the administrators, it offers safety from accidentally open malicious executables, doc-files, and other attachments infected with malware&lt;br /&gt;
&lt;br /&gt;
* Adjustable SpamAssassin Rule Scores via GUI&lt;br /&gt;
** Adapt the scores of individual SpamAssassin rules directly in the GUI&lt;br /&gt;
** Enables you to adapt the scoring to your environment, thus achieving better ham/spam detection rates&lt;br /&gt;
** Mostly for adding a bit of weight to rules, which are good indicators for Spam in your environment&lt;br /&gt;
** Selectively disable Rules, which cause false positives for your environment&lt;br /&gt;
&lt;br /&gt;
* Improved handling of Configuration and Rule changes in clustered environments&lt;br /&gt;
** The Filtering Engine gets notified about a range of configuration changes which require a reload&lt;br /&gt;
** The notification is propagated during the cluster sync&lt;br /&gt;
** This reduces the situations where you had to manually restart &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Experimental Support for Before Queue filtering&lt;br /&gt;
** Proxmox Mail Gateway can now optionally reject an email during the SMTP dialogue, instead of accepting it and silently discarding unwanted email&lt;br /&gt;
** This is a requirement in certain situations&lt;br /&gt;
** By answering with a permanent failure code (&amp;lt;code&amp;gt;554&amp;lt;/code&amp;gt;), there is no need to generate a Non-Delivery Report, which could cause your system to get blacklisted, due to Backscatter&lt;br /&gt;
** Currently incompatible with the Tracking Center, thus needs to be explicitly enabled in &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Improvements to general usability&lt;br /&gt;
** Clarification of ambiguously used terms in the GUI and documentation&lt;br /&gt;
** More detailed documentation of the Service Configuration Templates&lt;br /&gt;
** Downloading of emails larger than 2 MB as &amp;lt;nowiki&amp;gt;eml&amp;lt;/nowiki&amp;gt; from the Spam Quarantine now works&lt;br /&gt;
** API-Viewer now usable from inside every running PMG installation at https://pmg.local:8006/api-viewer/index.html or just online via https://pmg.proxmox.com/pmg-docs/api-viewer/index.html&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.0==&lt;br /&gt;
&#039;&#039;&#039;Released 27. August 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Proxmox Mail Gateway is based on the latest stable release of Debian 10.0 (Buster)&lt;br /&gt;
*This major version update provides an easy to follow step-by-step upgrade path - https://pmg.proxmox.com/wiki/index.php/Upgrade_from_5.x_to_6.0&lt;br /&gt;
*Rule name logging - each final action now logs the name of the rule which triggered it to the system log&lt;br /&gt;
*The system logs get displayed faster in the GUI because they now use the Proxmox `mini-journalreader` instead of `journalctl`&lt;br /&gt;
*ClamAV 0.101.4 (fix for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934359)&lt;br /&gt;
*Postgres 11 (new major version backing the rule system)&lt;br /&gt;
*OpenSSL 1.1.1c with support for TLS 1.3&lt;br /&gt;
*Updated shipped SpamAssassin Ruleset&lt;br /&gt;
*Countless bugfixes and improvements in the GUI labels&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.2==&lt;br /&gt;
&#039;&#039;&#039;Released 20. March 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Mobile Quarantine Interface&lt;br /&gt;
**based on the small and modern framework7&lt;br /&gt;
**Deliver/Delete/Whitelist/Blacklist mails in your Quarantine from your mobile device&lt;br /&gt;
*Improvements in the LDAP integration&lt;br /&gt;
**allow the use of FQDNs instead of IPs in the WebUI&lt;br /&gt;
**add support for certificate verification (and enable it for new deployments)&lt;br /&gt;
**add support for LDAP+starttls&lt;br /&gt;
*PMG-Appliance template&lt;br /&gt;
**Install PMG as a (unprivileged) Linux Container (e.g. in PVE)&lt;br /&gt;
**Introduces the new &#039;proxmox-mailgateway-container&#039; metapackage, which does not depend on a kernel, and results in a vastly reduced size (and fewer updates)&lt;br /&gt;
*Improvements in Logging&lt;br /&gt;
**pmg-smtp-filter now logs each SA-Rules score in addition to the rule names - simplifying the analysis of the spam filter&#039;s performance without the need to access the mail&#039;s source&lt;br /&gt;
*Improvements in the WebUI&#039;s TLS configuration&lt;br /&gt;
*pmgproxy can now be configured via &#039;/etc/default/pmgproxy&#039; to disable/enable certain ciphers, compression, cipher selection preference.&lt;br /&gt;
*new command: `pmg-system-report`&lt;br /&gt;
**Provides a overview of key characteristics of PMG&#039;s setup and performance&lt;br /&gt;
**Improves the initial diagnosis for our Enterprise support&lt;br /&gt;
*.eml download from the (non-mobile) Quarantine Interface&lt;br /&gt;
**Lets you download the complete source of a quarantined message in .eml format for further analysis&lt;br /&gt;
*Add support for custom checks&lt;br /&gt;
**Enable users to integrate their own custom check logic by providing a defined interface, which can optionally be enabled, and runs a custom check before the mail gets handed to the virus scanner and rule system.&lt;br /&gt;
*Improvements of Blacklist/Whitelist handling in the Quarantine Interface&lt;br /&gt;
**multiselect for removing multiple entries at once&lt;br /&gt;
*proxmox-spamassassin&lt;br /&gt;
**Update the shipped rulesets&lt;br /&gt;
*PMG-Cluster: full IPv6 support&lt;br /&gt;
*ISO works on Citrix XenServer&lt;br /&gt;
*Documentation available via https://pmg.proxmox.com/pmg-docs&lt;br /&gt;
*Bugfixes&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.1==&lt;br /&gt;
&#039;&#039;&#039;Released 05. October 2018&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Allow to configure TLS policy via GUI&lt;br /&gt;
*New &#039;helpdesk&#039; role&lt;br /&gt;
*Support SMTPUTF8 protocol feature&lt;br /&gt;
*GUI improvements&lt;br /&gt;
*Update Debian Stretch 9.5&lt;br /&gt;
*Update kernel to 4.15&lt;br /&gt;
*Bugfixes&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.0==&lt;br /&gt;
&#039;&#039;&#039;Released 23. January 2018&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Fully licensed under the open source license AGPL&lt;br /&gt;
*Based on Debian Stretch 9.3 with a 4.13.13 kernel&lt;br /&gt;
*ISO installer supports all ZFS raid levels&lt;br /&gt;
*ExtJS based user interface&lt;br /&gt;
*New API&lt;br /&gt;
*Integrated documentation&lt;br /&gt;
*Subscription-based enterprise support options (similar to the Proxmox VE support subscription model)&lt;br /&gt;
*Bug fixes&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
*Proxmox Mail Gateway 4.1&lt;br /&gt;
*Proxmox Mail Gateway 4.0&lt;br /&gt;
*Proxmox Mail Gateway 3.1&lt;br /&gt;
*Proxmox Mail Gateway 3.0&lt;br /&gt;
*Proxmox Mail Gateway 2.6&lt;br /&gt;
*Proxmox Mail Gateway 2.5&lt;br /&gt;
*Proxmox Mail Gateway 2.4&lt;br /&gt;
*Proxmox Mail Gateway 2.3&lt;br /&gt;
*Proxmox Mail Gateway 2.2&lt;br /&gt;
*Proxmox Mail Gateway 2.1&lt;br /&gt;
*Proxmox Mail Gateway 2.0&lt;br /&gt;
*Proxmox Mail Gateway 1.7&lt;br /&gt;
*Proxmox Mail Gateway 1.6&lt;br /&gt;
*Proxmox Mail Gateway 1.5&lt;br /&gt;
*Proxmox Mail Gateway 1.4&lt;br /&gt;
*Proxmox Mail Gateway 1.3&lt;br /&gt;
*Proxmox Mail Gateway 1.2&lt;br /&gt;
*Proxmox Mail Gateway 1.1&lt;br /&gt;
*Proxmox Mail Gateway 1.0 (April 2005)&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=File:Proxmox-Mail-Gateway-Statistics.png&amp;diff=153</id>
		<title>File:Proxmox-Mail-Gateway-Statistics.png</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=File:Proxmox-Mail-Gateway-Statistics.png&amp;diff=153"/>
		<updated>2025-10-01T11:12:01Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: Stoiko Ivanov uploaded a new version of File:Proxmox-Mail-Gateway-Statistics.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=File:Proxmox-Mail-Gateway-Statistics.png&amp;diff=152</id>
		<title>File:Proxmox-Mail-Gateway-Statistics.png</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=File:Proxmox-Mail-Gateway-Statistics.png&amp;diff=152"/>
		<updated>2025-10-01T11:09:38Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: Stoiko Ivanov uploaded a new version of File:Proxmox-Mail-Gateway-Statistics.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Main_Page&amp;diff=151</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Main_Page&amp;diff=151"/>
		<updated>2025-10-01T10:56:20Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Upgrading Proxmox Mail Gateway */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:Proxmox-Mail-Gateway-Statistics.png|thumb|300px|right|rightthumb|Proxmox Mail Gateway Statistics]]&lt;br /&gt;
&#039;&#039;&#039;Proxmox Mail Gateway&#039;&#039;&#039; is an open-source email security platform based on Debian GNU/Linux. It protects your mail server from spam, viruses, trojans and phishing emails. The full featured mail proxy is deployed between the firewall and the internal mail server and allows to control all incoming and outgoing email traffic from a single platform with a central web-based management interface. Proxmox Mail Gateway is open-source software, licensed under the GNU AGPL, v3. &lt;br /&gt;
&lt;br /&gt;
The project is developed and maintained by [https://www.proxmox.com/en/ Proxmox Server Solutions GmbH].&lt;br /&gt;
&lt;br /&gt;
For an overview of the Proxmox Mail Gateway key features see the [https://www.proxmox.com/en/proxmox-mail-gateway/features Proxmox website].&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
[https://www.proxmox.com/downloads Download] the latest ISO image files.&lt;br /&gt;
&lt;br /&gt;
Alternate download: https://enterprise.proxmox.com/iso&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
The installation medium (CD or USB) is a complete operating system, including everything you need to install and run Proxmox Mail Gateway in only a few minutes. It can be installed bare-metal on dedicated hardware or in a virtual machine on all leading virtualization platforms. You can also install it on top of an existing Debian installation.&lt;br /&gt;
&lt;br /&gt;
See the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_installation Installation of Proxmox Mail Gateway] chapter in the reference documentation for details.&lt;br /&gt;
&lt;br /&gt;
For basic setup guidance and some helpful tips see [[Getting started with Proxmox Mail Gateway]].&lt;br /&gt;
&lt;br /&gt;
= Upgrading Proxmox Mail Gateway =&lt;br /&gt;
System software updates are downloaded from the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories] and should be applied frequently to receive the most recent bug/security fixes and to obtain the newest features.&lt;br /&gt;
&lt;br /&gt;
You can also upgrade existing Proxmox Mail Gateway installations to the next major release:&lt;br /&gt;
&lt;br /&gt;
* [[Upgrade from 8 to 9|Upgrade from Proxmox Mail Gateway 8 to 9]]&lt;br /&gt;
* [[:Category:Upgrade|Upgrade Guides for older Releases]]&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
The Proxmox Mail Gateway documentation is freely available in different formats such as HTML, PDF or EPUB, see [https://pmg.proxmox.com/pmg-docs/ Proxmox Mail Gateway Reference Documentation]. You can also access the documentation via the management interface of your Proxmox Mail Gateway installation by clicking on the contextual help buttons.&lt;br /&gt;
&lt;br /&gt;
The developer documentation explains how to get involved in the development process of the Proxmox Mail Gateway, see [[Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
=Release History and Roadmap=&lt;br /&gt;
Take a look on the [[Roadmap]] for existing and upcoming features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- T.r.a.p &amp;lt;a href=&amp;quot;mailto:user2@test.proxmox.org&amp;quot;&amp;gt;do not use this address&amp;lt;/a&amp;gt; --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=150</id>
		<title>Upgrade from 8 to 9</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=150"/>
		<updated>2025-10-01T10:55:31Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 9.x is based on the new major version of Debian (Trixie). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Trixie.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 8.x system to Proxmox Mail Gateway 9.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Trixie]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Trixie]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;:&lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt;) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 8.2, see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bookworm repos setup) to upgrade to latest 8.2&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 8.2.5 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/8.2.5/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Ensure that you have at least 10 GB free disk space on the root mount point:&lt;br /&gt;
 df -h /&lt;br /&gt;
* Check [[#Potential_Issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
First, ensure that your Mail Gateway 8 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg8to9&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 8.2 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg8to9&lt;br /&gt;
&lt;br /&gt;
; This script only checks and reports things.&lt;br /&gt;
: By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
: You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
; It is recommended to re-run the script after each attempt to fix an issue.&lt;br /&gt;
: This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
First, make sure that the system is using the latest Proxmox Mail Gateway packages:&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
 pmgversion -v&lt;br /&gt;
&lt;br /&gt;
The last command should report a version of at least &amp;lt;code&amp;gt;8.2.5&amp;lt;/code&amp;gt; or newer.&lt;br /&gt;
&lt;br /&gt;
==== Ensure Repository Archive Keyring is Installed ====&lt;br /&gt;
&lt;br /&gt;
To ensure your system trusts the new APT archive keyring for our Debian Trixie-based releases, install the &amp;lt;code&amp;gt;proxmox-archive-keyring&amp;lt;/code&amp;gt; package before switching the repositories to Trixie.&lt;br /&gt;
&lt;br /&gt;
 apt install proxmox-archive-keyring&lt;br /&gt;
&lt;br /&gt;
==== Update Debian Base Repositories to Trixie ====&lt;br /&gt;
Update all repository entries to Trixie:&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bookworm/trixie/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Ensure that there are no remaining Debian Bookworm specific repositories left. Check all files in the &amp;lt;/code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; folder (like &amp;lt;code&amp;gt;pmg-enterprise.list&amp;lt;/code&amp;gt;) and also the top-level &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; file. If you are already using sources in the new deb822 format, you will also need to check &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files in the same location.&lt;br /&gt;
&lt;br /&gt;
{{note|Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.|reminder}}&lt;br /&gt;
&lt;br /&gt;
See the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories] section in the reference docs for the correct Proxmox Mail Gateway / Debian Trixie repositories.&lt;br /&gt;
&lt;br /&gt;
==== Add the Proxmox Mail Gateway 9 Package Repository ====&lt;br /&gt;
&lt;br /&gt;
Update the enterprise repository to Trixie in the new deb822 format with the following command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: https://enterprise.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-enterprise&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
After you added the new enterprise repository as above, check that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly. You can do so by first running &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Make sure that no errors are shown and that &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; only outputs the desired repositories. Then you can remove the old &amp;lt;code&amp;gt;/etc/apt/sources.list.d/pmg-enterprise.list&amp;lt;/code&amp;gt; file. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
If using the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add the Proxmox Mail Gateway 9 no-subscription repository with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-no-subscription&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
As with the enterprise repository, make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 no-subscription repository from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
Make sure to check that all the &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files you added in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; got switched over to Trixie correctly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
Note that the time required for finishing this step heavily depends on the system&#039;s performance, especially the root filesystem&#039;s IOPS and bandwidth.&lt;br /&gt;
A slow spinner can take up to 60 minutes or more, while for a high-performance server with SSD storage, the upgrade can be finished in less than 5 minutes.&lt;br /&gt;
&lt;br /&gt;
{{Note|While the packages are being upgraded certain operations and requests to the API might fail (for example, logging in as a system user in the &amp;lt;code&amp;gt;pam&amp;lt;/code&amp;gt; realm)|reminder}}&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
While running the &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; command, you may be asked to approve changes to configuration files and some service restarts among other prompts. This includes:&lt;br /&gt;
&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;apt-listchanges&amp;lt;/code&amp;gt;: You can simply exit it by pressing &amp;lt;kbd&amp;gt;q&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
* Selecting your default keyboard settings: Simply use the arrow keys to navigate to the one applicable in your case and hit enter.&lt;br /&gt;
* Questions about service restarts (like &amp;lt;code&amp;gt;Restart services during package upgrades without asking?&amp;lt;/code&amp;gt;): Use the default if unsure, as the reboot after the upgrade will restart all services cleanly anyway.&lt;br /&gt;
* Questions about (default) configuration changes: It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup. Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/clamav/clamd.conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Here you may want to take special care, as this is normally only asked for if you changed it manually; for example, if you added some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/postfix/master.cf.proto&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/postfix/main.cf.proto&amp;lt;/code&amp;gt;&lt;br /&gt;
*: These files are not used by Proxmox Mail Gateway - they are the templates for setting up multi-instance postfix instances, which was never used by Proxmox Mail Gateway.&lt;br /&gt;
*: See the [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838528 bugreport at bugs.debian.org] for more context.&lt;br /&gt;
*: We recommend to select &amp;quot;Yes&amp;quot; (install the new version), in order to not get asked again for a future upgrade.&lt;br /&gt;
*; &amp;lt;code&amp;gt;/etc/crontab&amp;lt;/code&amp;gt; and other &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; related files on installations on containers on Proxmox VE&lt;br /&gt;
*: The crontab gets randomized by Proxmox VE to prevent all jobs running at the same time in all containers.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is preferred here.&lt;br /&gt;
*; &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; may print warnings regarding about &amp;lt;code&amp;gt;collation version mismatch&amp;lt;/code&amp;gt;&lt;br /&gt;
*: These are transitory and will disappear once the cluster has been upgraded to the new version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Important&#039;&#039;&#039;&#039;&#039;: If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
It is not yet necessary to reboot your Proxmox Mail Gateway host at this point. Before doing so, first upgrade PostgreSQL database.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 15 to 17, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** Ensure you run this step in a shell, which does not have non-standard locales set. easiest to achieve this is running a fresh &amp;lt;code&amp;gt;su -&amp;lt;/code&amp;gt; session and checking that no locale related variables are set to a not installed locale:&lt;br /&gt;
 su -&lt;br /&gt;
 env |grep -E &#039;LC|LANG&#039;&lt;br /&gt;
The output should be empty.&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 17 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reboot ===&lt;br /&gt;
&lt;br /&gt;
Reboot the host with e command below. Then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Reconnect to the node after it successfully rebooted.&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== Remove old PostreSQL Version ===&lt;br /&gt;
&lt;br /&gt;
You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
&lt;br /&gt;
 apt purge postgresql-15 postgresql-client-15&lt;br /&gt;
&lt;br /&gt;
=== Optional: Modernize apt Repository Sources ===&lt;br /&gt;
&lt;br /&gt;
You can migrate existing repository sources to the recommended deb822 style format, by running:&lt;br /&gt;
&lt;br /&gt;
 apt modernize-sources&lt;br /&gt;
&lt;br /&gt;
By answering the following prompt with &amp;quot;n&amp;quot; you can check the changes the command would make before applying them. To apply them simply run the command again and respond to the prompt with &amp;quot;Y&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The command will also keep the old &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files around by appending &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt; to them. So you will have the new &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files and the old repository configurations in the &amp;lt;code&amp;gt;.list.bak&amp;lt;/code&amp;gt; files. You can remove the leftover backup files once you verified that everything works smoothly with the new format.&lt;br /&gt;
&lt;br /&gt;
{{note|ensure that all external and third-party repositories (e.g. the one provided by [https://pmg.proxmox.com/wiki/index.php/Install_Avast avast] have provided the keys in the correct places).&lt;br /&gt;
|reminder}}&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/trixie/release-notes/upgrading.en.html upgrade specific issues for Trixie].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list for the Proxmox Mail Gateway 9.X minor releases as this gets updated with future minor releases:&lt;br /&gt;
* https://pmg.proxmox.com/wiki/Roadmap#9.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL ==&lt;br /&gt;
&lt;br /&gt;
=== Setting Locale Failed During Postgres Cluster Upgrade ===&lt;br /&gt;
&lt;br /&gt;
If you are performing the upgrade via SSH (as advised), running &amp;lt;code&amp;gt;pg_upgradecluster -v 17 15 main&amp;lt;/code&amp;gt; may fail if your environment variables contain locales that do not exist on your PMG host:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# [...]&lt;br /&gt;
perl: warning: Setting locale failed.&lt;br /&gt;
perl: warning: Please check that your locale settings:&lt;br /&gt;
....&lt;br /&gt;
Error: The locale requested by the environment is invalid:&lt;br /&gt;
...&lt;br /&gt;
Error: Could not create target cluster&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These environment variables may be set automatically depending on your shell&#039;s configuration or SSH settings. Most commonly, &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; can pass local environment variables along to your remote host when connecting. See &amp;lt;code&amp;gt;[https://manpages.debian.org/trixie/openssh-client/ssh_config.5.en.html man ssh_config]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[https://manpages.debian.org/trixie/openssh-server/sshd_config.5.en.html man sshd_config]&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
To fix this follow the steps in [[#Upgrade_the_PostgreSQL_database|Upgrade the PostgresSQL Cluster]].&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.debian.org/releases/trixie/release-notes/issues.en.html#timezones-split-off-into-tzdata-legacy-package Legacy timezones were split off.]&lt;br /&gt;
*: This should not be an issue as Proxmox Mail Gateway never offered the deprecated timezones for selection.&lt;br /&gt;
*: However, if you&#039;ve manually configured one such timezone and &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; does not start, install the &amp;lt;code&amp;gt;tzdata-legacy&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The external &amp;lt;code&amp;gt;avast&amp;lt;/code&amp;gt; Virus Scanner [https://pmg.proxmox.com/wiki/index.php/Install_Avast with integration in Promxox Mail Gateway] has not yet released a version for Debian Trixie.&lt;br /&gt;
*: If you are using it consider delaying the upgrade until it becomes available&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Trixie (without using the Proxmox Mail Gateway ISO), you may have installed the package &amp;lt;code&amp;gt;linux-image-amd64&amp;lt;/code&amp;gt;, which conflicts with current 9.x setups.&lt;br /&gt;
&lt;br /&gt;
To solve this, you have to remove this package with &amp;lt;code&amp;gt;apt remove linux-image-amd64&amp;lt;/code&amp;gt; before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
The new kernel can recognize more hardware features such as virtual function of PCI(e) devices. Since network names are usually derived from PIC(e) addresses and features recognized by the kernel, the network configuration might need to be adapted to match the new interface names.&lt;br /&gt;
&lt;br /&gt;
In such cases, the network connection to a Proxmox Datacenter Manager host might be lost during or after the upgrade process. Hence, it is generally recommended to have either physical access or an independent remote connection to the host (for example, via IPMI or iKVM).&lt;br /&gt;
&lt;br /&gt;
The latest version of Proxmox Mail Gateway 8.2 and 9.0 provide a package called &amp;lt;code&amp;gt;proxmox-network-interface-pinning&amp;lt;/code&amp;gt; that you can install.&lt;br /&gt;
This package offers a CLI tool that helps you pin all network interfaces to NIC-based names and update the network configuration simultaneously.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot meta-package changes the bootloader configuration automatically and should be uninstalled ==&lt;br /&gt;
With Debian Trixie the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package got split up a bit further into &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; (containing the EFI-binary used for booting), &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; (containing &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt;) and the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package (containing hooks which run upon upgrades of itself and other packages and install systemd-boot as bootloader).&lt;br /&gt;
&lt;br /&gt;
As Proxmox Systems usually use &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for booting only in some configurations (ZFS on root and UEFI booted without secure boot), which are managed by &amp;lt;code&amp;gt;proxmox-boot-tool&amp;lt;/code&amp;gt;, the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; should be removed.&lt;br /&gt;
&lt;br /&gt;
The package was automatically shipped for systems installed from the PMG 8.0 to PMG 8.2 ISOs, as it contained &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt; in bookworm.&lt;br /&gt;
If the &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script suggests it, the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package is safe to remove unless you manually installed it and are using &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; as a bootloader. Should &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; be required, &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; will warn you accordingly.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script will change its output depending on the state of the upgrade, and should be [[#Continuously_use_the_pmg8to9_checklist_script|run continuously before and after the upgrade]]. It will print which packages should be removed or added at the appropriate time. The only situation where you should keep the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; installed is if you manually setup &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for your system.&lt;br /&gt;
&lt;br /&gt;
See also [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110177 the filed bug for systemd-boot].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/trixie/release-notes/ Release Notes for Debian 13.0 (trixie)]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=149</id>
		<title>Upgrade from 8 to 9</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=149"/>
		<updated>2025-09-25T08:12:40Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Update the configured APT repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;sticky-box warn-box&amp;quot;&amp;gt;Note: Proxmox Mail Gateway 9.0 is currently in BETA! Please report any problems in the [https://bugzilla.proxmox.com/ bug tracker] or the [https://forum.proxmox.com/ community forum]&amp;lt;/div&amp;gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 9.x is based on the new major version of Debian (Trixie). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Trixie.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 8.x system to Proxmox Mail Gateway 9.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Trixie]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Trixie]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;:&lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt;) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgraded to the latest version of Proxmox Mail Gateway 8., see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bookworm repos setup) to upgrade to latest 8.2&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 8.2.5 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/8.2.5/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Ensure that you have at least 10 GB free disk space on the root mount point:&lt;br /&gt;
 df -h /&lt;br /&gt;
* Check [[#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 8 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg8to9&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 8.2 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg8to9&lt;br /&gt;
&lt;br /&gt;
This script only &#039;&#039;&#039;checks&#039;&#039;&#039; and reports things. By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
It is recommended to re-run the script after each attempt to fix an issue. This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
First, make sure that the system is using the latest Proxmox Mail Gateway packages:&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
 pmgversion -v&lt;br /&gt;
&lt;br /&gt;
The last command should report a version of at least &amp;lt;code&amp;gt;8.2.5&amp;lt;/code&amp;gt; or newer.&lt;br /&gt;
&lt;br /&gt;
==== Ensure Repository Archive Keyring is Installed ====&lt;br /&gt;
&lt;br /&gt;
To ensure your system trusts the new APT archive keyring for our Debian Trixie-based releases, install the &amp;lt;code&amp;gt;proxmox-archive-keyring&amp;lt;/code&amp;gt; package before switching the repositories to Trixie.&lt;br /&gt;
&lt;br /&gt;
 apt install proxmox-archive-keyring&lt;br /&gt;
&lt;br /&gt;
==== Update Debian Base Repositories to Trixie ====&lt;br /&gt;
Update all repository entries to Trixie:&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bookworm/trixie/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Ensure that there are no remaining Debian Bookworm specific repositories left. Check all files in the &amp;lt;/code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; folder (like &amp;lt;code&amp;gt;pmg-enterprise.list&amp;lt;/code&amp;gt;) and also the top-level &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; file. If you are already using sources in the new deb822 format, you will also need to check &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files in the same location.&lt;br /&gt;
&lt;br /&gt;
{{note|Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.|reminder}}&lt;br /&gt;
&lt;br /&gt;
See the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories] section in the reference docs for the correct Proxmox Mail Gateway / Debian Trixie repositories.&lt;br /&gt;
&lt;br /&gt;
==== Add the Proxmox Mail Gateway 9 Package Repository ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FIXME: include after BETA&lt;br /&gt;
Update the enterprise repository to Trixie in the new deb822 format with the following command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: https://enterprise.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-enterprise&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
After you added the new enterprise repository as above, check that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly. You can do so by first running &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Make sure that no errors are shown and that &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; only outputs the desired repositories. Then you can remove the old &amp;lt;code&amp;gt;/etc/apt/sources.list.d/pmg-enterprise.list&amp;lt;/code&amp;gt; file. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
If using the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add the Proxmox Mail Gateway 9 no-subscription repository with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-no-subscription&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
As with the enterprise repository, make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 no-subscription repository from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
AND REMOVE the BETA repo --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the BETA phase only the &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt; repository is available, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add it with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox-beta.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-test&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 repositories from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.&lt;br /&gt;
&amp;lt;!-- END REMOVE BETA --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to check that all the &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files you added in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; got switched over to Trixie correctly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
Note that the time required for finishing this step heavily depends on the system&#039;s performance, especially the root filesystem&#039;s IOPS and bandwidth.&lt;br /&gt;
A slow spinner can take up to 60 minutes or more, while for a high-performance server with SSD storage, the upgrade can be finished in less than 5 minutes.&lt;br /&gt;
&lt;br /&gt;
{{Note|While the packages are being upgraded certain operations and requests to the API might fail (for example, logging in as a system user in the &amp;lt;code&amp;gt;pam&amp;lt;/code&amp;gt; realm)|reminder}}&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
While running the &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; command, you may be asked to approve changes to configuration files and some service restarts among other prompts. This includes:&lt;br /&gt;
&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;apt-listchanges&amp;lt;/code&amp;gt;: You can simply exit it by pressing &amp;lt;kbd&amp;gt;q&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
* Selecting your default keyboard settings: Simply use the arrow keys to navigate to the one applicable in your case and hit enter.&lt;br /&gt;
* Questions about service restarts (like &amp;lt;code&amp;gt;Restart services during package upgrades without asking?&amp;lt;/code&amp;gt;): Use the default if unsure, as the reboot after the upgrade will restart all services cleanly anyway.&lt;br /&gt;
* Questions about (default) configuration changes: It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup. Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt; -&amp;gt; Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; -&amp;gt; If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/clamav/clamd.conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt; -&amp;gt; Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; -&amp;gt; Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/postfix/master.cf.proto&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/postfix/main.cf.proto&amp;lt;/code&amp;gt; -&amp;gt; These files are not used by Proxmox Mail Gateway - they are the templates for setting up multi-instance postfix instances, which was never used by Proxmox Mail Gateway. See the [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838528 bugreport at bugs.debian.org] for more context.&lt;br /&gt;
*: We recommend to select &amp;quot;Yes&amp;quot; (install the new version), in order to not get asked again for a future upgrade.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/crontab&amp;lt;/code&amp;gt; and other &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; related files on installations on containers on Proxmox VE: The crontab gets randomized by Proxmox VE to prevent all jobs running at the same time in all containers.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is preferred here.&lt;br /&gt;
** &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; may print warnings regarding about &amp;lt;code&amp;gt;collation version mismatch&amp;lt;/code&amp;gt; - These are transitory and will disappear once the cluster has been upgraded to the new version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Important&#039;&#039;&#039;&#039;&#039;: If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
It is not yet necessary to reboot your Proxmox Mail Gateway host at this point. Before doing so, first upgrade PostgreSQL database.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 15 to 17, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 17 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reboot ===&lt;br /&gt;
&lt;br /&gt;
Reboot the host with e command below. Then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Reconnect to the node after it successfully rebooted.&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== Remove old PostreSQL Version ===&lt;br /&gt;
&lt;br /&gt;
You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
&lt;br /&gt;
 apt purge postgresql-15 postgresql-client-15&lt;br /&gt;
&lt;br /&gt;
=== Optional: Modernize apt Repository Sources ===&lt;br /&gt;
&lt;br /&gt;
You can migrate existing repository sources to the recommended deb822 style format, by running:&lt;br /&gt;
&lt;br /&gt;
 apt modernize-sources&lt;br /&gt;
&lt;br /&gt;
By answering the following prompt with &amp;quot;n&amp;quot; you can check the changes the command would make before applying them. To apply them simply run the command again and respond to the prompt with &amp;quot;Y&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The command will also keep the old &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files around by appending &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt; to them. So you will have the new &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files and the old repository configurations in the &amp;lt;code&amp;gt;.list.bak&amp;lt;/code&amp;gt; files. You can remove the leftover backup files once you verified that everything works smoothly with the new format.&lt;br /&gt;
&lt;br /&gt;
{{note|ensure that all external and third-party repositories (e.g. the one provided by [https://pmg.proxmox.com/wiki/index.php/Install_Avast avast] have provided the keys in the correct places).&lt;br /&gt;
|reminder}}&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/trixie/release-notes/upgrading.en.html upgrade specific issues for Trixie].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list for the Proxmox Mail Gateway 9.X minor releases as this gets updated with future minor releases:&lt;br /&gt;
* https://pmg.proxmox.com/wiki/Roadmap#9.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.debian.org/releases/trixie/release-notes/issues.en.html#timezones-split-off-into-tzdata-legacy-package Legacy Timezones were split off] This should not be an issue as Proxmox Mail Gateway never offered the deprecated timezones for selection.&lt;br /&gt;
but if you&#039;ve manually configured one and &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; does not start, install the &amp;lt;code&amp;gt;tzdata-legacy&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The external &amp;lt;code&amp;gt;avast&amp;lt;/code&amp;gt; Virus Scanner [https://pmg.proxmox.com/wiki/index.php/Install_Avast with integration in Promxox Mail Gateway] has not yet released a version for Debian Trixie. If you are using it consider delaying the upgrade until it becomes available&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Trixie (without using the Proxmox Mail Gateway ISO), you may have installed the package &#039;linux-image-amd64&#039;, which conflicts with current 9.x setups. To solve this, you have to remove this package with&lt;br /&gt;
 apt remove linux-image-amd64&lt;br /&gt;
before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
The new kernel can recognize more hardware features such as virtual function of PCI(e) devices. Since network names are usually derived from PIC(e) addresses and features recognized by the kernel, the network configuration might need to be adapted to match the new interface names.&lt;br /&gt;
&lt;br /&gt;
In such cases, the network connection to a Proxmox Datacenter Manager host might be lost during or after the upgrade process. Hence, it is generally recommended to have either physical access or an independent remote connection to the host (for example, via IPMI or iKVM).&lt;br /&gt;
&lt;br /&gt;
The latest version of Proxmox Mail Gateway 8.2 and 9.0 provide a package called &amp;lt;code&amp;gt;proxmox-network-interface-pinning&amp;lt;/code&amp;gt; that you can install.&lt;br /&gt;
This package offers a CLI tool that helps you pin all network interfaces to NIC-based names and update the network configuration simultaneously.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot meta-package changes the bootloader configuration automatically and should be uninstalled ==&lt;br /&gt;
With Debian Trixie the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package got split up a bit further into &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; (containing the EFI-binary used for booting), &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; (containing &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt;) and the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package (containing hooks which run upon upgrades of itself and other packages and install systemd-boot as bootloader).&lt;br /&gt;
&lt;br /&gt;
As Proxmox Systems usually use &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for booting only in some configurations (ZFS on root and UEFI booted without secure boot), which are managed by &amp;lt;code&amp;gt;proxmox-boot-tool&amp;lt;/code&amp;gt;, the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; should be removed.&lt;br /&gt;
&lt;br /&gt;
The package was automatically shipped for systems installed from the PMG 8.0 to PMG 8.2 ISOs, as it contained &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt; in bookworm.&lt;br /&gt;
If the &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script suggests it, the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package is safe to remove unless you manually installed it and are using &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; as a bootloader. Should &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; be required, &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; will warn you accordingly.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script will change its output depending on the state of the upgrade, and should be [[#Continuously_use_the_pmg8to9_checklist_script|run continuously before and after the upgrade]]. It will print which packages should be removed or added at the appropriate time. The only situation where you should keep the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; installed is if you manually setup &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for your system.&lt;br /&gt;
&lt;br /&gt;
See also [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110177 the filed bug for systemd-boot].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/trixie/release-notes/ Release Notes for Debian 13.0 (trixie)]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=148</id>
		<title>Upgrade from 8 to 9</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=148"/>
		<updated>2025-09-25T08:12:14Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: update needed pmg-api 8 version (for pmg8to9)/* Preconditions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;sticky-box warn-box&amp;quot;&amp;gt;Note: Proxmox Mail Gateway 9.0 is currently in BETA! Please report any problems in the [https://bugzilla.proxmox.com/ bug tracker] or the [https://forum.proxmox.com/ community forum]&amp;lt;/div&amp;gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 9.x is based on the new major version of Debian (Trixie). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Trixie.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 8.x system to Proxmox Mail Gateway 9.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Trixie]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Trixie]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;:&lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt;) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgraded to the latest version of Proxmox Mail Gateway 8., see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bookworm repos setup) to upgrade to latest 8.2&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 8.2.5 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/8.2.5/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Ensure that you have at least 10 GB free disk space on the root mount point:&lt;br /&gt;
 df -h /&lt;br /&gt;
* Check [[#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 8 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg8to9&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 8.2 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg8to9&lt;br /&gt;
&lt;br /&gt;
This script only &#039;&#039;&#039;checks&#039;&#039;&#039; and reports things. By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
It is recommended to re-run the script after each attempt to fix an issue. This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
First, make sure that the system is using the latest Proxmox Mail Gateway packages:&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
 pmgversion -v&lt;br /&gt;
&lt;br /&gt;
The last command should report a version of at least &amp;lt;code&amp;gt;8.2.3&amp;lt;/code&amp;gt; or newer.&lt;br /&gt;
&lt;br /&gt;
==== Ensure Repository Archive Keyring is Installed ====&lt;br /&gt;
&lt;br /&gt;
To ensure your system trusts the new APT archive keyring for our Debian Trixie-based releases, install the &amp;lt;code&amp;gt;proxmox-archive-keyring&amp;lt;/code&amp;gt; package before switching the repositories to Trixie.&lt;br /&gt;
&lt;br /&gt;
 apt install proxmox-archive-keyring&lt;br /&gt;
&lt;br /&gt;
==== Update Debian Base Repositories to Trixie ====&lt;br /&gt;
Update all repository entries to Trixie:&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bookworm/trixie/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Ensure that there are no remaining Debian Bookworm specific repositories left. Check all files in the &amp;lt;/code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; folder (like &amp;lt;code&amp;gt;pmg-enterprise.list&amp;lt;/code&amp;gt;) and also the top-level &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; file. If you are already using sources in the new deb822 format, you will also need to check &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files in the same location.&lt;br /&gt;
&lt;br /&gt;
{{note|Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.|reminder}}&lt;br /&gt;
&lt;br /&gt;
See the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories] section in the reference docs for the correct Proxmox Mail Gateway / Debian Trixie repositories.&lt;br /&gt;
&lt;br /&gt;
==== Add the Proxmox Mail Gateway 9 Package Repository ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FIXME: include after BETA&lt;br /&gt;
Update the enterprise repository to Trixie in the new deb822 format with the following command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: https://enterprise.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-enterprise&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
After you added the new enterprise repository as above, check that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly. You can do so by first running &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Make sure that no errors are shown and that &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; only outputs the desired repositories. Then you can remove the old &amp;lt;code&amp;gt;/etc/apt/sources.list.d/pmg-enterprise.list&amp;lt;/code&amp;gt; file. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
If using the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add the Proxmox Mail Gateway 9 no-subscription repository with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-no-subscription&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
As with the enterprise repository, make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 no-subscription repository from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
AND REMOVE the BETA repo --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the BETA phase only the &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt; repository is available, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add it with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox-beta.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-test&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 repositories from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.&lt;br /&gt;
&amp;lt;!-- END REMOVE BETA --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to check that all the &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files you added in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; got switched over to Trixie correctly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
Note that the time required for finishing this step heavily depends on the system&#039;s performance, especially the root filesystem&#039;s IOPS and bandwidth.&lt;br /&gt;
A slow spinner can take up to 60 minutes or more, while for a high-performance server with SSD storage, the upgrade can be finished in less than 5 minutes.&lt;br /&gt;
&lt;br /&gt;
{{Note|While the packages are being upgraded certain operations and requests to the API might fail (for example, logging in as a system user in the &amp;lt;code&amp;gt;pam&amp;lt;/code&amp;gt; realm)|reminder}}&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
While running the &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; command, you may be asked to approve changes to configuration files and some service restarts among other prompts. This includes:&lt;br /&gt;
&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;apt-listchanges&amp;lt;/code&amp;gt;: You can simply exit it by pressing &amp;lt;kbd&amp;gt;q&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
* Selecting your default keyboard settings: Simply use the arrow keys to navigate to the one applicable in your case and hit enter.&lt;br /&gt;
* Questions about service restarts (like &amp;lt;code&amp;gt;Restart services during package upgrades without asking?&amp;lt;/code&amp;gt;): Use the default if unsure, as the reboot after the upgrade will restart all services cleanly anyway.&lt;br /&gt;
* Questions about (default) configuration changes: It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup. Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt; -&amp;gt; Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; -&amp;gt; If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/clamav/clamd.conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt; -&amp;gt; Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; -&amp;gt; Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/postfix/master.cf.proto&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/postfix/main.cf.proto&amp;lt;/code&amp;gt; -&amp;gt; These files are not used by Proxmox Mail Gateway - they are the templates for setting up multi-instance postfix instances, which was never used by Proxmox Mail Gateway. See the [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838528 bugreport at bugs.debian.org] for more context.&lt;br /&gt;
*: We recommend to select &amp;quot;Yes&amp;quot; (install the new version), in order to not get asked again for a future upgrade.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/crontab&amp;lt;/code&amp;gt; and other &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; related files on installations on containers on Proxmox VE: The crontab gets randomized by Proxmox VE to prevent all jobs running at the same time in all containers.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is preferred here.&lt;br /&gt;
** &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; may print warnings regarding about &amp;lt;code&amp;gt;collation version mismatch&amp;lt;/code&amp;gt; - These are transitory and will disappear once the cluster has been upgraded to the new version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Important&#039;&#039;&#039;&#039;&#039;: If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
It is not yet necessary to reboot your Proxmox Mail Gateway host at this point. Before doing so, first upgrade PostgreSQL database.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 15 to 17, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 17 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reboot ===&lt;br /&gt;
&lt;br /&gt;
Reboot the host with e command below. Then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Reconnect to the node after it successfully rebooted.&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== Remove old PostreSQL Version ===&lt;br /&gt;
&lt;br /&gt;
You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
&lt;br /&gt;
 apt purge postgresql-15 postgresql-client-15&lt;br /&gt;
&lt;br /&gt;
=== Optional: Modernize apt Repository Sources ===&lt;br /&gt;
&lt;br /&gt;
You can migrate existing repository sources to the recommended deb822 style format, by running:&lt;br /&gt;
&lt;br /&gt;
 apt modernize-sources&lt;br /&gt;
&lt;br /&gt;
By answering the following prompt with &amp;quot;n&amp;quot; you can check the changes the command would make before applying them. To apply them simply run the command again and respond to the prompt with &amp;quot;Y&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The command will also keep the old &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files around by appending &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt; to them. So you will have the new &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files and the old repository configurations in the &amp;lt;code&amp;gt;.list.bak&amp;lt;/code&amp;gt; files. You can remove the leftover backup files once you verified that everything works smoothly with the new format.&lt;br /&gt;
&lt;br /&gt;
{{note|ensure that all external and third-party repositories (e.g. the one provided by [https://pmg.proxmox.com/wiki/index.php/Install_Avast avast] have provided the keys in the correct places).&lt;br /&gt;
|reminder}}&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/trixie/release-notes/upgrading.en.html upgrade specific issues for Trixie].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list for the Proxmox Mail Gateway 9.X minor releases as this gets updated with future minor releases:&lt;br /&gt;
* https://pmg.proxmox.com/wiki/Roadmap#9.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.debian.org/releases/trixie/release-notes/issues.en.html#timezones-split-off-into-tzdata-legacy-package Legacy Timezones were split off] This should not be an issue as Proxmox Mail Gateway never offered the deprecated timezones for selection.&lt;br /&gt;
but if you&#039;ve manually configured one and &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; does not start, install the &amp;lt;code&amp;gt;tzdata-legacy&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The external &amp;lt;code&amp;gt;avast&amp;lt;/code&amp;gt; Virus Scanner [https://pmg.proxmox.com/wiki/index.php/Install_Avast with integration in Promxox Mail Gateway] has not yet released a version for Debian Trixie. If you are using it consider delaying the upgrade until it becomes available&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Trixie (without using the Proxmox Mail Gateway ISO), you may have installed the package &#039;linux-image-amd64&#039;, which conflicts with current 9.x setups. To solve this, you have to remove this package with&lt;br /&gt;
 apt remove linux-image-amd64&lt;br /&gt;
before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
The new kernel can recognize more hardware features such as virtual function of PCI(e) devices. Since network names are usually derived from PIC(e) addresses and features recognized by the kernel, the network configuration might need to be adapted to match the new interface names.&lt;br /&gt;
&lt;br /&gt;
In such cases, the network connection to a Proxmox Datacenter Manager host might be lost during or after the upgrade process. Hence, it is generally recommended to have either physical access or an independent remote connection to the host (for example, via IPMI or iKVM).&lt;br /&gt;
&lt;br /&gt;
The latest version of Proxmox Mail Gateway 8.2 and 9.0 provide a package called &amp;lt;code&amp;gt;proxmox-network-interface-pinning&amp;lt;/code&amp;gt; that you can install.&lt;br /&gt;
This package offers a CLI tool that helps you pin all network interfaces to NIC-based names and update the network configuration simultaneously.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot meta-package changes the bootloader configuration automatically and should be uninstalled ==&lt;br /&gt;
With Debian Trixie the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package got split up a bit further into &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; (containing the EFI-binary used for booting), &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; (containing &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt;) and the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package (containing hooks which run upon upgrades of itself and other packages and install systemd-boot as bootloader).&lt;br /&gt;
&lt;br /&gt;
As Proxmox Systems usually use &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for booting only in some configurations (ZFS on root and UEFI booted without secure boot), which are managed by &amp;lt;code&amp;gt;proxmox-boot-tool&amp;lt;/code&amp;gt;, the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; should be removed.&lt;br /&gt;
&lt;br /&gt;
The package was automatically shipped for systems installed from the PMG 8.0 to PMG 8.2 ISOs, as it contained &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt; in bookworm.&lt;br /&gt;
If the &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script suggests it, the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package is safe to remove unless you manually installed it and are using &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; as a bootloader. Should &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; be required, &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; will warn you accordingly.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script will change its output depending on the state of the upgrade, and should be [[#Continuously_use_the_pmg8to9_checklist_script|run continuously before and after the upgrade]]. It will print which packages should be removed or added at the appropriate time. The only situation where you should keep the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; installed is if you manually setup &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for your system.&lt;br /&gt;
&lt;br /&gt;
See also [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110177 the filed bug for systemd-boot].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/trixie/release-notes/ Release Notes for Debian 13.0 (trixie)]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Roadmap&amp;diff=144</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Roadmap&amp;diff=144"/>
		<updated>2025-09-24T13:44:21Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Proxmox Mail Gateway 8.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*&amp;lt;s&amp;gt;SpamAssassin 4&amp;lt;/s&amp;gt; done&lt;br /&gt;
*Continuous security and bug fix updates&lt;br /&gt;
=Release History=&lt;br /&gt;
See also [https://forum.proxmox.com/forums/announcements.7/ Announcement forum]&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 9.0 (beta) ==&lt;br /&gt;
&#039;&#039;&#039;Released 24. September 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|This is a test version that is not yet intended for production use. The release notes will be continuously updated during the beta phase.}}&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Trixie (13.1)&lt;br /&gt;
* SpamAssassin 4.0.2 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.4.3&lt;br /&gt;
* PostgreSQL 17&lt;br /&gt;
* Latest 6.14.11-2 Kernel as new stable default&lt;br /&gt;
* ZFS 2.3.4&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New Quarantine UI on mobile browsers based on the modern Rust-based Yew framework.&lt;br /&gt;
* Single-Sign-On (SSO) with OpenID Connect, and multiple authentication realms for PMG, which were introduced with PMG 8.2 got significantly improved based on the feedback from our customers and community.&lt;br /&gt;
* Synchronize the configuration templates of the core service &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; with the latest recommendations from upstream.&lt;br /&gt;
* Adapt the Content-Type filters to the renaming of relevant MIME-types for Microsoft executable formats.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* New Quarantine UI on mobile browers based on the Rust based Yew framework, in place of the one based on framework7.&lt;br /&gt;
* The non-mobile Quarantine UI offers a button to switch to the mobile version and recommends switching on displays which are too narrow for comfortable work with it.&lt;br /&gt;
* An XSS vulnerability for the HTTP proxy setting was fixed. See the corresponding Proxmox Security Advisory [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-798035  PSA-2025-00015-1] for further information.&lt;br /&gt;
* It is now possible to define an authentication realm as default instead of the hard-coded internal &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm.&lt;br /&gt;
* OpenID Connect realms can now be configured in the GUI, including the &amp;lt;code&amp;gt;username-claim&amp;lt;/code&amp;gt;, and the default role to be assigned to auto-created users.&lt;br /&gt;
* All labels and widgets containing the terms &amp;quot;blacklist&amp;quot; and &amp;quot;whitelist&amp;quot; were renamed to &amp;quot;blocklist&amp;quot; and &amp;quot;welcomelist,&amp;quot; respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
* Improve the configuration and display of DNSBL sites in the Mail Proxy (&amp;lt;code&amp;gt;postscreen_dnsbl_sites&amp;lt;/code&amp;gt;)([https://bugzilla.proxmox.com/show_bug.cgi?id=3284 issue 3284]).&lt;br /&gt;
* Make the SpamInfo text selectable in the Spam Quarantine interface.&lt;br /&gt;
* Improved handling of translations:&lt;br /&gt;
** Add support for plural forms and ngettext usage.&lt;br /&gt;
** Translations can now contain comments that are extracted from the source code and provide useful context for translators.&lt;br /&gt;
* Updated translations, among others:&lt;br /&gt;
** Czech (new!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Bulgarian&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Polish&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Swedish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
&lt;br /&gt;
* Improvements of OpenID Connect realms, which were introduced in Proxmox Mail Gateway 8.2:&lt;br /&gt;
** Fix an error when logging in the first time to a secondary node as a user in an OIDC realm with enabled auto-creation.&lt;br /&gt;
** The validation for OIDC &amp;lt;code&amp;gt;client-id&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;client-key&amp;lt;/code&amp;gt; was aligned with the [https://www.rfc-editor.org/rfc/rfc6749#appendix-A relevant RFC].&lt;br /&gt;
** The &amp;lt;code&amp;gt;pmg&amp;lt;/code&amp;gt; realm is not hardcoded as the default realm anymore, allowing to select a different default realm.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgqm&amp;lt;/code&amp;gt; utility used for sending spam reports to users now supports timespans between 1 and 24 hours in addition to &amp;lt;code&amp;gt;today&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;yesterday&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;week&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=2452 issue 2452]).&lt;br /&gt;
* Fix an issue where a disallowed value for the Destination TLS policy was accepted by the backend.&lt;br /&gt;
* Leading and trailing whitespace in the &amp;lt;code&amp;gt;__MSGID__&amp;lt;/code&amp;gt; macro in the rule system (containing the &amp;lt;code&amp;gt;Message-ID&amp;lt;/code&amp;gt; header) is now trimmed.&lt;br /&gt;
* The TLS-inbound domains are now added to the Proxmox Mail Gateway system report used in Enterprise support.&lt;br /&gt;
* Mails generated by Proxmox Mail Gateway now have a &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; header allowing them to have a valid DKIM signature.&lt;br /&gt;
* The Date header for autogenerated mails is set with a fixed locale to have it compliant with [https://www.rfc-editor.org/rfc/rfc5322 RFC5322].&lt;br /&gt;
* An issue of &amp;lt;code&amp;gt;pmgtunnel&amp;lt;/code&amp;gt; exiting with errors due to not correctly adapting to changes in the network information parsing code was repaired by fixing its handling of child processes.&lt;br /&gt;
* With the upgrade to Debian Trixie, the &amp;lt;code&amp;gt;application/x-ms-dos-executable&amp;lt;/code&amp;gt; MIME-Type was renamed to &amp;lt;code&amp;gt;application/vnd.microsoft.portable-executable&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;application/x-msdownload&amp;lt;/code&amp;gt;. As &amp;lt;code&amp;gt;exe&amp;lt;/code&amp;gt; files are filtered out in the default ruleset and are usually considered special when handling mails, the existing rules are automatically adapted.&lt;br /&gt;
* The &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; MTA package used by PMG was significantly reworked and improved upstream. PMG was adapted to the changes:&lt;br /&gt;
** &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; is now explicitly configured to run without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; confinement ([https://bugzilla.proxmox.com/show_bug.cgi?id=5323 issue 5323]).&lt;br /&gt;
*: The processes were running without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; since version 5.0, the change now is only making this explicit in the configuration files.&lt;br /&gt;
*: The change is in accordance with [https://salsa.debian.org/postfix-team/postfix-dev/-/blob/debian/master/debian/README.Debian?ref_type=heads#L44 Debian&#039;s recommendation] and in line with [https://www.postfix.org/COMPATIBILITY_README.html#chroot upstream].&lt;br /&gt;
** The &amp;lt;code&amp;gt;postfix@-&amp;lt;/code&amp;gt; default instance was dropped in favor of directly using &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;&lt;br /&gt;
** Deprecations in the shipped postfix configuration templates were fixed, and the [https://www.postfix.org/COMPATIBILITY_README.html compatibility level] was raised to 3.11.&lt;br /&gt;
* The Debian repository sources shipped for the &amp;lt;code&amp;gt;pmg-enterprise&amp;lt;/code&amp;gt; repository were adapted to the preferred Deb822 format.&lt;br /&gt;
* A change in the upstream &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; package caused the daemon not to be enabled automatically since PMG 8.1. Now the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package enables the service in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; maintainer script.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgdaemon&amp;lt;/code&amp;gt; HTTP API servers were adapted to the paths used by the new Yew-based mobile quarantine UI.&lt;br /&gt;
* The locale files served by the HTTP API servers now return their modification times to facilitate caching.&lt;br /&gt;
* Spamreports send to users and the system status report sent to administrators now have a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; version in addition to &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;([https://bugzilla.proxmox.com/show_bug.cgi?id=4023 issue 4023]) ([https://bugzilla.proxmox.com/show_bug.cgi?id=1621 issue 1621]).&lt;br /&gt;
* Adding a custom ACME provider via the &amp;lt;code&amp;gt;pmgconfig&amp;lt;/code&amp;gt; command line utility was fixed for Proxmox Mail Gateway ([https://bugzilla.proxmox.com/show_bug.cgi?id=6748 issue 6748]).&lt;br /&gt;
* The &amp;lt;code&amp;gt;fetchmail&amp;lt;/code&amp;gt; package used for downloading mails via POP/IMAP to be processed by Proxmox Mail Gateway now ships a systemd-unit file instead of a legacy sysv-init script. This is a change to Debian upstream&#039;s version.&lt;br /&gt;
* Fix a spurious warning by the &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; API server daemon, when sending a &amp;lt;code&amp;gt;Cookie&amp;lt;/code&amp;gt; header without a valid authentication ticket.&lt;br /&gt;
* Fix a spurious warning during early boot due to &amp;lt;code&amp;gt;/run/pmg-smtp-filter.cfg&amp;lt;/code&amp;gt; not being in place yet.&lt;br /&gt;
* Ensure the &amp;lt;code&amp;gt;pmgspamreport.timer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pmgreport.timer&amp;lt;/code&amp;gt; units are run after their prerequisites have started on reboot&lt;br /&gt;
* Allow all &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; users to see the list of known MIME-Types, when adding ContentType filter objects ([https://bugzilla.proxmox.com/show_bug.cgi?id=5438 issue 5438]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Install the microcode package matching the current platform.&lt;br /&gt;
*: This ensures that new Proxmox Mail Gateway installations get available fixes for CPU security issues and other CPU bugs.&lt;br /&gt;
*: This also means that installations now have the &amp;lt;code&amp;gt;non-free-firmware&amp;lt;/code&amp;gt; repository enabled.&lt;br /&gt;
*: To get microcode updates that were released after the ISO was built, hosts have to be updated regularly. Microcode updates need a reboot to go into effect.&lt;br /&gt;
* Ignore network interfaces without a valid MAC address instead of aborting the installation.&lt;br /&gt;
* Check that the configured LVM swapsize is not greater than half the disk size ([https://bugzilla.proxmox.com/show_bug.cgi?id=5887 issue 5887]).&lt;br /&gt;
* Handle the case where the DHCP lease includes the search domain in the Host Name option.&lt;br /&gt;
* Improve error reporting for disk and RAID checks.&lt;br /&gt;
* Improvements to the text-based installer and &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;:&lt;br /&gt;
** Improve error reporting when encountering an invalid CIDR.&lt;br /&gt;
** Add plausibility checks for subnet masks and IPv4 address&lt;br /&gt;
* Improvements to the automated installation:&lt;br /&gt;
** Handle the case where the answer file provides an empty search domain.&lt;br /&gt;
** Check the number of disks for RAID configurations already when parsing the answer file to catch invalid configurations earlier.&lt;br /&gt;
** Warn if the answer file contains deprecated &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; keys.&lt;br /&gt;
** Check for duplicate disks in the answer file.&lt;br /&gt;
* Improve robustness of installing on Btrfs.&lt;br /&gt;
* Align the plausibility checks performed by the GUI and TUI installers in case of an installation on Btrfs and a single disk.&lt;br /&gt;
* Improve the visibility of CLI errors by printing an additional newline.&lt;br /&gt;
* Provide &amp;lt;code&amp;gt;--verify-root-password&amp;lt;/code&amp;gt; as option for &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;, to catch mistakes before installation.&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; compatibility level to &amp;lt;code&amp;gt;3.6&amp;lt;/code&amp;gt; for all products&lt;br /&gt;
* The timezone is now set earlier before configuring &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; to ensure it&#039;s set correctly if &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; runs in &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Note that this affects all products **apart from Proxmox Mail Gateway**, which runs &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt; without &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;&lt;br /&gt;
* Do not create the deprecated &amp;lt;code&amp;gt;/etc/timezone&amp;lt;/code&amp;gt; in alignment with [https://metadata.ftp-master.debian.org/changelogs//main/t/tzdata/tzdata_2025b-4_changelog Debian upstream].&lt;br /&gt;
* Ensure that &amp;lt;code&amp;gt;clamav-freshclam&amp;lt;/code&amp;gt; is enabled after installation - see the [https://salsa.debian.org/clamav-team/clamav/-/merge_requests/7 patch submitted upstream for more information].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Notable changes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;9.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== The Test Repository Is Now Named pmg-test ====&lt;br /&gt;
&lt;br /&gt;
For consistency with existing repositories, the &amp;lt;code&amp;gt;pmgtest&amp;lt;/code&amp;gt; repository is now spelled &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Breaking Changes in the Proxmox Mail Gateway API ====&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Google Safe Browsing&amp;quot; option for &amp;lt;code&amp;gt;ClamAV&amp;lt;/code&amp;gt;, which is deprecated since PMG 7.0, in &amp;lt;code&amp;gt;pmg.conf&amp;lt;/code&amp;gt; was dropped.&lt;br /&gt;
* The superfluous fields &amp;lt;code&amp;gt;network_address&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;prefix_size&amp;lt;/code&amp;gt; returned by the &amp;lt;code&amp;gt;/config/mynetworks&amp;lt;/code&amp;gt; API call were dropped, as &amp;lt;code&amp;gt;cidr&amp;lt;/code&amp;gt; contains the same information.&lt;br /&gt;
* The &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; actions, which were not exposed since at least PMG 5.0, and deprecated in PMG 7.2, were dropped from the database handling code.&lt;br /&gt;
* Changing the password of a user via &amp;lt;code&amp;gt;PUT /access/users/{userid}&amp;lt;/code&amp;gt; has been dropped in favor of the &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; API call. The GUI is using &amp;lt;code&amp;gt;/access/password&amp;lt;/code&amp;gt; since at least 2017.&lt;br /&gt;
* Adding and removing entries in the block- and welcomelists of users are now done by the master node in a cluster ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* The API has renamed all black-/whitelist API calls to block-/welcomelist respectively ([https://bugzilla.proxmox.com/show_bug.cgi?id=3755 issue 3755]).&lt;br /&gt;
*: The old API calls are still present for backward compatibility but will be dropped with the next major release.&lt;br /&gt;
*: As these calls were also used in the templates for the spamreport e-mails sent to users, which are often modified by administrators, we recommend adapting your overridden configuration templates.&lt;br /&gt;
* The &amp;lt;code&amp;gt;pmail_raw&amp;lt;/code&amp;gt; variable available to the template for the spam reports sent to users has been renamed to &amp;lt;code&amp;gt;pmail_plain&amp;lt;/code&amp;gt; to match the other variables formatted for plain-text reports.&lt;br /&gt;
*: This variable was never used by a templated shipped by Promxox Mail Gateway, thus it is very unlikely to have been used in a modification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Potential changes in network interface names ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 can now transparently handle many network interface name changes.&lt;br /&gt;
&lt;br /&gt;
These changes may occur when upgrading from Proxmox Mail Gateway 8.x to Proxmox Mail Gateway 9.0 due to new naming scheme policies or the added support for new NIC features. For example, this may happen when upgrading from Kernel 6.8 to Kernel 6.14.&lt;br /&gt;
If the previous primary name remains available as an alternative name, manual intervention may not be necessary since Proxmox Mail Gateway 9.0 allows the use of alternative names in network configurations and firewall rules.&lt;br /&gt;
&lt;br /&gt;
However, in some cases, the previous primary name might not be available as an alternative name after the upgrade. In such cases, manual reconfiguration after the upgrade is currently still necessary.&lt;br /&gt;
&lt;br /&gt;
Before upgrading, you can use the &amp;lt;code&amp;gt;pve-network-interface-pinning&amp;lt;/code&amp;gt; CLI tool to pin network interfaces to custom names.&lt;br /&gt;
For details, see the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_overriding_network_device_names Overriding Network Device Names] section in the reference documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AppArmor 4 ====&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway 9 ships with AppArmor version 4.1.&lt;br /&gt;
Since this version is relatively new, you might see regressions in packages that are not part of the core Proxmox Mail Gateway distribution, for example, &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt; or the CUPS printing daemon.&lt;br /&gt;
&lt;br /&gt;
Most issues with older profiles can be resolved by configuring AppArmor to use the 3.0 ABI by adding the &amp;lt;code&amp;gt;abi &amp;lt;abi/3.0&amp;gt;,&amp;lt;/code&amp;gt; rule to the relevant profile.&lt;br /&gt;
For more details, see the [https://gitlab.com/apparmor/apparmor/-/wikis/apparmorpolicyfeaturesABI AppArmor Wiki].&lt;br /&gt;
&lt;br /&gt;
==== systemd logs &amp;quot;System is tainted: unmerged-bin&amp;quot; after boot ====&lt;br /&gt;
&lt;br /&gt;
It is recommended to ignore this message. See the [https://www.debian.org/releases/trixie/release-notes/issues.en.html#systemd-message-system-is-tainted-unmerged-bin Debian Trixie release notes] for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.2 ==&lt;br /&gt;
&#039;&#039;&#039;Released 27. February 2025&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.9)&lt;br /&gt;
* SpamAssassin 4.0.1 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.7&lt;br /&gt;
* PostgreSQL 15.11&lt;br /&gt;
* Latest 6.8 Kernel as new stable default&lt;br /&gt;
* Newer 6.11 Kernel as opt-in&lt;br /&gt;
* ZFS 2.2.7&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Support for multiple authentication realms, known from Proxmox VE and Proxmox Backup Server.&lt;br /&gt;
* Single-Sign-On (SSO) with the new OpenID Connect access realm type as first new realm.&lt;br /&gt;
*: External authorization servers can now be integrated for management access with Proxmox Mail Gateway, either using existing public services or your own identity and access management solution, for example, Keycloak, Zitadel or LemonLDAP::NG.&lt;br /&gt;
* Support for automated and unattended installation of Proxmox Mail Gateway.&lt;br /&gt;
*: Proxmox VE now ships a tool that prepares a Proxmox Mail Gateway ISO for automated installation.&lt;br /&gt;
*: The prepared ISO retrieves all required settings for automated installation from an answer file.&lt;br /&gt;
*: The answer file can be provided directly in the ISO, on an additional disk such as a USB flash drive, or over the network.&lt;br /&gt;
* Rule System: New option for the Content-Type What Objects, to ignore externally provided type information from the filename and header, and rely solely on file signature based detection.&lt;br /&gt;
* Rule System: New option for Match Field What Object, to restrict matching on the top header section, instead of also matching headers in attached emails.&lt;br /&gt;
* Mails generated by the Proxmox Mail Gateway processing stack can now be signed with DKIM.&lt;br /&gt;
* The Proxmox team has been tracking security-relevant issues in our software explicitly and publishes them in the [https://forum.proxmox.com/threads/149333/ Community Forum] since January 2024.&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [https://pmg.proxmox.com/wiki/index.php/Upgrade_from_7_to_8 Upgrade from 7 to 8].&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.2-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* Add an option to the Match Field What Object to only consider the headers of the top mail-part, instead of also comparing the headers of all attachments (including emails forwarded as attachment [https://bugzilla.proxmox.com/show_bug.cgi?id=2709 issue 2709]).&lt;br /&gt;
* Optionally restrict Content-Type What Object to only match based on the signature detected in the content of the file, disregarding the &amp;lt;code&amp;gt;Content-Type:&amp;lt;/code&amp;gt; and the recommended filename header information ([https://bugzilla.proxmox.com/show_bug.cgi?id=2691 issue 2691] [https://bugzilla.proxmox.com/show_bug.cgi?id=5618 issue 5618]).&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* The end-user quarantine interface now has a short help page explaining its purpose and the available keyboard shortcuts ([https://bugzilla.proxmox.com/show_bug.cgi?id=4311 issue 4311]).&lt;br /&gt;
* The listing of Who, What and When Objects can now optionally also display the description set for each object group, without explicitly selecting it.&lt;br /&gt;
* Fix an XSS issue in the Mail Queue view.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/149333/post-730687 PSA-2024-00015-1] for details.&lt;br /&gt;
* Fix the display message when removing a rule object, to not include the html-escaped icon.&lt;br /&gt;
* Fix a typo in the suggested default text when creating new notification objects.&lt;br /&gt;
* Remove whitespace before or after the subscription key when adding a new one, as they usually are copy-pasted.&lt;br /&gt;
* Fix the public-key DNS record displaying for DKIM selectors larger than 2048 bit.&lt;br /&gt;
* Clarify the label for DKIM domain selection.&lt;br /&gt;
* Enable autocompletion hints for the username, password, and TFA input fields to improve compatibility with password managers ([https://bugzilla.proxmox.com/show_bug.cgi?id=5251 issue 5251]).&lt;br /&gt;
* Show only installed services in the node&#039;s system panel by default, but optionally allow to show all services ([https://bugzilla.proxmox.com/show_bug.cgi?id=5611 issue 5611]).&lt;br /&gt;
* Fix an issue where clicking on an external link to the GUI would display a login screen, even if the current session was still valid.&lt;br /&gt;
* Fix an issue where the date picker would choose the wrong date after changing to a different month.&lt;br /&gt;
* Fix an issue where edit windows would not be correctly masked while loading.&lt;br /&gt;
* Display the end-of-life message as a notice up until three weeks before the end-of-life date, and display it as a warning from that point on.&lt;br /&gt;
* Move the &amp;quot;Reset&amp;quot; button for edit windows to an icon-only button in the title bar ([https://bugzilla.proxmox.com/show_bug.cgi?id=5277 issue 5277]).&lt;br /&gt;
*: This reduces the risk of misclicking and accidentally resetting form data.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Bulgarian (NEW!)&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Korean&lt;br /&gt;
** Russian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Mail Gateway API Backend ====&lt;br /&gt;
* You can now configure the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header information used for mails from the system itself:&lt;br /&gt;
** When sending admin reports&lt;br /&gt;
** Notifications from a notify action&lt;br /&gt;
** Backup jobs&lt;br /&gt;
** Bounces for messages refused for part of the recipients if before queue filtering is used and NDR on block is enabled.&lt;br /&gt;
*: For spam reports and quarantine links this could already be set in the Spam Quarantine options.&lt;br /&gt;
*: The emails still use an empty envelope from address, or for some cases &amp;lt;code&amp;gt;postmaster&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If this is set to contain an email address with a domain name, and DKIM signing based on header is enabled, the mails are now signed with DKIM ([https://bugzilla.proxmox.com/show_bug.cgi?id=4658 issue 4658]).&lt;br /&gt;
* Fix enabling custom SpamAssassin scores on systems where &amp;lt;code&amp;gt;/var/cache&amp;lt;/code&amp;gt; is on a different filesystem from &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: Any pending changes will be preserved across the upgrade.&lt;br /&gt;
* Fix a post-authentication privileged file read vulnerability in the Proxmox Mail Gateway API.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-705346 PSA-2024-00009-1] for details.&lt;br /&gt;
* Make the static email containing the quarantine access link into a template, helping deployments with predominantly non-English speaking users ([https://bugzilla.proxmox.com/show_bug.cgi?id=4211 issue 4211]).&lt;br /&gt;
* Support having a &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; alternative part for report emails generated by PMG, like the daily admin report and the spam quarantine report send to users.&lt;br /&gt;
* Fix the default examples for the Who Objects to use a domain (&amp;lt;code&amp;gt;fromthisdomain.example&amp;lt;/code&amp;gt;) reserved for documentation and examples ([https://bugzilla.proxmox.com/show_bug.cgi?id=5972 issue 5972]).&lt;br /&gt;
* Include the failure to DKIM sign a mail in the Tracking Center output, by adding the internal queue-id to the log message.&lt;br /&gt;
* Prevent a mail from being delivered multiple times when a user clicks on the deliver-button in their spam report multiple times ([https://bugzilla.proxmox.com/show_bug.cgi?id=6126 issue 6126]).&lt;br /&gt;
* Include the receiver email address when logging release or deletion from the quarantine.&lt;br /&gt;
* Fix the custom check script interface to also allow negative spam-scores as result.&lt;br /&gt;
* Fix an issue where comments set for LDAP profiles did not preserve percent encodings.&lt;br /&gt;
* Clarify that links are not displayed as links, but as plain-text when enabling the  &amp;lt;code&amp;gt;allowhrefs&amp;lt;/code&amp;gt; option.&lt;br /&gt;
* Use a lower level perl routine for setting file-contents to reduce write amplification.&lt;br /&gt;
* Use double-hyphen as argument prefix instead of the outdated single-hyphen in CLI commands documentation.&lt;br /&gt;
* Fix an issue where the documentation for CLI aliases did not mention the complete aliased command.&lt;br /&gt;
* Reload all Proxmox Mail Gateway services when the &amp;lt;code&amp;gt;proxmox-spamassassin&amp;lt;/code&amp;gt; package is updated to a new version.&lt;br /&gt;
&lt;br /&gt;
==== Access Control ====&lt;br /&gt;
* Realm System ported from Proxmox VE.&lt;br /&gt;
*: Enables you to configure multiple external authentication realms for users in the administration backend.&lt;br /&gt;
* Single-Sign-On (SSO) with the new OpenID Connect access realm type as first new realm.&lt;br /&gt;
*: External authorization servers can now be integrated for management access with Proxmox Mail Gateway, either using existing public services or your own identity and access management solution, for example, Keycloak, Zitadel or LemonLDAP::NG.&lt;br /&gt;
*: With the ability to auto-create users upon first logging it.&lt;br /&gt;
*: Roles for auto-created users can be queried from a configurable role-claim on your OpenID Connect service, or use a fixed role for all auto-created user of a realm.&lt;br /&gt;
*: Initial login for an auto-created user in a cluster needs to be done on the primary/master node.&lt;br /&gt;
&lt;br /&gt;
==== Notable bugfixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Since the release of Proxmox Mail Gateway 8.1 the Proxmox team has begun [https://forum.proxmox.com/forums/security-advisories.26/ tracking explicit security issues publicly in our forum]. The thread lists all security issues since January 2024.&lt;br /&gt;
*: Following the posts there is highly recommended.&lt;br /&gt;
* Fix an RCE vulnerability in the shim bootloader used for Secure Boot support.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-virtual-environment-security-advisories.149331/post-678937 PSA-2024-00007-1] for details.&lt;br /&gt;
* Fix unexpected behavior in handling single-part attachments in the rule system.&lt;br /&gt;
*: See [https://forum.proxmox.com/threads/proxmox-mail-gateway-security-advisories.149333/post-728656 PSA-2024-00012-1] for details.&lt;br /&gt;
* Fix the &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; tool to identify the newer released &amp;lt;code&amp;gt;proxmox-kernel&amp;lt;/code&amp;gt; series (6.5, 6.8, 6.11) as expected kernel versions.&lt;br /&gt;
* Add a section to the &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; tool for checking potential issues in the currently configured ruleset.&lt;br /&gt;
* Increase the minimum password length to 8, following NIST recommendation and the change in the installer&lt;br /&gt;
* Include information about the routing table in the &amp;lt;code&amp;gt;pmg-system-report&amp;lt;/code&amp;gt; tool used for Enterprise Support information collection.&lt;br /&gt;
* Add anchors to subsections of the documentation to provide links to the specific point where an option is documented.&lt;br /&gt;
* Document the steps needed to activate a custom SpamAssassin configuration ([https://bugzilla.proxmox.com/show_bug.cgi?id=3979 issue 3979]).&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
* Support for automated and unattended installation of Proxmox Mail Gateway, as already released for Proxmox VE 8.2 and Proxmox Backup Server 3.2.&lt;br /&gt;
*: Introduce the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt; tool that prepares an ISO for automated installation.&lt;br /&gt;
*: The automated installation ISO reads all required settings from an answer file in TOML format.&lt;br /&gt;
*: One option to provide the answer file is to directly add it to the ISO. Alternatively, the installer can retrieve it from a specifically-labeled partition or via HTTPS from a specific URL.&lt;br /&gt;
*: If the answer file is retrieved via HTTPS, URL and fingerprint can be directly added to the ISO, or obtained via DHCP or DNS.&lt;br /&gt;
*: See the [https://pve.proxmox.com/wiki/Automated_Installation wiki page on Automated Installation] for more details.&lt;br /&gt;
* Ship the recent version 7.20 of memtestx86+, adding support for current CPU Generations (Intel&#039;s Arrow Lake and Ryzen 9000 series) as well as preliminary NUMA support.&lt;br /&gt;
* Fix an issue where setting ZFS compression to &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; did not have any effect, due to a change in upstream defaults.&lt;br /&gt;
* Improve the layout of widgets in the GTK-based installer for consistent margins and alignment.&lt;br /&gt;
* Add a post-installation notification mechanism for automated installations ([https://bugzilla.proxmox.com/show_bug.cgi?id=5536 issue 5536]).&lt;br /&gt;
*: This mechanism can be configured with the new &amp;lt;code&amp;gt;post-installation-webhook&amp;lt;/code&amp;gt; section in the answer file.&lt;br /&gt;
* Add support for running a custom script on first boot after automated installation ([https://bugzilla.proxmox.com/show_bug.cgi?id=5579 issue 5579]).&lt;br /&gt;
*: The script can be provided in the ISO or fetched from an URL.&lt;br /&gt;
* Allow users to set hashed passwords in the &amp;lt;code&amp;gt;proxmox-auto-installer&amp;lt;/code&amp;gt; answer file.&lt;br /&gt;
* Allow users to customize the label of the partition from which the automated installer fetches the answer file.&lt;br /&gt;
* Add ability to detect and rename an existing ZFS pool named &amp;lt;code&amp;gt;rpool&amp;lt;/code&amp;gt; during the installation.&lt;br /&gt;
* Improve the email address validation to include a broader set of email address formats.&lt;br /&gt;
*: This implements the email validation check specified in the [https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address HTML specification].&lt;br /&gt;
* The text-based installer now fails if no supported NIC was found, similar to graphical installer.&lt;br /&gt;
* Improve UI consistency by adding the missing background layer for the initial setup error screen in the text-based installer.&lt;br /&gt;
* Improve usability for small screens by adding a tabbed view for the advanced options at the disk selection step in the text-based installer.&lt;br /&gt;
*: This change only affects screens with a screen width of less than or equal to 80 columns.&lt;br /&gt;
* Fix an issue with ISOs generated with the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt; which caused the user to end up in the GRUB shell when booting from a block device (e.g. an USB flash drive) in UEFI mode.&lt;br /&gt;
* Fix a bug which caused some kernel parameters related to the automated installer to be removed incorrectly.&lt;br /&gt;
* Fix a bug which caused the installer to not detect Secure Boot in some cases.&lt;br /&gt;
* Ask the user for patience while making the system bootable if multiple disks are configured, as this may take longer than expected.&lt;br /&gt;
* Preserve the &amp;lt;code&amp;gt;nomodeset&amp;lt;/code&amp;gt; kernel command-line parameter.&lt;br /&gt;
*: A missing &amp;lt;code&amp;gt;nomodeset&amp;lt;/code&amp;gt; parameter has caused display rendering issues when booting the finished Proxmox Mail Gateway installation on some systems ([https://bugzilla.proxmox.com/show_bug.cgi?id=4230#c38 see this comment for more information]).&lt;br /&gt;
* Improve user-visible error and log messages in the installer.&lt;br /&gt;
* Improve documentation for the &amp;lt;code&amp;gt;proxmox-auto-install-assistant&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve error reporting by printing the full error message when the installation fails in &amp;lt;code&amp;gt;proxmox-auto-installer&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve error reporting by printing the full error message when mounting and unmounting the installation file system fails in &amp;lt;code&amp;gt;proxmox-chroot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improve debugging and testing by enumerating the installation environment anew (e.g. when running the command &amp;lt;code&amp;gt;dump-env&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Send the correct content-type charset &amp;lt;code&amp;gt;utf-8&amp;lt;/code&amp;gt; when fetching answer files from an HTTP server during automated installation.&lt;br /&gt;
* Switch the text-based installer rendering backend from termion to crossterm.&lt;br /&gt;
* Raise minimum root password length from 5 to 8 characters for all installers.&lt;br /&gt;
*: This change is done in accordance with current [https://pages.nist.gov/800-63-4/sp800-63b.html#passwordver NIST recommendations].&lt;br /&gt;
* Print more user-visible information about the reasons the auto installation failed.&lt;br /&gt;
* Allow RAID levels to be set case-insensitively in the answer file for the auto-installer.&lt;br /&gt;
* Prevent the auto-installer from printing progress messages while there has been no progress.&lt;br /&gt;
* Disallow configuring BTRFS as root filesystem for Proxmox products that do not currently support it.&lt;br /&gt;
* Correctly acknowledge the user&#039;s preference whether to reboot on error during auto installation ([https://bugzilla.proxmox.com/show_bug.cgi?id=5984 issue 5984]).&lt;br /&gt;
* Allow binary executables (in addition to shell scripts) to be used as the first-boot executable for the auto-installer.&lt;br /&gt;
* Allow properties in the answer file of the auto-installer to be either in &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;kebab-case&amp;lt;/code&amp;gt;.&lt;br /&gt;
*: The &amp;lt;code&amp;gt;kebab-case&amp;lt;/code&amp;gt; variant is preferred to be more consistent with other Proxmox configuration file formats.&lt;br /&gt;
*: The &amp;lt;code&amp;gt;snake_case&amp;lt;/code&amp;gt; variant will be gradually deprecated and removed in future major version releases.&lt;br /&gt;
* Validate the locale and first-boot-hook settings while preparing the auto-installer ISO instead of failing the installation due to wrong settings.&lt;br /&gt;
* Prevent printing non-critical kernel logging messages, which drew over the TUI installer&#039;s interface.&lt;br /&gt;
* Keep network configuration detected via DHCP in the GUI Installer, even when not clicking &amp;lt;code&amp;gt;Next&amp;lt;/code&amp;gt; first ([https://bugzilla.proxmox.com/show_bug.cgi?id=2502 issue 2502]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.2-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel 6.8 ====&lt;br /&gt;
&lt;br /&gt;
The Proxmox Mail Gateway 8.2 releases will install and use the 6.8 Linux kernel by default. A major kernel version change can have a few hardware-specific side effects. The kernel version 6.8 has been the default kernel for Proxmox Mail Gateway installations since April 2024, so most existing installations should already be using it.&lt;br /&gt;
&lt;br /&gt;
Most issues with new kernel versions do not affect virtual machines and container guests, so virtualized Promox Mail Gateway installations are not affected.&lt;br /&gt;
&lt;br /&gt;
===== Kernel: Change in Network Interface Names =====&lt;br /&gt;
&lt;br /&gt;
Upgrading kernels always carries the risk of changes in network interface names, which can lead to invalid network configurations after a reboot.&lt;br /&gt;
In this case, you must either update the network configuration to reflect the name changes, or pin the network interface to its name beforehand.&lt;br /&gt;
&lt;br /&gt;
See [https://pve.proxmox.com/pve-docs/pve-admin-guide.html#network_override_device_names the Proxmox VE reference documentation] on how to pin the interface names based on MAC Addresses.&lt;br /&gt;
&lt;br /&gt;
Currently, the following models are known to be affected at higher rates:&lt;br /&gt;
* Models using &amp;lt;code&amp;gt;i40e&amp;lt;/code&amp;gt;. Their names can get an additional port suffix like &amp;lt;code&amp;gt;p0&amp;lt;/code&amp;gt; added.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.1 ==&lt;br /&gt;
&#039;&#039;&#039;Released 29. February 2024&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.5)&lt;br /&gt;
* SpamAssassin 4.0.0 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.3&lt;br /&gt;
* PostgreSQL 15.6&lt;br /&gt;
* Latest 6.5 Kernel as new stable default&lt;br /&gt;
* ZFS 2.2.2&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Extend the rule system to allow selection of the &amp;lt;strong&amp;gt;match-if mode&amp;lt;/strong&amp;gt; for entries in What/Who/When Objects, and multiple Objects in Rules, providing flexible control over whether all, any, none, or some but not all must match.&lt;br /&gt;
*: See the [[#8.1-rule-system-enhancements|enhancements in the rule system section]] for more details and examples.&lt;br /&gt;
* Optional DKIM signing based on the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header (also known as &amp;lt;code&amp;gt;RFC5322.From&amp;lt;/code&amp;gt;), instead of the Envelope sender (also known as &amp;lt;code&amp;gt;RFC5321.From&amp;lt;/code&amp;gt;) ([https://bugzilla.proxmox.com/show_bug.cgi?id=2971 issue 2971]).&lt;br /&gt;
&lt;br /&gt;
* Secure Boot support.&lt;br /&gt;
*: Proxmox Mail Gateway now includes a signed shim bootloader trusted by most hardware&#039;s UEFI implementations. All necessary components of the boot chain are available in variants signed by Proxmox.&lt;br /&gt;
*: The Proxmox Mail Gateway installer can now be run in environments where Secure Boot is required and enabled, and the resulting installation can boot in such environments.&lt;br /&gt;
*: Existing Proxmox Mail Gateway installations can be switched over to Secure Boot without reinstallation by executing some manual steps, see the [https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysboot_secure_boot documentation] for details.&lt;br /&gt;
*: How to use custom secure boot keys has been documented in the [https://pve.proxmox.com/wiki/Secure_Boot_Setup Secure Boot Setup] page in the Proxmox VE wiki. For using DKMS modules with secure boot see the [https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysboot_secure_boot reference documentation].&lt;br /&gt;
&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [https://pmg.proxmox.com/wiki/index.php/Upgrade_from_7_to_8 Upgrade from 7 to 8]&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.1-rule-system-enhancements&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* Make the rule system more flexible by introducing a match-if-mode for objects and groups. The match-if-mode of an object (or group) determines whether any, all, not all or none of its children must match for the whole object (or group) to match. This allows to implement complex rules, for example:&lt;br /&gt;
** Exclude certain recipients from a rule, while still considering all later rules for them.&lt;br /&gt;
** Treat emails differently if they contain particular attachments and are detected as spam or contain a virus.&lt;br /&gt;
** Match attachments with a filename ending in &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;, but being detected as executable by the content-type filter.&lt;br /&gt;
** Matching a mail sent from one address and containing a phrase in the subject.&lt;br /&gt;
* Disclaimers can now be added on top of the message, instead of only at the bottom ([https://bugzilla.proxmox.com/show_bug.cgi?id=2606 issue 2606]).&lt;br /&gt;
* The separator &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; for disclaimers can now be optionally omitted ([https://bugzilla.proxmox.com/show_bug.cgi?id=2430 issue 2430]).&lt;br /&gt;
* Adapt the number of parallel worker processes for the SMTP filter to increased memory requirements and availability.&lt;br /&gt;
* Make the timeout for processing a mail consistent between before- and after-queue filtering, and make it configurable.&lt;br /&gt;
* Prevent duplicate mail delivery when filtering runs into a timeout.&lt;br /&gt;
* Fix the synchronization of the user wants- and blocklists if the last address is removed for a user ([https://bugzilla.proxmox.com/show_bug.cgi?id=4392 issue 4392]).&lt;br /&gt;
* Further improve input validation for regular expressions in the rule system ([https://bugzilla.proxmox.com/show_bug.cgi?id=4811 issue 4811]).&lt;br /&gt;
* Fix an error in the collection of virus occurrence statistics.&lt;br /&gt;
* The spam report e-mails now correctly handle addresses with characters that need to be escaped for the API and GUI.&lt;br /&gt;
* Display the descriptions for rules from the advanced KAM ruleset in the spam info grid in the quarantine view.&lt;br /&gt;
* Improve the output of &amp;lt;code&amp;gt;pmgdb dump&amp;lt;/code&amp;gt; used for gathering information about the ruleset:&lt;br /&gt;
** Add information about the type of What Objects&lt;br /&gt;
** Add optional &amp;lt;code&amp;gt;--rules&amp;lt;/code&amp;gt; parameter to restrict output to rules that are active or inactive&lt;br /&gt;
** Visually emphasize whether a rule is active&lt;br /&gt;
** Remove unnecessary filler words from output&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
&lt;br /&gt;
* Make it easier to manage large deployments by adding a filter- and search-box for ([https://bugzilla.proxmox.com/show_bug.cgi?id=4510 issue 4510]):&lt;br /&gt;
*: Relay Domains&lt;br /&gt;
*: Transport&lt;br /&gt;
*: Networks&lt;br /&gt;
*: Objects in the rule system&lt;br /&gt;
* Add icons to the backup destination panel for improved UX.&lt;br /&gt;
* Fix an issue where the OK button would stay disabled when editing an ACME DNS challenge plugin ([https://bugzilla.proxmox.com/show_bug.cgi?id=4531 issue 4531]).&lt;br /&gt;
* Fix TLS 1.3-only configuration for the API proxy server ([https://bugzilla.proxmox.com/show_bug.cgi?id=4859 issue 4859]).&lt;br /&gt;
* Fix spelling errors in the GUI and improve gettext instances so that they can be better translated.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Croatian (NEW!)&lt;br /&gt;
** Georgian (NEW!)&lt;br /&gt;
** Arabic&lt;br /&gt;
** Catalan&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Polish&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Spanish&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
** Ukrainian&lt;br /&gt;
** The language code for Korean was corrected from &amp;lt;code&amp;gt;kr&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ko&amp;lt;/code&amp;gt; in alignment with ISO 639-1, while maintaining a symbolic link for backward compatibility for now.&lt;br /&gt;
** Several remaining occurrences of the &amp;lt;code&amp;gt;GiB&amp;lt;/code&amp;gt; unit in the GUI can now be translated ([https://bugzilla.proxmox.com/show_bug.cgi?id=4551 issue 4551]).&lt;br /&gt;
&lt;br /&gt;
==== Access Control ====&lt;br /&gt;
&lt;br /&gt;
* Allow usernames shorter than 4 characters, in accordance with Proxmox VE and Proxmox Backup Server ([https://bugzilla.proxmox.com/show_bug.cgi?id=4818 issue 4818])&lt;br /&gt;
&lt;br /&gt;
==== Notable bug fixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Harden the Postfix configuration for the external port to address the [https://www.postfix.org/smtp-smuggling.html SMTP Smuggling] security issue, by implementing all recommendations from upstream.&lt;br /&gt;
* Switch the default time-stamp format expected by the Tracking Center to the RFC3339 based information in the logs in Proxmox Mail Gateway 8.0 and newer. While this was initially meant as a small clean-up a few issues around the switch between DST and regular time were fixed with the changes.&lt;br /&gt;
* Secure Boot support.&lt;br /&gt;
*: Proxmox Mail Gateway now ships a shim bootloader signed by a CA trusted by most hardware&#039;s UEFI implementation. In addition, it ships variants of the GRUB bootloader, MOK utilities and kernel images signed by Proxmox and trusted by the shim bootloader.&lt;br /&gt;
*: New installation will support Secure Boot out of the box if it is enabled.&lt;br /&gt;
*: Existing installations can be adapted to Secure Boot by installing optional packages, and possibly reformatting and re-initializing the ESP(s), without the need for a complete reinstallation. See [https://pve.proxmox.com/wiki/Secure_Boot_Setup the wiki article for more details].&lt;br /&gt;
* Fix cluster setups recreated after restoring a backup with statistics ([https://bugzilla.proxmox.com/show_bug.cgi?id=5189 issue 5189]).&lt;br /&gt;
* The kernel shipped by Proxmox is shared for all products. This is now reflected in the renaming from &amp;lt;code&amp;gt;pve-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pve-headers&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;proxmox-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;proxmox-headers&amp;lt;/code&amp;gt; respectively in all relevant packages.&lt;br /&gt;
* The new &amp;lt;code&amp;gt;proxmox-default-kernel&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;proxmox-default-headers&amp;lt;/code&amp;gt; meta-packages will depend on the currently recommended kernel-series.&lt;br /&gt;
* Many edge-cases encountered during the upgrade from Proxmox Mail Gateway 7.3 to 8 by our user-base are now detected and warned about in the improved &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; checks:&lt;br /&gt;
** Notify when a template was copied to &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; without any modifications, to prevent missing important changes to config files.&lt;br /&gt;
** Warn if [https://github.com/dell/dkms DKMS] modules are detected, as many of them do not upgrade smoothly to the newer kernel versions in Mail Gateway 8.&lt;br /&gt;
** Warn if version 7 of the Mail Gateway system does not have the correct meta-package of &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; installed. The correct meta-package is required to actually upgrade the installed bootloader to the newest version.&lt;br /&gt;
* Support for adding custom ACME enabled CA&#039;s which require authentication through &#039;&#039;&#039;E&#039;&#039;&#039;xternal &#039;&#039;&#039;A&#039;&#039;&#039;ccount &#039;&#039;&#039;B&#039;&#039;&#039;inding (EAB) on the command line ([https://bugzilla.proxmox.com/show_bug.cgi?id=4497 issue 4497]).&lt;br /&gt;
* Fix non-interactive use of the &amp;lt;code&amp;gt;pmgsh&amp;lt;/code&amp;gt; utility ([https://bugzilla.proxmox.com/show_bug.cgi?id=4815 issue 4815]).&lt;br /&gt;
* Improve the parsing of config and system files, used in many places of the code. This fixes an issue with displaying the network interfaces without a correct hostname entry in &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; and aims to prevent similar issues in the future.&lt;br /&gt;
* Prevent cluster synchronization from failing due to a change in fingerprint parsing in OpenSSL.&lt;br /&gt;
* Add support for having a Proxmox Backup Server remote on an alternate port  ([https://bugzilla.proxmox.com/show_bug.cgi?id=4944 issue 4944]).&lt;br /&gt;
* Reduce log severity for periodic informational messages from &amp;lt;code&amp;gt;error&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Changelogs for new package versions shown in the UI are now all gathered with &amp;lt;code&amp;gt;apt changelog&amp;lt;/code&amp;gt;, as this is now supported by the Proxmox repositories.&lt;br /&gt;
* Add information about the configured domains for DKIM signing to the report generated for support cases.&lt;br /&gt;
* The documentation on firmware updates provided by the operating system has been extended and revised, helping administrators to identify if their setup is optimal.&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* The ISO is able to run on Secure Boot enabled machines.&lt;br /&gt;
* The text-based UI got significant improvement based on the feedback received from the first release in Proxmox Mail Gateway 8.0.&lt;br /&gt;
* The current link-state of each network interface is now displayed in the network configuration view, helping in identifying the correct NIC for the management interface ([https://bugzilla.proxmox.com/show_bug.cgi?id=4869 issue 4869]).&lt;br /&gt;
* If provided by the DHCP server, the hostname field is already filled out with the information from the lease.&lt;br /&gt;
* The correct meta-package of &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; is now installed based on the boot mode (&amp;lt;code&amp;gt;grub-pc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;grub-efi-amd64&amp;lt;/code&amp;gt;). This ensures that the bootloader on disk gets updated when there is an upgrade for the &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The text-based UI is now also available over a serial console, for headless systems with a serial port.&lt;br /&gt;
* The root dataset on ZFS installations now uses &amp;lt;code&amp;gt;acltype=posixacl&amp;lt;/code&amp;gt; in line with [https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Bookworm%20Root%20on%20ZFS.html upstream&#039;s recommendation].&lt;br /&gt;
* Kernel parameters passed on the command line during install are now also set in the target system ([https://bugzilla.proxmox.com/show_bug.cgi?id=4747 issue 4747]).&lt;br /&gt;
* Fix the warning that is shown in case the address family (IPv4, IPv6) of the host IP and DNS server do not match.&lt;br /&gt;
* The text-based UI now sets the correct disk-size for the selected disk, instead of limiting the installation to the size of the first disk in the list ([https://bugzilla.proxmox.com/show_bug.cgi?id=4856 issue 4856]).&lt;br /&gt;
* For better UX, the text-based UI now also displays a count-down before automatically rebooting.&lt;br /&gt;
* The screensaver in the graphical installer is now disabled.&lt;br /&gt;
* The graphical installer now displays the units used for disk-based options.&lt;br /&gt;
* The kernel command-line parameter &amp;lt;code&amp;gt;vga788&amp;lt;/code&amp;gt; is now set for both the graphical debug and all text-based UI installation options. This improves compatibility of the installer with certain hardware combinations.&lt;br /&gt;
* Remove the checksum-options of &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fletcher2&amp;lt;/code&amp;gt; for ZFS, for being dangerous and deprecated respectively.&lt;br /&gt;
* Improve the layout in the graphical installer to ensure correct margins and alignment of widgets.&lt;br /&gt;
* Set a timeout for country detection, preventing the installer from hanging at that step ([https://bugzilla.proxmox.com/show_bug.cgi?id=4872 issue 4872]).&lt;br /&gt;
* General improvements for running external commands in the installer backend in order to prevent lockups.&lt;br /&gt;
* Improve validation of hostname length and allowed characters set in the installer ([https://bugzilla.proxmox.com/show_bug.cgi?id=5230 issue 5230]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.1-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
* Some SAS2008 controllers need a workaround to get detected since kernel 6.2, see the [https://forum.proxmox.com/threads/no-sas2008-after-upgrade.129499/page-4#post-607858 forum thread] for details.&lt;br /&gt;
&lt;br /&gt;
* The TPM (Trusted Platform Module) hardware random number generator (RNG) is now disabled on all AMD systems equipped with a firmware-based TPM (fTPM) device. This change was implemented due to such RNGs causing stutters in many systems. Affected systems should switch the RNG source from &amp;lt;code&amp;gt;/dev/hwrng&amp;lt;/code&amp;gt; to an alternative, like &amp;lt;code&amp;gt;/dev/urandom&amp;lt;/code&amp;gt;.&lt;br /&gt;
: Reference: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=554b841d470338a3b1d6335b14ee1cd0c8f5d754 kernel commit &amp;quot;tpm: Disable RNG for all AMD fTPMs&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* Some Dell models, which appear to include all those using a BCM5720 network card, have a compatibility issue with the &amp;lt;code&amp;gt;tg3&amp;lt;/code&amp;gt; driver in the kernel based on version 6.5.11.&lt;br /&gt;
*: From our current understanding 14th Generation Dell Servers (T140, R240, R640,...) are affected, while others (e.g., R630, R620, R610,...) do not seem to be affected. We are currently investigating this issue. In the meantime, we recommend pinning the kernel to version 6.2 on affected hosts.&lt;br /&gt;
*: Some users report that disabling the &amp;lt;code&amp;gt;X2APIC&amp;lt;/code&amp;gt; option in the BIOS resolved this issue as a workaround.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 8.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 29. June 2023&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bookworm (12.0)&lt;br /&gt;
* Latest 6.2 Kernel as stable default&lt;br /&gt;
* ZFS 2.1.12&lt;br /&gt;
* SpamAssassin 4.0.0 (with updated rulesets)&lt;br /&gt;
* ClamAV 1.0.1&lt;br /&gt;
* PostgreSQL 15.3&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* New major release based on the great Debian Bookworm.&lt;br /&gt;
&lt;br /&gt;
* Seamless upgrade from Proxmox Mail Gateway 7.3, see [[Upgrade from 7 to 8]]&lt;br /&gt;
*: New &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; pre-flight checking script analyzing the system for common misconfigurations and missed steps during the upgrade&lt;br /&gt;
&lt;br /&gt;
* Add new text-based UI mode for the installation ISO, written in Rust using the [https://github.com/gyscos/cursive Cursive] TUI (Text User Interface) library:&lt;br /&gt;
*: You can use the new TUI mode to work around issues with launching the GTK based graphical installer, sometimes observed on both very new and rather old hardware.&lt;br /&gt;
*: The new text mode executes the same code for the actual installation as the existing graphical mode.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
&lt;br /&gt;
* When adding a &amp;quot;Match Field&amp;quot; &#039;&#039;What&#039;&#039; object, check that the provided regular expression is a valid regular expression.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=d86c0aebe276674a8cf03e11f0f2eaf732806963 --&amp;gt;&lt;br /&gt;
* Disable SpamAssassin&#039;s naive-Bayesian-style classifier and the auto-whitelisting plugin by default.&lt;br /&gt;
*: Both features lead to worse detection rates in the Spam Filter in most setups.&lt;br /&gt;
*: Bayes needs manual training and thorough consideration, as well as continuous maintenance.&lt;br /&gt;
*: Existing setups are kept without change on upgrade.&lt;br /&gt;
*: For new setups the old behavior can be enabled through the GUI.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=f6ab3f7837946b5d11e0610b60057da079d0c0bc --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
* Improved Dark color theme:&lt;br /&gt;
*: The Dark color theme, introduced in Proxmox Mail Gateway 7.3, received a lot of positive feedback from our community, which resulted in further improvements.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Ukrainian (NEW)&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=e0dd5e6989adcd4a5d796453707371ac82a1b4a3 --&amp;gt;&lt;br /&gt;
** Japanese&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=326feddf629345018f165216decaff2b5fb3bad2 --&amp;gt;&lt;br /&gt;
** Simplified Chinese &lt;br /&gt;
    &amp;lt;!--  https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=e5fb5ffc3fb71ea0e4aa9323b4dbfef3d2dbf998 --&amp;gt;&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
    &amp;lt;!--  https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=f133ff0de42bf852f5cfc32b20458f37790b82ef --&amp;gt;&lt;br /&gt;
** The size units (Bytes, KB, MiB,...) are now passed through the translation framework as well, allowing localized variants (e.g., for French).&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-widget-toolkit.git;a=commit;h=01e64778ad112504d1de155c442571f54da46a45 --&amp;gt;&lt;br /&gt;
** The language selection is now localized and displayed in the currently selected language&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=proxmox-i18n.git;a=commit;h=adf33b65568046ba74869d6f980bc1fb00ebf845 --&amp;gt;&lt;br /&gt;
* Disable advanced statistic filters by default, as their behavior may not be immediately clear without consulting the documentation first.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=64e64a212899721c4b0011c08557b65d8d83c9ac --&amp;gt;&lt;br /&gt;
* HTML-encode rule names before rendering as additional hardening against XSS.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-gui.git;a=commit;h=df2a647a7263efb667d801c3547883bcc72951df --&amp;gt;&lt;br /&gt;
* The tracking center can now parse the new syslog format for dates that was introduced in Debian Bookworm.&lt;br /&gt;
*: The logging format of &amp;lt;code&amp;gt;rsyslog&amp;lt;/code&amp;gt; was changed to include Timezone information (RFC3339) in the logs, making the Tracking Center more robust across DST changes and year changes.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-log-tracker.git;a=commit;h=34c921adddf2ba7d267de0365828a83a909c9698 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Access control ====&lt;br /&gt;
* Add TFA/TOTP lockout to protect against an attacker who has obtained the user password and attempts to guess the second factor:&lt;br /&gt;
*: If TFA fails too many times in a row, this user account is locked out of TFA for an hour. If TOTP fails too many times in a row, TOTP is disabled for the user account. Using a recovery key will unlock a user account. &amp;lt;!-- NOT YET BUMPED --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* Add new text-based UI mode for the installation ISO, written in Rust using the [https://github.com/gyscos/cursive Cursive] TUI (Text User Interface) library:&lt;br /&gt;
*: You can use the new TUI mode to work around issues with launching the GTK based graphical installer, sometimes observed on both very new and rather old hardware.&lt;br /&gt;
*: The new text mode executes the same code for the actual installation as the existing graphical mode.&lt;br /&gt;
* The version of BusyBox shipped with the ISO was updated to version 1.36.1.&lt;br /&gt;
* Detection of unreasonable system time.&lt;br /&gt;
: If the system time is older than the time the installer was created, the system notifies the user with a warning.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pve-installer.git;a=commit;h=d0817324af4f25119ae5284720088198dd7985e3 --&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ethtool&amp;lt;/code&amp;gt; is now shipped with the ISO and installed on all systems.&lt;br /&gt;
* &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; is provided by its own package instead of &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; in Debian Bookworm and is installed with the new ISO.&lt;br /&gt;
* The installation ISO now ships the dependencies for extracting text from attachments using SpamAssassin 4, eliminating the need to install the packages manually.&lt;br /&gt;
&lt;br /&gt;
==== Notable bugfixes and general improvements ====&lt;br /&gt;
&lt;br /&gt;
* Add a &amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt; CLI tool to assist in upgrading from Proxmox Mail Gateway 7.3 to 8.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=16fe9a1e3d25021b4c4d33e1e9ba03e06c4d6ab8 --&amp;gt;&lt;br /&gt;
* Fix an issue where an invalid regular expression in a &amp;quot;Match Field&amp;quot; &#039;&#039;What&#039;&#039; object would cause &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; to exit and restart, possibly leading to wrongly denied mails. Instead, &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; now logs a warning if it encounters an invalid regular expression.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=d86c0aebe276674a8cf03e11f0f2eaf732806963 --&amp;gt;&lt;br /&gt;
* During package installation or upgrade, ignore certain transient or obvious errors to avoid leaving the package in a broken state.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=e53e413463d8a20d67037b7dbdabebc4ded294b5 --&amp;gt;&lt;br /&gt;
* Fix an issue where the Proxmox Mail Gateway system report would wrongly indicate a DNS misconfiguration.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=c7fd30ebab18e30aa55301640d5f4dec422b3a94 --&amp;gt;&lt;br /&gt;
* When authenticating via PAM, pass the &amp;lt;code&amp;gt;PAM_RHOST&amp;lt;/code&amp;gt; item. With this, it is possible to manually configure PAM such that certain users (for example root@pam) can only log in from certain hosts.&lt;br /&gt;
    &amp;lt;!-- https://git.proxmox.com/?p=pmg-api.git;a=commit;h=1e0ca2d2d8ec9d32df73f7637fcd857bde20f49b --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;8.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
* The advanced statistics filter is now disabled by default.&lt;br /&gt;
*: To avoid changing the behavior of a Proxmox Mail Gateway 7.3 instance on upgrade, the upgrade process will set the &amp;lt;code&amp;gt;advfilter&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; if no explicit value is set.&lt;br /&gt;
&lt;br /&gt;
* SpamAssassin&#039;s naive-Bayesian-style classifier and the auto-whitelisting plugin are now disabled by default.&lt;br /&gt;
*:To avoid changing the behavior of a Proxmox Mail Gateway 7.3 instance on upgrade, the upgrade process will set each of the &amp;lt;code&amp;gt;use_awl&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;use_bayes&amp;lt;/code&amp;gt; options to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; if no explicit value is set.&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.3 ==&lt;br /&gt;
&#039;&#039;&#039;Released 28. March 2023&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bullseye (11.6)&lt;br /&gt;
* Latest 5.15 Kernel as stable default&lt;br /&gt;
* Newer 6.2 kernel as opt-in&lt;br /&gt;
* ZFS 2.1.9&lt;br /&gt;
* SpamAssassin 4.0.0 (new major version)&lt;br /&gt;
* PostgreSQL 13.10&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* Proxmox Mail Gateway now provides a dark theme for the administrative and quarantine web interfaces.&lt;br /&gt;
* SpamAssassin 4.0.0 was integrated, along with many of its new capabilities, like (optionally) scanning document contents (docx, pdf, images,...), or resolving URLs from url-shorteners.&lt;br /&gt;
&lt;br /&gt;
=== Changelog Overview ===&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Rule System ====&lt;br /&gt;
* New major release SpamAssassin 4.0.0, with many new features: &lt;br /&gt;
** Detection of spam inside of attachments. This is implemented for the file types &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.odt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.docx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.doc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rtf&amp;lt;/code&amp;gt;, as well as images (through OCR).&lt;br /&gt;
*:: Attachment scanning can be enabled using the Web UI (&amp;lt;code&amp;gt;Spam Detector&amp;lt;/code&amp;gt; -&amp;gt; &amp;lt;code&amp;gt;Options&amp;lt;/code&amp;gt;), which sets the &amp;lt;code&amp;gt;extract_text&amp;lt;/code&amp;gt; option in the &amp;lt;code&amp;gt;spam&amp;lt;/code&amp;gt; section of &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*:: The dependencies required for attachment scanning are marked as optional, but recommended dependency for the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package.&lt;br /&gt;
*:: This means that on systems that did not change the apt preference the new dependencies should be pulled in automatically on upgrade, otherwise you might need to manually install them.&lt;br /&gt;
*: Note that attachment scanning, and OCR in particular, increases CPU time spent per mail. Depending on email volume and available CPU power, you may see a significant increase in load.&lt;br /&gt;
** Follow and analyze URL-shortener links.&lt;br /&gt;
** Improved support for using information from DMARC-policies.&lt;br /&gt;
** Improved handling of internationalized (IDN) domain names.&lt;br /&gt;
* Adaptation of the SpamAssassin integration for version 4.0.0:&lt;br /&gt;
: The SpamAssassin configuration files shipped with the &amp;lt;code&amp;gt;pmg-api&amp;lt;/code&amp;gt; package were adapted to the new features.&lt;br /&gt;
: &amp;lt;code&amp;gt;extract_text&amp;lt;/code&amp;gt; was added as new option for the spam detector to disable content scanning, while most other new options are triggered with the &amp;lt;code&amp;gt;use_rbl&amp;lt;/code&amp;gt; option.&lt;br /&gt;
: On deployments with modified templates, the upgrade process will ask how changes should be merged. This provides an opportunity to re-evaluate which modifications are still needed.&lt;br /&gt;
* Support enforcing TLS-only connections for mails from certain domains:&lt;br /&gt;
: It is now possible to enforce TLS encryption for inbound mail, complementing the already-present TLS policy functionality for outbound mail.&lt;br /&gt;
* Improved handling of SMTPUTF8:&lt;br /&gt;
: Based on the user feedback on UTF-8 support for the rule system introduced in Proxmox Mail Gateway 7.2, it is now possible to disable SMTPUTF8 through the API and GUI.&lt;br /&gt;
: The detection for SMTPUTF8 was aligned with the implementation in &amp;lt;code&amp;gt;postfix&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The What objects &amp;quot;Match Archive Filename&amp;quot; now also use the optional filename from the GZIP header for matching.&lt;br /&gt;
* Support trusted network entries with host bits set in the CIDR:&lt;br /&gt;
: Quite a few deployments did use a CIDR with host-bits set, for example 192.0.2.5/24 instead of 192.0.2.0/24. This is now translated internally and handled correctly.&lt;br /&gt;
* Ordering of multiple rules with the same priority is now stable, despite not being a recommended setup.&lt;br /&gt;
&lt;br /&gt;
==== Enhancements in the Web Interface (GUI) ====&lt;br /&gt;
&lt;br /&gt;
* Add a fully-integrated &amp;quot;Proxmox Dark&amp;quot; color theme variant of the long-time Crisp light theme.&lt;br /&gt;
: By default, the &amp;lt;code&amp;gt;prefers-color-scheme&amp;lt;/code&amp;gt; media query from the Browser/OS will be used to decide the default color scheme.&lt;br /&gt;
: Users can override the theme via a newly added &amp;lt;code&amp;gt;Color Theme&amp;lt;/code&amp;gt; menu in the user menu.&lt;br /&gt;
* Add &amp;quot;Proxmox Dark&amp;quot; color theme to the Proxmox Mail Gateway reference documentation.&lt;br /&gt;
: The &amp;lt;code&amp;gt;prefers-color-scheme&amp;lt;/code&amp;gt; media query from the Browser/OS will be used to decide if the light or dark color scheme should be used.&lt;br /&gt;
: The new dark theme is also available in the [https://pmg.proxmox.com/pmg-docs/api-viewer/index.html#/nodes/{node}/version Proxmox Mail Gateway API Viewer].&lt;br /&gt;
* Task logs can now be downloaded directly as text files for further inspection.&lt;br /&gt;
* The language chooser now displays, for each available language, both its native name as well as its name translated to the currently active language.&lt;br /&gt;
* HTML-encode API results before rendering as additional hardening against XSS.&lt;br /&gt;
* Automatically redirect HTTP requests to HTTPS for convenience.&lt;br /&gt;
: This avoids &amp;quot;Connection reset&amp;quot; browser errors that can be confusing, especially after setting up a Proxmox Mail Gateway host the first time.&lt;br /&gt;
* Invalid entries in advanced fields now cause the advanced panel to unfold, providing direct feedback.&lt;br /&gt;
* Improved translations, among others:&lt;br /&gt;
** Arabic&lt;br /&gt;
** French&lt;br /&gt;
** German&lt;br /&gt;
** Italian&lt;br /&gt;
** Japanese&lt;br /&gt;
** Russian&lt;br /&gt;
** Slovenian&lt;br /&gt;
** Simplified Chinese&lt;br /&gt;
** Traditional Chinese&lt;br /&gt;
&lt;br /&gt;
==== Notable General Improvements and Bug Fixes ====&lt;br /&gt;
* The documentation has now a chapter describing the statistics part of the GUI and API.&lt;br /&gt;
* Mail delivery from quarantine uses new code for sending locally generated mail, with the following improvements:&lt;br /&gt;
** support for IPv6-only deployments and delivery status notifications.&lt;br /&gt;
** Correct decoding of addresses containing UTF-8.&lt;br /&gt;
* The cleanup before restoring the configuration from a backup was improved, preventing issues when restoring without rebooting the system.&lt;br /&gt;
* Logging of errors when sending locally generated mail was improved.&lt;br /&gt;
* Errors in files related to TLS-policy are now also reported in the syslog.&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;pmgdb dump&amp;lt;/code&amp;gt; is now able to handle UTF-8 characters in rule names, object names, and comments.&lt;br /&gt;
&lt;br /&gt;
==== Installation ISO ====&lt;br /&gt;
&lt;br /&gt;
* the version of BusyBox shipped with the ISO was updated to version 1.36.0.&lt;br /&gt;
* The EFI System Partition (ESP) defaults to 1 GiB of size if the root disk partition (&amp;lt;code&amp;gt;hdsize&amp;lt;/code&amp;gt;) is bigger than 100 GB.&lt;br /&gt;
* UTC can now be selected as timezone during installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.3-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known Issues &amp;amp; Breaking Changes ===&lt;br /&gt;
&lt;br /&gt;
* The ISO does not ship the optional dependencies for extracting text from attachments - If you installed from the ISO and want to use the feature, you can simply install them manually&lt;br /&gt;
 apt install antiword docx2txt odt2txt poppler-utils tesseract-ocr unrtf&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.2 ==&lt;br /&gt;
&#039;&#039;&#039;Released 30. November 2022&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Bullseye (11.5)&lt;br /&gt;
* Latest 5.15 Kernel as stable default (5.15.74)&lt;br /&gt;
* Newer 5.19 kernel as opt-in&lt;br /&gt;
* ZFS 2.1.6&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* PostgreSQL 13.8&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the Rule system:&lt;br /&gt;
** Improved handling of international emails&lt;br /&gt;
*** Support for UTF-8 characters in the rule system (e.g. matching non-ASCII subjects).&lt;br /&gt;
*** Better handling of [https://www.rfc-editor.org/rfc/rfc6531 SMTPUTF8 emails] (the smtp-dialogue already contains non-ASCII data, the headers contain UTF-8 data without MIME encoding).&lt;br /&gt;
** Proper encoding for template-variable information in the Notifications and Modify Field actions.&lt;br /&gt;
** MatchField now matches all occurrences of a header - not only the first one - especially relevant for &amp;lt;code&amp;gt;Received&amp;lt;/code&amp;gt; headers.&lt;br /&gt;
** Deprecated the &amp;lt;code&amp;gt;Attach&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ReportSpam&amp;lt;/code&amp;gt; Actions.&lt;br /&gt;
*: While they were present in the code of Proxmox Mail Gateway, they were never exposed in the GUI or API.&lt;br /&gt;
*: All three have now been deprecated and will be removed with version 8.0.&lt;br /&gt;
&lt;br /&gt;
* Improved Quarantine UX:&lt;br /&gt;
** Quarantine interface for Administrators: many of the recent features for end-users in the Spam Quarantine have been ported to the administrator view:&lt;br /&gt;
*** Allow selection of multiple mails.&lt;br /&gt;
*** Context menu in the mail-listing.&lt;br /&gt;
*** Display the Receiver information in the Attachment and Virus quarantines and the Mail Info widget.&lt;br /&gt;
** Augmented the information visualization in the Spam information grid.&lt;br /&gt;
*** The weight (number of points) and the type of impact (positive or negative) of SpamAssassin rules is now shown with colors and font-weights to make them easier to grasp. &lt;br /&gt;
*** The rule IDs and scores are using a monospaced font for better comparison of values.&lt;br /&gt;
** Colorized &amp;lt;code&amp;gt;Deliver&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; actions improves intuitive handling of the common actions.&lt;br /&gt;
** Display of attachments in the Spam and Virus quarantines (for a more complete overview of the mail).&lt;br /&gt;
** Attachment and Virus quarantines can now optionally be filtered by Receiver - especially helpful in larger deployments.&lt;br /&gt;
** Display of descriptions for locally defined SpamAssassin rules.&lt;br /&gt;
** Fix displaying the quarantine interface on narrow screens: Part of the action buttons were cut off and not reachable through scrolling.&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI):&lt;br /&gt;
** The Postfix queue interface now displays the mail&#039;s headers in a decoded way - so that you see it as in your mail user agent.&lt;br /&gt;
** The Statistic time selector now does not show non-existent day/month combinations (e.g. the 31. Day of February).&lt;br /&gt;
** Better spacing of the Field labels in the rule object edit windows.&lt;br /&gt;
** Improved translations, among others:&lt;br /&gt;
*** Dutch&lt;br /&gt;
*** German&lt;br /&gt;
*** Italian&lt;br /&gt;
*** Polish&lt;br /&gt;
*** Traditional Chinese&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* Support Proxmox Offline Mirroring &amp;amp; Subscription Handling&lt;br /&gt;
** Proxmox Offline Mirror: The tool supports subscriptions and repository mirrors for air-gapped systems. The newly added [https://pom.proxmox.com proxmox-offline-mirror] utility can now be used to keep Proxmox Mail Gateway hosts, without access to the public internet up-to-date and running with a valid subscription.&lt;br /&gt;
&lt;br /&gt;
* Notable General Improvements and Bugfixes:&lt;br /&gt;
** Add IP networks uniquely to template variables (&amp;lt;code&amp;gt;postfix.mynetworks&amp;lt;/code&amp;gt;)&lt;br /&gt;
*: If you had multiple entries in your transport directory, all pointing to the same host, they were added multiple times to the variable used in the configuration system.&lt;br /&gt;
** Support for Proxmox Backup Server Namespaces.&lt;br /&gt;
** Spam report emails now correctly display the &amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt; header, even if it contains a comma (e.g. &amp;lt;code&amp;gt;&amp;quot;Lastname, Firstname&amp;quot; &amp;lt;firstname.lastname@domain.example&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
** The left-over config file &amp;lt;code&amp;gt;/etc/apt/apt.conf.d/75pmgconf&amp;lt;/code&amp;gt; was removed, enabling the automatic removal of obsolete kernel packages, which can take up significant amounts of space.&lt;br /&gt;
** SpamAssassin updates now handle updates to multiple channels correctly on the first run.&lt;br /&gt;
** Improved parsing of email attributes from LDAP profiles.&lt;br /&gt;
** Changing the directory to &#039;/&#039; before running &amp;lt;code&amp;gt;psql&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;postgres&amp;lt;/code&amp;gt;user - preventing the printing of harmless but confusing warnings with various Proxmox Mail Gateway CLI utilities.&lt;br /&gt;
** Support disabling TLS 1.2 and configuring TLS 1.3 ciphers for &amp;lt;code&amp;gt;pmgproxy&amp;lt;/code&amp;gt; - following the change for &amp;lt;code&amp;gt;pveproxy&amp;lt;/code&amp;gt; in Proxmox VE.&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
== Proxmox Mail Gateway 7.1 ==&lt;br /&gt;
&#039;&#039;&#039;Released 30. November 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Bullseye (11.1)&lt;br /&gt;
* Kernel 5.13&lt;br /&gt;
* ZFS 2.1&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* PostgreSQL 13.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI)&lt;br /&gt;
** Improved configuration editing of LDAP backends: Changes can now be applied without having to specify a password.&lt;br /&gt;
** The APT repository configuration, rather than being restricted to &#039;root&#039;, is now visible and editable by all users with &#039;Administrator&#039; privileges.&lt;br /&gt;
** Improved translations, among others:&lt;br /&gt;
*** Arabic&lt;br /&gt;
*** Basque&lt;br /&gt;
*** Brazilian Portuguese&lt;br /&gt;
*** French&lt;br /&gt;
*** German&lt;br /&gt;
*** Simplified Chinese&lt;br /&gt;
*** Traditional Chinese&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* Two-Factor Authentication&lt;br /&gt;
** Two-factor authentication (TFA) for the web interface. Shares the TFA implementation from Proxmox Backup Server, written in rust.&lt;br /&gt;
** Support for multiple types of second factors:&lt;br /&gt;
*** WebAuthn, which supports a wide range of security devices, like hardware keys or trusted platform modules.&lt;br /&gt;
*** Time-based One-Time Password (TOTP), a short code derived from a shared secret and the current time, it changes every 30 seconds. &lt;br /&gt;
*** Single use Recovery Keys.&lt;br /&gt;
&lt;br /&gt;
* Backend and API&lt;br /&gt;
** Improved support for setups using DHCP for their network configuration:&lt;br /&gt;
*: While email still requires working DNS records, you can now manage and configure the IP of your Proxmox Mail Gateway in your DHCP configuration.&lt;br /&gt;
** When adding a new entry to a Who object, a duplicate check is performed before saving.&lt;br /&gt;
** Better handling of trailing dot in domain-names:&lt;br /&gt;
*: Proxmox Mail Gateway uses the first search domain from &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; as domain name - it can now handle entries with a trailing dot.&lt;br /&gt;
** Delivery status notification (DSN, RFC 3461) support for outbound email with enabled before-queue filtering.&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
&lt;br /&gt;
== Proxmox Mail Gateway 7.0 ==&lt;br /&gt;
&#039;&#039;&#039;Released 15. July 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Bullseye (11)&lt;br /&gt;
* SpamAssassin 3.4.6 (with updated rule-set)&lt;br /&gt;
* Kernel 5.11&lt;br /&gt;
* PostgreSQL 13&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog Overview&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enhancements in the web interface (GUI)&lt;br /&gt;
** Make dashboard status panel more detailed, showing, among other things, uptime, kernel version, CPU info and a high level repository status overview.&lt;br /&gt;
** New APT repository management panel in the &amp;lt;code&amp;gt;Administration&amp;lt;/code&amp;gt; tab shows an in-depth status and a list of all configured repositories.&lt;br /&gt;
**: Basic repository management, for example, activating or deactivating a repository, is also supported.&lt;br /&gt;
** Updated ExtJS JavaScript framework to latest GPL release 7.0&lt;br /&gt;
** Added advanced task-log filtering&lt;br /&gt;
** Improved translations, including:&lt;br /&gt;
*** Arabic&lt;br /&gt;
*** French&lt;br /&gt;
*** German&lt;br /&gt;
*** Japanese&lt;br /&gt;
*** Polish&lt;br /&gt;
*** Turkish&lt;br /&gt;
&lt;br /&gt;
* ACME/Let&#039;s Encrypt&lt;br /&gt;
** Support the use of wildcard domains with the DNS plugins&lt;br /&gt;
** API: nodeconfig: validate ACME config before writing&lt;br /&gt;
&lt;br /&gt;
* API&lt;br /&gt;
** pmgproxy: allow setting LISTEN_IP parameter&lt;br /&gt;
** The &amp;quot;Authentication mode&amp;quot; setting of &amp;lt;code&amp;gt;LDAP&amp;lt;/code&amp;gt; for the quarantine interface no longer contains the ticket-link in the report-mails - thus, quarantine users need to provide their LDAP credentials to access the quarantine.&lt;br /&gt;
&lt;br /&gt;
* Installer:&lt;br /&gt;
** Rework the installer environment to use &amp;lt;code&amp;gt;switch_root&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt;, when transitioning from initrd to the actual installer.&lt;br /&gt;
**: This improves module and firmware loading, and slightly reduces memory usage during installation.&lt;br /&gt;
** Automatically detect HiDPI screens, and increase console font and GUI scaling accordingly. This improves UX for workstations with Proxmox VE (for example, for passthrough).&lt;br /&gt;
** Improve ISO detection:&lt;br /&gt;
*** Support ISOs backed by devices using USB Attached SCSI (UAS), which modern USB3 flash drives often do.&lt;br /&gt;
*** Linearly increase the delay of subsequent scans for a device with an ISO image, bringing the total check time from 20s to 45s. This allows for the detection of very slow devices, while continuing faster in general.&lt;br /&gt;
** Use &amp;lt;code&amp;gt;zstd&amp;lt;/code&amp;gt; compression for the initrd image and the squashfs images.&lt;br /&gt;
** Update to busybox 1.33.1 as the core-utils provider.&lt;br /&gt;
&lt;br /&gt;
* libarchive-perl&lt;br /&gt;
** The perl-bindings to &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; have been updated to match &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; version 3.4.3 (shipped in Debian Bullseye) - the library interface was kept backwards-compatible&lt;br /&gt;
&lt;br /&gt;
* libxdgmime-perl&lt;br /&gt;
** The perl-bindings to [https://gitlab.freedesktop.org/xdg/xdgmime xdgmime] have been updated to match current upstream - the library interface was kept backwards-compatible&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.0-breaking-changes&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Breaking Changes&#039;&#039;&#039;&lt;br /&gt;
* New default bind address for pmgproxy, unifying the default behavior with Proxmox VE and Proxmox Backup Server&lt;br /&gt;
** In making the LISTEN_IP configurable, the daemon now binds to both wildcard addresses (IPv4 &amp;lt;code&amp;gt;0.0.0.0:8006&amp;lt;/code&amp;gt; and IPv6 &amp;lt;code&amp;gt;[::]:8006&amp;lt;/code&amp;gt;) by default.&lt;br /&gt;
*: Should you wish to prevent it from listening on IPv6, simply configure the IPv4 wildcard as LISTEN_IP in &amp;lt;code&amp;gt;/etc/default/pmgproxy&amp;lt;/code&amp;gt;:&lt;br /&gt;
*: &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Additionally, the logged IP address format changed for IPv4 in pmgproxy&#039;s access log (&amp;lt;code&amp;gt;/var/log/pmgproxy/pmgproxy.log&amp;lt;/code&amp;gt;). They are now logged as IPv4-mapped IPv6 addresses. Instead of:&lt;br /&gt;
*: &amp;lt;code&amp;gt;192.0.2.1- root@pam [01/06/2021:01:19:03 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*: the line now looks like:&lt;br /&gt;
*: &amp;lt;code&amp;gt;::ffff:192.0.2.1- root@pam [01/06/2021:01:19:03 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*:If you want to restore the old logging format, also set &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ClamAV has [https://blog.clamav.net/2021/04/are-you-still-attempting-to-download.html deprecated the SafeBrowsing feature]:&lt;br /&gt;
** These options have been removed from the shipped &amp;lt;code&amp;gt;freshclam.conf.in&amp;lt;/code&amp;gt; template.&lt;br /&gt;
** The &amp;lt;code&amp;gt;safebrowsing&amp;lt;/code&amp;gt; config key in &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; is currently ignored and will be dropped at some point in the future.&lt;br /&gt;
&lt;br /&gt;
* Changes to the database layout:&lt;br /&gt;
** The &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;cgreylist&amp;lt;/code&amp;gt; table, which has not been used since Proxmox Mailgateway 6.2, has been dropped from the schema and will be dropped from existing databases during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* API deprecations, moves and removals&lt;br /&gt;
** The &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; parameter of the &amp;lt;code&amp;gt;/nodes/{node}/termproxy&amp;lt;/code&amp;gt; API method has been replaced by providing &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
** The &amp;lt;code&amp;gt;domain&amp;lt;/code&amp;gt; parameter of the &amp;lt;code&amp;gt;/config/tlspolicy&amp;lt;/code&amp;gt; API method has been replaced by the &amp;lt;code&amp;gt;destination&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
** The &amp;lt;code&amp;gt;/quarantine/whitelist/{address}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/quarantine/blacklist/{address}&amp;lt;/code&amp;gt; API methods, that take the address as part of the path, have been deprecated in favor of explicitly providing the parameter in the request to &amp;lt;code&amp;gt;/quarantine/whitelist&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/quarantine/blacklist&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
** The API methods for detailed statistics per e-mail address, which take the address as part of the path (&amp;lt;code&amp;gt;/statistics/contact/{contact}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/statistics/sender/{sender}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/statistics/receiver/{receiver}&amp;lt;/code&amp;gt; have been deprecated in favor of &amp;lt;code&amp;gt;/statistics/detail&amp;lt;/code&amp;gt;, which takes the address as an explicit parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;7.0-known-issues&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Known Issues&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Network&#039;&#039;&#039;: Due to the updated systemd version, and for most upgrades, the newer kernel version (5.4 to 5.11), some network interfaces might change upon reboot:&lt;br /&gt;
** Some may change their name. For example, due to newly supported functions, a change from &amp;lt;code&amp;gt;enp33s0f0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;enp33s0f0np0&amp;lt;/code&amp;gt; could occur.&lt;br /&gt;
**: We observed such changes with high-speed Mellanox models.&lt;br /&gt;
** [https://sources.debian.org/src/bridge-utils/1.7-1/debian/NEWS/#L3-L23 Bridge MAC address selection has changed in Debian Bullseye] - it is now generated based on the interface name and the &amp;lt;code&amp;gt;machine-id (5)&amp;lt;/code&amp;gt; of the system.&lt;br /&gt;
**: Note that by default, Proxmox Mail Gateway does not use a Linux Bridge for networking, so most setups are unaffected.&lt;br /&gt;
* &#039;&#039;&#039;Machine-id&#039;&#039;&#039;: Systems installed using the Proxmox Mail Gateway 5.0 to 5.4 ISO may have a non-unique machine-id. These systems will have their machine-id re-generated automatically on upgrade, to avoid a potentially duplicated bridge MAC and other issues.&lt;br /&gt;
: If you do the upgrade remotely, make sure you have a backup method of connecting to the host (for example, IPMI/iKVM, tiny-pilot, another network accessible by a cluster node, or physical access), in case the network used for SSH access becomes unreachable, due to the network failing to come up after a reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrade from 6.4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Upgrade from 6.x to 7.0]]&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.4==&lt;br /&gt;
&#039;&#039;&#039;Released 30. March 2021&#039;&#039;&#039;&lt;br /&gt;
* Based on Debian Buster (10.9)&lt;br /&gt;
* SpamAssassin 3.4.5 (with update ruleset)&lt;br /&gt;
* Kernel 5.4.106&lt;br /&gt;
* ACME integration&lt;br /&gt;
** Proxmox Mail Gateway now offers full integration of the ACME protocol via the GUI, enabling administrators to create valid and trusted certificates for their domains with the Let&#039;s Encrypt certificate authority, in the same way as with Proxmox VE.&lt;br /&gt;
** Full support for the &amp;lt;code&amp;gt;http-01&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;dns-01&amp;lt;/code&amp;gt; challenges, with all plugins from [https://github.com/acmesh-official/acme.sh acme.sh].&lt;br /&gt;
** Easily configurable from the GUI.&lt;br /&gt;
* General Certificate Management via the GUI&lt;br /&gt;
** It is now possible to upload custom certificates from the web interface, or set up a cluster-wide ACME account to automatically get and renew certificates from an ACME provider.&lt;br /&gt;
* Support for external SpamAssassin update channels (regular automated updates).&lt;br /&gt;
** By providing a short configuration file containing a SpamAssassin rule channel&#039;s URL and GPG key, Proxmox Mail Gateway will now fetch verified updates from that channel, along with the updates from updates.spamassassin.org.&lt;br /&gt;
** The KAM ruleset channel is now available, and a suitable configuration file is shipped with &amp;lt;code&amp;gt;proxmox-spamassassin&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Improved Quarantine Management&lt;br /&gt;
** The admin view of the Spam Quarantine can now display quarantined mail of all users at once.&lt;br /&gt;
** All Quarantine views (admin and user) allow you to filter for subject or sender.&lt;br /&gt;
** The spam quarantine can now process huge amounts of mails at once (&amp;gt; 3200).&lt;br /&gt;
* TLS-logging improvements to the Tracking Center&lt;br /&gt;
** The Tracking Center now shows when an outbound connection is established over TLS.&lt;br /&gt;
* Enhancements to the Integration of Proxmox Backup Server&lt;br /&gt;
** It is now possible to get notified about the result of a scheduled backup to a configured Proxmox Backup Server Remote.&lt;br /&gt;
** Inclusion of the (potentially large) statistics database is now configurable per Remote.&lt;br /&gt;
* Notable Bugfixes:&lt;br /&gt;
** Support for &#039;/&#039; in the local part of an e-mail address (quarantine and statistics view).&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.3==&lt;br /&gt;
&#039;&#039;&#039;Released 19. November 2020&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.6)&lt;br /&gt;
* Updated SpamAssassin rules&lt;br /&gt;
* Kernel 5.4.73&lt;br /&gt;
* Proxmox Backup Server Integration&amp;lt;br/&amp;gt;Proxmox Mail Gateway is fully supported by the new Proxmox Backup Server 1.0, released on November 11, 2020:&lt;br /&gt;
** Backing up to multiple remote backup servers: You can define multiple remote instances of Proxmox Backup Server to store backups on. In case of a large-scale disaster, they can be quickly restored.&lt;br /&gt;
** Scheduled Backups: You can schedule regular backups via the GUI, which will then be automatically triggered by a systemd-timer unit. This removes the need for manual backup creation and individual, scripted solutions.&lt;br /&gt;
* Quarantine Link via login-page&amp;lt;br /&amp;gt;Users can request mails containing a link to their quarantineview, if enabled by the Admin. This enables users to edit their individual blocklists, even if no mails are in their quarantine. Until now this was only possible for sites using LDAP.&lt;br /&gt;
* Improvements to the Tracking Center&amp;lt;br /&amp;gt;To further improve user experience in the tracking center, pmg-log-tracker handles certain cases better:&lt;br /&gt;
** The case sensitivity has been removed from the search box.&lt;br /&gt;
** In case the pmg-smtp-filter fails to process emails due to misconfiguration, they are now marked as rejected.&lt;br /&gt;
* Notable Bugfixes:&lt;br /&gt;
** DKIM signing now uses the longest matching domain for the &#039;d=&#039; tag.&lt;br /&gt;
** Mails held in the Attachment Quarantine are assigned a new Message-ID - fixing interoperability with certain downstream servers (for example, MS Exchange), which silently discard messages with duplicate Message-IDs.&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.2==&lt;br /&gt;
&#039;&#039;&#039;Released 28. April 2020&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.3)&lt;br /&gt;
** Proxmox Mail Gateway is based on the latest stable release of Debian 10.3 (Buster).&lt;br /&gt;
* SpamAssassin 3.4.4&lt;br /&gt;
** Proxmox ships the latest upstream release of Apache SpamAssassin with a updated and enhance ruleset (KAM rules added)&lt;br /&gt;
* Kernel 5.4&lt;br /&gt;
** Proxmox Mail Gateway shares the kernel with Proxmox VE and is based on the 5.4 series from Ubuntu 20.04&lt;br /&gt;
* pmg-log-tracker in Rust&lt;br /&gt;
** &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; has been extended and reimplemented in the Rust programming language. &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; is the binary at the core of the Message Tracking Center, providing live searchable and grouped logs in the GUI.&lt;br /&gt;
** The new &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; has support for parsing and grouping logs in before-queue filtering mode.&lt;br /&gt;
** The refresh of the code base of &amp;lt;code&amp;gt;pmg-log-tracker&amp;lt;/code&amp;gt; provides an optimized performance and more stability.&lt;br /&gt;
&lt;br /&gt;
* Support for before-queue filtering in the GUI&lt;br /&gt;
** With the added support for displaying before-queue filtering logs in the GUI and fixing some minor glitches in that area, the before-queue filtering can now be comfortably enabled in the GUI.&lt;br /&gt;
&lt;br /&gt;
* Improved IPv6 support&lt;br /&gt;
** The Mail Proxy&#039;s SPF checker also verifies SPF records for those remote mail servers connecting via IPv6. &lt;br /&gt;
** Greylisting support for IPv6 addresses (with variable netmask, defaulting to &#039;/64&#039;) - needs to be explicitly enabled.&lt;br /&gt;
** Who-objects containing IPv6 literal address work now.&lt;br /&gt;
&lt;br /&gt;
* Customizable netmask length for greylist matching&lt;br /&gt;
** Instead of fixing a greylist network to a &#039;/24&#039; the administrator can now configure which hosts should be considered as belonging to the same network by setting a larger (or smaller) prefix.&lt;br /&gt;
** This can help with receiving mail from some cloud-providers, who send out one mail from different ip addresses within a large network, which usually leads to a rather long delay and sometimes even to a legitimate mail being rejected.&lt;br /&gt;
** Due to the changed database layout partial upgrades of clusters will prevent nodes running the older version from syncing the greylist database until they are upgraded.&lt;br /&gt;
&lt;br /&gt;
* Better UX for the User Spam Quarantine interface&lt;br /&gt;
** If selected in the Quarantine view, the From header and the Subject are now displayed on top of the mail body.&lt;br /&gt;
** It is now possible to delete mail addresses containing certain special characters (for example &#039;/&#039;) from a users&#039; black- or whitelist.&lt;br /&gt;
** Users can set their preferred language directly in the quarantine interface instead of having to log out to change the setting.&lt;br /&gt;
** Fixed a bug in the selection of multiple e-mails.&lt;br /&gt;
&lt;br /&gt;
* Handling of changes to overridden templates with &amp;lt;code&amp;gt;ucf&amp;lt;/code&amp;gt;&lt;br /&gt;
** Starting with this release all service configuration templates, copied and modified in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; get registered with &amp;lt;code&amp;gt;ucf&amp;lt;/code&amp;gt;. Should a overridden template change with a new package version the administrator is asked and can accept or reject the changes.&lt;br /&gt;
** All users who have templates in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt; will be asked about the current changes for the initial registration.&lt;br /&gt;
&lt;br /&gt;
* New What Object: &#039;Match Archive Filename&#039;&lt;br /&gt;
** In addition to match files in archives (zip, tar.gz, rar,...) based on the file&#039;s content-type, it is also possible to look for particular filename patterns inside of archives.&lt;br /&gt;
** This completes the feature matrix of matching files based on content-type or filename, as plain attachments, or inside archives.&lt;br /&gt;
&lt;br /&gt;
* Support for downstream LMTP servers&lt;br /&gt;
** In certain setups there is no advantage in having a dedicated SMTP server for receiving e-mails from Proxmox Mail Gateway, since all used functionality is provided by a MTA, which speaks IMAP and LMTP (e.g., Dovecot).&lt;br /&gt;
** It is now possible to configure Proxmox Mail Gateway to send e-mails directly to a LMTP relay, both as default transport and only as transport for certain domains.&lt;br /&gt;
&lt;br /&gt;
* Improvements to recently added features&lt;br /&gt;
** Before-queue filtering and DKIM signing, both implemented with Proxmox Mail Gateway 6.1, have a better user experience and are considered stable now.&lt;br /&gt;
** Some remaining glitches and bugs fixed for both. &lt;br /&gt;
** DKIM selector handling can handle the existence of multiple selectors and in the GUI, users can comfortably switch between the active selector.&lt;br /&gt;
&lt;br /&gt;
* TLS policy selection for internal downstream servers&lt;br /&gt;
** It is now possible to specify a desired level of encryption and authentication for the opportunistic TLS-encryption (STARTTLS) for downstream servers entered in your transports.&lt;br /&gt;
** This can help to ensure that your internal communication is not sent in the clear over the network. It can also be used to work around broken TLS implementations in legacy downstream servers.&lt;br /&gt;
&lt;br /&gt;
* Improvements to general usability&lt;br /&gt;
** The unbounded growth of the Quarantine disk usage for non-master nodes in clustered setups is fixed.&lt;br /&gt;
** It&#039;s now possible to switch to incremental updates of the AV signatures for ClamAV via GUI, alleviating the problem that both methods fail in certain cases for some users.&lt;br /&gt;
==Proxmox Mail Gateway 6.1==&lt;br /&gt;
&#039;&#039;&#039;Released 27. November 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Debian Buster (10.2)&lt;br /&gt;
** Proxmox Mail Gateway is based on the latest stable release of Debian 10.2 (Buster).&lt;br /&gt;
* Updated SpamAssassin rules&lt;br /&gt;
* Kernel 5.3&lt;br /&gt;
** Proxmox Mail Gateway shares the kernel with Proxmox VE and is based on the 5.3 series from Ubuntu 19.10&lt;br /&gt;
&lt;br /&gt;
* DKIM-Signing&lt;br /&gt;
** Support for adding DomainKeys Identified Mail (DKIM) Signatures (RFC 6376) to outbound emails&lt;br /&gt;
** Configuration via GUI&lt;br /&gt;
** Signing happens after processing the email with the rule system, thus ensuring that it leaves the Proxmox Mail Gateway with a valid signature&lt;br /&gt;
** Flexible control of which domains should get signed with sensible defaults (the relay domains)&lt;br /&gt;
** Inside a cluster, one common selector minimizes the overhead for adding required DNS entries&lt;br /&gt;
&lt;br /&gt;
* Attachment Quarantine&lt;br /&gt;
** The &amp;lt;code&amp;gt;Remove Attachments&amp;lt;/code&amp;gt; action can now optionally deliver the complete email to the Attachment Quarantine&lt;br /&gt;
** The Attachment Quarantine offers a comfortable GUI for selectively downloading parts of the email for further analysis, or delivering the mail to the original recipient&lt;br /&gt;
** Accessible only by the administrators, it offers safety from accidentally open malicious executables, doc-files, and other attachments infected with malware&lt;br /&gt;
&lt;br /&gt;
* Adjustable SpamAssassin Rule Scores via GUI&lt;br /&gt;
** Adapt the scores of individual SpamAssassin rules directly in the GUI&lt;br /&gt;
** Enables you to adapt the scoring to your environment, thus achieving better ham/spam detection rates&lt;br /&gt;
** Mostly for adding a bit of weight to rules, which are good indicators for Spam in your environment&lt;br /&gt;
** Selectively disable Rules, which cause false positives for your environment&lt;br /&gt;
&lt;br /&gt;
* Improved handling of Configuration and Rule changes in clustered environments&lt;br /&gt;
** The Filtering Engine gets notified about a range of configuration changes which require a reload&lt;br /&gt;
** The notification is propagated during the cluster sync&lt;br /&gt;
** This reduces the situations where you had to manually restart &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Experimental Support for Before Queue filtering&lt;br /&gt;
** Proxmox Mail Gateway can now optionally reject an email during the SMTP dialogue, instead of accepting it and silently discarding unwanted email&lt;br /&gt;
** This is a requirement in certain situations&lt;br /&gt;
** By answering with a permanent failure code (&amp;lt;code&amp;gt;554&amp;lt;/code&amp;gt;), there is no need to generate a Non-Delivery Report, which could cause your system to get blacklisted, due to Backscatter&lt;br /&gt;
** Currently incompatible with the Tracking Center, thus needs to be explicitly enabled in &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Improvements to general usability&lt;br /&gt;
** Clarification of ambiguously used terms in the GUI and documentation&lt;br /&gt;
** More detailed documentation of the Service Configuration Templates&lt;br /&gt;
** Downloading of emails larger than 2 MB as &amp;lt;nowiki&amp;gt;eml&amp;lt;/nowiki&amp;gt; from the Spam Quarantine now works&lt;br /&gt;
** API-Viewer now usable from inside every running PMG installation at https://pmg.local:8006/api-viewer/index.html or just online via https://pmg.proxmox.com/pmg-docs/api-viewer/index.html&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 6.0==&lt;br /&gt;
&#039;&#039;&#039;Released 27. August 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Proxmox Mail Gateway is based on the latest stable release of Debian 10.0 (Buster)&lt;br /&gt;
*This major version update provides an easy to follow step-by-step upgrade path - https://pmg.proxmox.com/wiki/index.php/Upgrade_from_5.x_to_6.0&lt;br /&gt;
*Rule name logging - each final action now logs the name of the rule which triggered it to the system log&lt;br /&gt;
*The system logs get displayed faster in the GUI because they now use the Proxmox `mini-journalreader` instead of `journalctl`&lt;br /&gt;
*ClamAV 0.101.4 (fix for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934359)&lt;br /&gt;
*Postgres 11 (new major version backing the rule system)&lt;br /&gt;
*OpenSSL 1.1.1c with support for TLS 1.3&lt;br /&gt;
*Updated shipped SpamAssassin Ruleset&lt;br /&gt;
*Countless bugfixes and improvements in the GUI labels&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.2==&lt;br /&gt;
&#039;&#039;&#039;Released 20. March 2019&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Mobile Quarantine Interface&lt;br /&gt;
**based on the small and modern framework7&lt;br /&gt;
**Deliver/Delete/Whitelist/Blacklist mails in your Quarantine from your mobile device&lt;br /&gt;
*Improvements in the LDAP integration&lt;br /&gt;
**allow the use of FQDNs instead of IPs in the WebUI&lt;br /&gt;
**add support for certificate verification (and enable it for new deployments)&lt;br /&gt;
**add support for LDAP+starttls&lt;br /&gt;
*PMG-Appliance template&lt;br /&gt;
**Install PMG as a (unprivileged) Linux Container (e.g. in PVE)&lt;br /&gt;
**Introduces the new &#039;proxmox-mailgateway-container&#039; metapackage, which does not depend on a kernel, and results in a vastly reduced size (and fewer updates)&lt;br /&gt;
*Improvements in Logging&lt;br /&gt;
**pmg-smtp-filter now logs each SA-Rules score in addition to the rule names - simplifying the analysis of the spam filter&#039;s performance without the need to access the mail&#039;s source&lt;br /&gt;
*Improvements in the WebUI&#039;s TLS configuration&lt;br /&gt;
*pmgproxy can now be configured via &#039;/etc/default/pmgproxy&#039; to disable/enable certain ciphers, compression, cipher selection preference.&lt;br /&gt;
*new command: `pmg-system-report`&lt;br /&gt;
**Provides a overview of key characteristics of PMG&#039;s setup and performance&lt;br /&gt;
**Improves the initial diagnosis for our Enterprise support&lt;br /&gt;
*.eml download from the (non-mobile) Quarantine Interface&lt;br /&gt;
**Lets you download the complete source of a quarantined message in .eml format for further analysis&lt;br /&gt;
*Add support for custom checks&lt;br /&gt;
**Enable users to integrate their own custom check logic by providing a defined interface, which can optionally be enabled, and runs a custom check before the mail gets handed to the virus scanner and rule system.&lt;br /&gt;
*Improvements of Blacklist/Whitelist handling in the Quarantine Interface&lt;br /&gt;
**multiselect for removing multiple entries at once&lt;br /&gt;
*proxmox-spamassassin&lt;br /&gt;
**Update the shipped rulesets&lt;br /&gt;
*PMG-Cluster: full IPv6 support&lt;br /&gt;
*ISO works on Citrix XenServer&lt;br /&gt;
*Documentation available via https://pmg.proxmox.com/pmg-docs&lt;br /&gt;
*Bugfixes&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.1==&lt;br /&gt;
&#039;&#039;&#039;Released 05. October 2018&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Allow to configure TLS policy via GUI&lt;br /&gt;
*New &#039;helpdesk&#039; role&lt;br /&gt;
*Support SMTPUTF8 protocol feature&lt;br /&gt;
*GUI improvements&lt;br /&gt;
*Update Debian Stretch 9.5&lt;br /&gt;
*Update kernel to 4.15&lt;br /&gt;
*Bugfixes&lt;br /&gt;
&lt;br /&gt;
==Proxmox Mail Gateway 5.0==&lt;br /&gt;
&#039;&#039;&#039;Released 23. January 2018&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Fully licensed under the open source license AGPL&lt;br /&gt;
*Based on Debian Stretch 9.3 with a 4.13.13 kernel&lt;br /&gt;
*ISO installer supports all ZFS raid levels&lt;br /&gt;
*ExtJS based user interface&lt;br /&gt;
*New API&lt;br /&gt;
*Integrated documentation&lt;br /&gt;
*Subscription-based enterprise support options (similar to the Proxmox VE support subscription model)&lt;br /&gt;
*Bug fixes&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
*Proxmox Mail Gateway 4.1&lt;br /&gt;
*Proxmox Mail Gateway 4.0&lt;br /&gt;
*Proxmox Mail Gateway 3.1&lt;br /&gt;
*Proxmox Mail Gateway 3.0&lt;br /&gt;
*Proxmox Mail Gateway 2.6&lt;br /&gt;
*Proxmox Mail Gateway 2.5&lt;br /&gt;
*Proxmox Mail Gateway 2.4&lt;br /&gt;
*Proxmox Mail Gateway 2.3&lt;br /&gt;
*Proxmox Mail Gateway 2.2&lt;br /&gt;
*Proxmox Mail Gateway 2.1&lt;br /&gt;
*Proxmox Mail Gateway 2.0&lt;br /&gt;
*Proxmox Mail Gateway 1.7&lt;br /&gt;
*Proxmox Mail Gateway 1.6&lt;br /&gt;
*Proxmox Mail Gateway 1.5&lt;br /&gt;
*Proxmox Mail Gateway 1.4&lt;br /&gt;
*Proxmox Mail Gateway 1.3&lt;br /&gt;
*Proxmox Mail Gateway 1.2&lt;br /&gt;
*Proxmox Mail Gateway 1.1&lt;br /&gt;
*Proxmox Mail Gateway 1.0 (April 2005)&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=142</id>
		<title>Upgrade from 8 to 9</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_8_to_9&amp;diff=142"/>
		<updated>2025-09-24T12:47:38Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 9.x is based on the new major version of Debian (Trixie). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Trixie.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 8.x system to Proxmox Mail Gateway 9.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Trixie]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Trixie]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;:&lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt;) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgraded to the latest version of Proxmox Mail Gateway 8., see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bookworm repos setup) to upgrade to latest 8.2&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 8.2.3 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/8.2.3/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Ensure that you have at least 10 GB free disk space on the root mount point:&lt;br /&gt;
 df -h /&lt;br /&gt;
* Check [[#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 8 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg8to9&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 8.2 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg8to9&lt;br /&gt;
&lt;br /&gt;
This script only &#039;&#039;&#039;checks&#039;&#039;&#039; and reports things. By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
It is recommended to re-run the script after each attempt to fix an issue. This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
First, make sure that the system is using the latest Proxmox Mail Gateway packages:&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
 pmgversion -v&lt;br /&gt;
&lt;br /&gt;
The last command should report a version of at least &amp;lt;code&amp;gt;8.2.3&amp;lt;/code&amp;gt; or newer.&lt;br /&gt;
&lt;br /&gt;
==== Ensure Repository Archive Keyring is Installed ====&lt;br /&gt;
&lt;br /&gt;
To ensure your system trusts the new APT archive keyring for our Debian Trixie-based releases, install the &amp;lt;code&amp;gt;proxmox-archive-keyring&amp;lt;/code&amp;gt; package before switching the repositories to Trixie.&lt;br /&gt;
&lt;br /&gt;
 apt install proxmox-archive-keyring&lt;br /&gt;
&lt;br /&gt;
==== Update Debian Base Repositories to Trixie ====&lt;br /&gt;
Update all repository entries to Trixie:&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bookworm/trixie/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Ensure that there are no remaining Debian Bookworm specific repositories left. Check all files in the &amp;lt;/code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; folder (like &amp;lt;code&amp;gt;pmg-enterprise.list&amp;lt;/code&amp;gt;) and also the top-level &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; file. If you are already using sources in the new deb822 format, you will also need to check &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files in the same location.&lt;br /&gt;
&lt;br /&gt;
{{note|Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.|reminder}}&lt;br /&gt;
&lt;br /&gt;
See the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories] section in the reference docs for the correct Proxmox Mail Gateway / Debian Trixie repositories.&lt;br /&gt;
&lt;br /&gt;
==== Add the Proxmox Mail Gateway 9 Package Repository ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FIXME: include after BETA&lt;br /&gt;
Update the enterprise repository to Trixie in the new deb822 format with the following command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: https://enterprise.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-enterprise&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
After you added the new enterprise repository as above, check that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly. You can do so by first running &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Make sure that no errors are shown and that &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; only outputs the desired repositories. Then you can remove the old &amp;lt;code&amp;gt;/etc/apt/sources.list.d/pmg-enterprise.list&amp;lt;/code&amp;gt; file. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
If using the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add the Proxmox Mail Gateway 9 no-subscription repository with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-no-subscription&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
As with the enterprise repository, make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 no-subscription repository from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
&lt;br /&gt;
AND REMOVE the BETA repo --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the BETA phase only the &amp;lt;code&amp;gt;pmg-test&amp;lt;/code&amp;gt; repository is available, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]. You should be able to add it with this command:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/apt/sources.list.d/proxmox-beta.sources &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: http://download.proxmox.com/debian/pmg&lt;br /&gt;
 Suites: trixie&lt;br /&gt;
 Components: pmg-test&lt;br /&gt;
 Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Make sure that &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; picks it up correctly with &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt;. Then remove the previous Proxmox Mail Gateway 8 repositories from either the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/apt/sources-list.d/pmg-install-repo.list&amp;lt;/code&amp;gt; or any other &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; file you may have added it to. Run &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt policy&amp;lt;/code&amp;gt; again to be certain that the old repo has been removed.&lt;br /&gt;
Instead of removing older repositories, you can also disable them. In &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; simply comment them out by adding a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; to the beginning of the line. In &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files, you can add the line &amp;lt;code&amp;gt;Enabled: false&amp;lt;/code&amp;gt; to any stanza you want to disable.&lt;br /&gt;
&amp;lt;!-- END REMOVE BETA --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to check that all the &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files you added in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; got switched over to Trixie correctly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
Note that the time required for finishing this step heavily depends on the system&#039;s performance, especially the root filesystem&#039;s IOPS and bandwidth.&lt;br /&gt;
A slow spinner can take up to 60 minutes or more, while for a high-performance server with SSD storage, the upgrade can be finished in less than 5 minutes.&lt;br /&gt;
&lt;br /&gt;
{{Note|While the packages are being upgraded certain operations and requests to the API might fail (for example, logging in as a system user in the &amp;lt;code&amp;gt;pam&amp;lt;/code&amp;gt; realm)|reminder}}&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
While running the &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; command, you may be asked to approve changes to configuration files and some service restarts among other prompts. This includes:&lt;br /&gt;
&lt;br /&gt;
* The output of &amp;lt;code&amp;gt;apt-listchanges&amp;lt;/code&amp;gt;: You can simply exit it by pressing &amp;lt;kbd&amp;gt;q&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
* Selecting your default keyboard settings: Simply use the arrow keys to navigate to the one applicable in your case and hit enter.&lt;br /&gt;
* Questions about service restarts (like &amp;lt;code&amp;gt;Restart services during package upgrades without asking?&amp;lt;/code&amp;gt;): Use the default if unsure, as the reboot after the upgrade will restart all services cleanly anyway.&lt;br /&gt;
* Questions about (default) configuration changes: It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup. Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt; -&amp;gt; Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; -&amp;gt; If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/clamav/clamd.conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt; -&amp;gt; Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; -&amp;gt; Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/postfix/master.cf.proto&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/postfix/main.cf.proto&amp;lt;/code&amp;gt; -&amp;gt; These files are not used by Proxmox Mail Gateway - they are the templates for setting up multi-instance postfix instances, which was never used by Proxmox Mail Gateway. See the [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838528 bugreport at bugs.debian.org] for more context.&lt;br /&gt;
*: We recommend to select &amp;quot;Yes&amp;quot; (install the new version), in order to not get asked again for a future upgrade.&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/crontab&amp;lt;/code&amp;gt; and other &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; related files on installations on containers on Proxmox VE: The crontab gets randomized by Proxmox VE to prevent all jobs running at the same time in all containers.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is preferred here.&lt;br /&gt;
** &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; may print warnings regarding about &amp;lt;code&amp;gt;collation version mismatch&amp;lt;/code&amp;gt; - These are transitory and will disappear once the cluster has been upgraded to the new version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Important&#039;&#039;&#039;&#039;&#039;: If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
It is not yet necessary to reboot your Proxmox Mail Gateway host at this point. Before doing so, first upgrade PostgreSQL database.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 15 to 17, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 17 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reboot ===&lt;br /&gt;
&lt;br /&gt;
Reboot the host with e command below. Then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Reconnect to the node after it successfully rebooted.&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== Remove old PostreSQL Version ===&lt;br /&gt;
&lt;br /&gt;
You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
&lt;br /&gt;
 apt purge postgresql-15 postgresql-client-15&lt;br /&gt;
&lt;br /&gt;
=== Optional: Modernize apt Repository Sources ===&lt;br /&gt;
&lt;br /&gt;
You can migrate existing repository sources to the recommended deb822 style format, by running:&lt;br /&gt;
&lt;br /&gt;
 apt modernize-sources&lt;br /&gt;
&lt;br /&gt;
By answering the following prompt with &amp;quot;n&amp;quot; you can check the changes the command would make before applying them. To apply them simply run the command again and respond to the prompt with &amp;quot;Y&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The command will also keep the old &amp;lt;code&amp;gt;.list&amp;lt;/code&amp;gt; files around by appending &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt; to them. So you will have the new &amp;lt;code&amp;gt;.sources&amp;lt;/code&amp;gt; files and the old repository configurations in the &amp;lt;code&amp;gt;.list.bak&amp;lt;/code&amp;gt; files. You can remove the leftover backup files once you verified that everything works smoothly with the new format.&lt;br /&gt;
&lt;br /&gt;
{{note|ensure that all external and third-party repositories (e.g. the one provided by [https://pmg.proxmox.com/wiki/index.php/Install_Avast avast] have provided the keys in the correct places).&lt;br /&gt;
|reminder}}&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/trixie/release-notes/upgrading.en.html upgrade specific issues for Trixie].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list for the Proxmox Mail Gateway 9.X minor releases as this gets updated with future minor releases:&lt;br /&gt;
* https://pmg.proxmox.com/wiki/Roadmap#9.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.debian.org/releases/trixie/release-notes/issues.en.html#timezones-split-off-into-tzdata-legacy-package Legacy Timezones were split off] This should not be an issue as Proxmox Mail Gateway never offered the deprecated timezones for selection.&lt;br /&gt;
but if you&#039;ve manually configured one and &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; does not start, install the &amp;lt;code&amp;gt;tzdata-legacy&amp;lt;/code&amp;gt; package.&lt;br /&gt;
* The external &amp;lt;code&amp;gt;avast&amp;lt;/code&amp;gt; Virus Scanner [https://pmg.proxmox.com/wiki/index.php/Install_Avast with integration in Promxox Mail Gateway] has not yet released a version for Debian Trixie. If you are using it consider delaying the upgrade until it becomes available&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Trixie (without using the Proxmox Mail Gateway ISO), you may have installed the package &#039;linux-image-amd64&#039;, which conflicts with current 9.x setups. To solve this, you have to remove this package with&lt;br /&gt;
 apt remove linux-image-amd64&lt;br /&gt;
before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
The new kernel can recognize more hardware features such as virtual function of PCI(e) devices. Since network names are usually derived from PIC(e) addresses and features recognized by the kernel, the network configuration might need to be adapted to match the new interface names.&lt;br /&gt;
&lt;br /&gt;
In such cases, the network connection to a Proxmox Datacenter Manager host might be lost during or after the upgrade process. Hence, it is generally recommended to have either physical access or an independent remote connection to the host (for example, via IPMI or iKVM).&lt;br /&gt;
&lt;br /&gt;
The latest version of Proxmox Mail Gateway 8.2 and 9.0 provide a package called &amp;lt;code&amp;gt;proxmox-network-interface-pinning&amp;lt;/code&amp;gt; that you can install.&lt;br /&gt;
This package offers a CLI tool that helps you pin all network interfaces to NIC-based names and update the network configuration simultaneously.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot meta-package changes the bootloader configuration automatically and should be uninstalled ==&lt;br /&gt;
With Debian Trixie the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package got split up a bit further into &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; (containing the EFI-binary used for booting), &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; (containing &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt;) and the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package (containing hooks which run upon upgrades of itself and other packages and install systemd-boot as bootloader).&lt;br /&gt;
&lt;br /&gt;
As Proxmox Systems usually use &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for booting only in some configurations (ZFS on root and UEFI booted without secure boot), which are managed by &amp;lt;code&amp;gt;proxmox-boot-tool&amp;lt;/code&amp;gt;, the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; should be removed.&lt;br /&gt;
&lt;br /&gt;
The package was automatically shipped for systems installed from the PMG 8.0 to PMG 8.2 ISOs, as it contained &amp;lt;code&amp;gt;bootctl&amp;lt;/code&amp;gt; in bookworm.&lt;br /&gt;
If the &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script suggests it, the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; meta-package is safe to remove unless you manually installed it and are using &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; as a bootloader. Should &amp;lt;code&amp;gt;systemd-boot-efi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systemd-boot-tools&amp;lt;/code&amp;gt; be required, &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; will warn you accordingly.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;pmg8to9&amp;lt;/code&amp;gt; checklist script will change its output depending on the state of the upgrade, and should be [[#Continuously_use_the_pmg8to9_checklist_script|run continuously before and after the upgrade]]. It will print which packages should be removed or added at the appropriate time. The only situation where you should keep the meta-package &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; installed is if you manually setup &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; for your system.&lt;br /&gt;
&lt;br /&gt;
See also [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110177 the filed bug for systemd-boot].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/trixie/release-notes/ Release Notes for Debian 13.0 (trixie)]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=139</id>
		<title>Quarantine Web Interface Via Nginx Proxy</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=139"/>
		<updated>2024-08-27T10:02:34Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: fix #5664&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly.&lt;br /&gt;
If a mail is detected as spam users themselves can decide whether they want to keep or delete it in the user quarantine interface.&lt;br /&gt;
(for dangerous content, as mail containing viruses, or potentially dangerous attachments, the administrator needs to decide whether&lt;br /&gt;
to pass the mail on or delete it).&lt;br /&gt;
&lt;br /&gt;
In certain environments it is desired to provide the user quarantine interface at a specific host and port, &lt;br /&gt;
e.g. in order to only allow access to the interface from outside on port 443, or to provide a different and &lt;br /&gt;
trusted certificate to your users.&lt;br /&gt;
&lt;br /&gt;
The following Howto describes a small nginx configuration, which only exposes the paths necessary for user quarantine interface access,&lt;br /&gt;
while preventing access to other parts of the API.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this provides mostly cosmetic protection, since all paths in the Proxmox Mail Gateway API, apart from the login path&lt;br /&gt;
are only available to authenticated users anyways. The unprotected login path needs to be forwarded for the quarantine access as well.&lt;br /&gt;
&lt;br /&gt;
For creating a general reverse proxy for the complete web interface refer to the [https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy Howto in the Proxmox VE wiki].&lt;br /&gt;
&lt;br /&gt;
== Installing nginx ==&lt;br /&gt;
&lt;br /&gt;
The Howto creates a configuration suitable for nginx. You can install nginx on your Proxmox Mail Gateway using &amp;lt;nowiki&amp;gt;apt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 apt install nginx&lt;br /&gt;
&lt;br /&gt;
== Creating a site to proxy requests for quarantine  ==&lt;br /&gt;
&lt;br /&gt;
The following configuration is a minimal working nginx-site to proxy all requests necessary for accessing the quarantine interface for users.&lt;br /&gt;
You should adapt it to your site&#039;s requirements. This includes:&lt;br /&gt;
* changing the path to the used certificates&lt;br /&gt;
* setting the proper &amp;lt;code&amp;gt;server_name&amp;lt;/code&amp;gt;&lt;br /&gt;
* adapting the ssl-configuration parameters to current best practices&lt;br /&gt;
* if the proxy server is running directly on PMG:&lt;br /&gt;
** you probably want to disable the &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; site configuration &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/default&amp;lt;/code&amp;gt;.&lt;br /&gt;
** if you&#039;re using the integrated ACME implementation with the standalone plugin you need to remove the server on port 80 below, since the ACME implementation needs to bind to it during certificate renewal&lt;br /&gt;
* if the proxy server is running on another host adapting the url for the &amp;lt;code&amp;gt;proxy_pass&amp;lt;/code&amp;gt; directives&lt;br /&gt;
* You will also need to adapt the settings in the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_spamdetector_quarantine Spam Detector Quarantine Options in the PMG GUI] to reflect the hostname and port of the proxy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the site running write the config to &amp;lt;code&amp;gt;/etc/nginx/sites-available/pmg-quarantine.conf&amp;lt;/code&amp;gt; and symlink it to &amp;lt;code&amp;gt;/etc/nginx/sites-enabled&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ln -rs /etc/nginx/sites-available/pmg-quarantine.conf /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name _;&lt;br /&gt;
    ssl_certificate /etc/pmg/pmg-api.pem;&lt;br /&gt;
    ssl_certificate_key /etc/pmg/pmg-api.pem;&lt;br /&gt;
    proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
    proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;; &lt;br /&gt;
    proxy_set_header PVEClientIP $remote_addr; &lt;br /&gt;
    proxy_buffering off;&lt;br /&gt;
    client_max_body_size 0;&lt;br /&gt;
    proxy_connect_timeout  3600s;&lt;br /&gt;
    proxy_read_timeout  3600s;&lt;br /&gt;
    proxy_send_timeout  3600s;&lt;br /&gt;
    send_timeout  3600s;&lt;br /&gt;
    &lt;br /&gt;
    # proxy requests for static components&lt;br /&gt;
    location ~ /proxmoxlib.js$|/favicon.ico$|/pve2/|/fontawesome/|/framework7/|/pwt/ {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
    location /quarantine {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location /api2 {&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/(access/ticket$|version$) {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/nodes/.+/subscription$ {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/quarantine {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=137</id>
		<title>Quarantine Web Interface Via Nginx Proxy</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=137"/>
		<updated>2024-07-11T07:34:38Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: note that the default site usually should be disabled /* Creating a site to proxy requests for quarantine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly.&lt;br /&gt;
If a mail is detected as spam users themselves can decide whether they want to keep or delete it in the user quarantine interface.&lt;br /&gt;
(for dangerous content, as mail containing viruses, or potentially dangerous attachments, the administrator needs to decide whether&lt;br /&gt;
to pass the mail on or delete it).&lt;br /&gt;
&lt;br /&gt;
In certain environments it is desired to provide the user quarantine interface at a specific host and port, &lt;br /&gt;
e.g. in order to only allow access to the interface from outside on port 443, or to provide a different and &lt;br /&gt;
trusted certificate to your users.&lt;br /&gt;
&lt;br /&gt;
The following Howto describes a small nginx configuration, which only exposes the paths necessary for user quarantine interface access,&lt;br /&gt;
while preventing access to other parts of the API.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this provides mostly cosmetic protection, since all paths in the Proxmox Mail Gateway API, apart from the login path&lt;br /&gt;
are only available to authenticated users anyways. The unprotected login path needs to be forwarded for the quarantine access as well.&lt;br /&gt;
&lt;br /&gt;
For creating a general reverse proxy for the complete web interface refer to the [https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy Howto in the Proxmox VE wiki].&lt;br /&gt;
&lt;br /&gt;
== Installing nginx ==&lt;br /&gt;
&lt;br /&gt;
The Howto creates a configuration suitable for nginx. You can install nginx on your Proxmox Mail Gateway using &amp;lt;nowiki&amp;gt;apt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 apt install nginx&lt;br /&gt;
&lt;br /&gt;
== Creating a site to proxy requests for quarantine  ==&lt;br /&gt;
&lt;br /&gt;
The following configuration is a minimal working nginx-site to proxy all requests necessary for accessing the quarantine interface for users.&lt;br /&gt;
You should adapt it to your site&#039;s requirements. This includes:&lt;br /&gt;
* changing the path to the used certificates&lt;br /&gt;
* setting the proper &amp;lt;code&amp;gt;server_name&amp;lt;/code&amp;gt;&lt;br /&gt;
* adapting the ssl-configuration parameters to current best practices&lt;br /&gt;
* if the proxy server is running directly on PMG:&lt;br /&gt;
** you probably want to disable the &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; site configuration &amp;lt;code&amp;gt;/etc/nginx/sites-enabled/default&amp;lt;/code&amp;gt;.&lt;br /&gt;
** if you&#039;re using the integrated ACME implementation with the standalone plugin you need to remove the server on port 80 below, since the ACME implementation needs to bind to it during certificate renewal&lt;br /&gt;
* if the proxy server is running on another host adapting the url for the &amp;lt;code&amp;gt;proxy_pass&amp;lt;/code&amp;gt; directives&lt;br /&gt;
* You will also need to adapt the settings in the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_spamdetector_quarantine Spam Detector Quarantine Options in the PMG GUI] to reflect the hostname and port of the proxy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the site running write the config to &amp;lt;code&amp;gt;/etc/nginx/sites-available/pmg-quarantine.conf&amp;lt;/code&amp;gt; and symlink it to &amp;lt;code&amp;gt;/etc/nginx/sites-enabled&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ln -rs /etc/nginx/sites-available/pmg-quarantine.conf /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443;&lt;br /&gt;
    server_name _;&lt;br /&gt;
    ssl on;&lt;br /&gt;
    ssl_certificate /etc/pmg/pmg-api.pem;&lt;br /&gt;
    ssl_certificate_key /etc/pmg/pmg-api.pem;&lt;br /&gt;
    proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
    proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;; &lt;br /&gt;
    proxy_set_header PVEClientIP $remote_addr; &lt;br /&gt;
    proxy_buffering off;&lt;br /&gt;
    client_max_body_size 0;&lt;br /&gt;
    proxy_connect_timeout  3600s;&lt;br /&gt;
    proxy_read_timeout  3600s;&lt;br /&gt;
    proxy_send_timeout  3600s;&lt;br /&gt;
    send_timeout  3600s;&lt;br /&gt;
    &lt;br /&gt;
    # proxy requests for static components&lt;br /&gt;
    location ~ /proxmoxlib.js$|/favicon.ico$|/pve2/|/fontawesome/|/framework7/|/pwt/ {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
    location /quarantine {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location /api2 {&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/(access/ticket$|version$) {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/nodes/.+/subscription$ {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/quarantine {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=136</id>
		<title>Quarantine Web Interface Via Nginx Proxy</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=136"/>
		<updated>2024-07-10T13:03:00Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: point to the necessary spam-detector quarantine settings in the GUI /* Creating a site to proxy requests for quarantine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly.&lt;br /&gt;
If a mail is detected as spam users themselves can decide whether they want to keep or delete it in the user quarantine interface.&lt;br /&gt;
(for dangerous content, as mail containing viruses, or potentially dangerous attachments, the administrator needs to decide whether&lt;br /&gt;
to pass the mail on or delete it).&lt;br /&gt;
&lt;br /&gt;
In certain environments it is desired to provide the user quarantine interface at a specific host and port, &lt;br /&gt;
e.g. in order to only allow access to the interface from outside on port 443, or to provide a different and &lt;br /&gt;
trusted certificate to your users.&lt;br /&gt;
&lt;br /&gt;
The following Howto describes a small nginx configuration, which only exposes the paths necessary for user quarantine interface access,&lt;br /&gt;
while preventing access to other parts of the API.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this provides mostly cosmetic protection, since all paths in the Proxmox Mail Gateway API, apart from the login path&lt;br /&gt;
are only available to authenticated users anyways. The unprotected login path needs to be forwarded for the quarantine access as well.&lt;br /&gt;
&lt;br /&gt;
For creating a general reverse proxy for the complete web interface refer to the [https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy Howto in the Proxmox VE wiki].&lt;br /&gt;
&lt;br /&gt;
== Installing nginx ==&lt;br /&gt;
&lt;br /&gt;
The Howto creates a configuration suitable for nginx. You can install nginx on your Proxmox Mail Gateway using &amp;lt;nowiki&amp;gt;apt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 apt install nginx&lt;br /&gt;
&lt;br /&gt;
== Creating a site to proxy requests for quarantine  ==&lt;br /&gt;
&lt;br /&gt;
The following configuration is a minimal working nginx-site to proxy all requests necessary for accessing the quarantine interface for users.&lt;br /&gt;
You should adapt it to your site&#039;s requirements. This includes:&lt;br /&gt;
* changing the path to the used certificates&lt;br /&gt;
* setting the proper &amp;lt;nowiki&amp;gt;server_name&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* adapting the ssl-configuration parameters to current best practices&lt;br /&gt;
* if the proxy server is running on another host adapting the url for the &amp;lt;nowiki&amp;gt;proxy_pass&amp;lt;/nowiki&amp;gt; directives&lt;br /&gt;
* You will also need to adapt the settings in the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_spamdetector_quarantine Spam Detector Quarantine Options in the PMG GUI] to reflect the hostname and port of the proxy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the site running write the config to &amp;lt;nowiki&amp;gt;/etc/nginx/sites-available/pmg-quarantine.conf&amp;lt;/nowiki&amp;gt; and symlink it to &amp;lt;nowiki&amp;gt;/etc/nginx/sites-enabled&amp;lt;/nowiki&amp;gt;:&lt;br /&gt;
 ln -rs /etc/nginx/sites-available/pmg-quarantine.conf /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443;&lt;br /&gt;
    server_name _;&lt;br /&gt;
    ssl on;&lt;br /&gt;
    ssl_certificate /etc/pmg/pmg-api.pem;&lt;br /&gt;
    ssl_certificate_key /etc/pmg/pmg-api.pem;&lt;br /&gt;
    proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
    proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;; &lt;br /&gt;
    proxy_set_header PVEClientIP $remote_addr; &lt;br /&gt;
    proxy_buffering off;&lt;br /&gt;
    client_max_body_size 0;&lt;br /&gt;
    proxy_connect_timeout  3600s;&lt;br /&gt;
    proxy_read_timeout  3600s;&lt;br /&gt;
    proxy_send_timeout  3600s;&lt;br /&gt;
    send_timeout  3600s;&lt;br /&gt;
    &lt;br /&gt;
    # proxy requests for static components&lt;br /&gt;
    location ~ /proxmoxlib.js$|/favicon.ico$|/pve2/|/fontawesome/|/framework7/|/pwt/ {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
    location /quarantine {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location /api2 {&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/(access/ticket$|version$) {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/nodes/.+/subscription$ {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/quarantine {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: if you&#039;re using the integrated ACME implementation with the standalone plugin you need to remove the server on port 80 above, since the ACME implementation needs to bind to it during certificate renewal&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=134</id>
		<title>Upgrade from 7 to 8</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=134"/>
		<updated>2024-02-26T12:13:23Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: fix link to potential issues, provision for linking to all minor-releases known issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 8.x is based on the new major version of Debian (Bookworm). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Bookworm.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 7.x system to Proxmox Mail Gateway 8.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Bookworm]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Bookworm]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
Perform the actions via console or SSH. If you use SSH you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgraded to the latest version of Proxmox Mail Gateway 7., see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bullseye repos setup) to upgrade to latest 7.3&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 7.3-6 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/7.3-6/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* At least 5 GB free disk space on root mount point.&lt;br /&gt;
* Check [[#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 7 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg7to8&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 7.3 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg7to8&lt;br /&gt;
&lt;br /&gt;
This script only &#039;&#039;&#039;checks&#039;&#039;&#039; and reports things. By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
It is recommended to re-run the script after each attempt to fix an issue. This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Bookworm - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
Update all Debian repository entries to Bookworm.&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bullseye/bookworm/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Update the enterprise repository to Bookworm:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg bookworm pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
For the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories].&lt;br /&gt;
Rather than commenting out/removing the PMG 7.x repositories, as was previously mentioned, you could also run the following command to update to the Proxmox Mail Gateway 8 repositories:&lt;br /&gt;
 sed -i -e &#039;s/bullseye/bookworm/g&#039; /etc/apt/sources.list.d/pmg-install-repo.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also update any extra files that you added to &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; to Bookworm accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
During the above step, you will be asked to approve changes to configuration files, where the default config has been updated by their respective package.&lt;br /&gt;
&lt;br /&gt;
It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup.&lt;br /&gt;
&lt;br /&gt;
Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt; -&amp;gt; Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/clamav/clamd.conf &amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt; -&amp;gt; Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; -&amp;gt; If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; -&amp;gt; Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot the Proxmox Mail Gateway host yet after the dist-upgrade finished.&lt;br /&gt;
&lt;br /&gt;
=== Adapt modified configuration templates to new shipped versions ===&lt;br /&gt;
&lt;br /&gt;
If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
=== Disable ClamAV On-Access Scanner Service ===&lt;br /&gt;
&lt;br /&gt;
The new ClamAV on-access scanning service is not useful for Proxmox Mail Gateway setups and is disabled for new installations as it not only slows down the entire system, but also affects the spam and virus detection mechanisms managed by Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
During upgrades, the service may get enabled and will then be marked as failed.&lt;br /&gt;
It is recommended to disable this service:&lt;br /&gt;
 systemctl disable clamav-clamonacc.service&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Before upgrading the PostgreSQL main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_dropcluster --stop 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 13 to 15, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 15 13 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Reboot and then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reconnect to the node after it successfully rebooted&lt;br /&gt;
&lt;br /&gt;
* You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
:&amp;lt;pre&amp;gt;apt purge postgresql-13 postgresql-client-13&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html upgrade specific issues for Bookworm].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list for the Proxmox Mail Gateway 8.X minor releases: &lt;br /&gt;
* https://pmg.proxmox.com/wiki/Roadmap#8.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* Changed defaults for Bayes and AWL&lt;br /&gt;
** Since the two options cause worse results when enabled in most average installations their defaults changed in 8.0, and they are now disabled&lt;br /&gt;
*: If your installation explicitly disabled, or enabled the feature nothing will change&lt;br /&gt;
*: In case your installation never set the setting the old default will now be written to &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; to keep your system consistent.&lt;br /&gt;
&lt;br /&gt;
* The ClamAV antivirus daemon &amp;lt;code&amp;gt;clamav-daemon&amp;lt;/code&amp;gt; now uses socket-activation&lt;br /&gt;
*: To disable the service you need to disable &amp;lt;code&amp;gt;clamav-daemon.service&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clamav-daemon.socket&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Postgresql config change&lt;br /&gt;
*: the &amp;lt;code&amp;gt;stats_temp_directory&amp;lt;/code&amp;gt; server variable is no longer supported&lt;br /&gt;
*: the postgresql.conf template shipped with Proxmox Mail Gateway accounts for the change&lt;br /&gt;
*: if you have modified the template (or copied it without modification) in /etc/pmg/templates/ - make sure to remove the line and/or remove the complete template override (if you don&#039;t have any modifications)&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Bookworm (without using the Proxmox Mail Gateway ISO), you may have installed the package &#039;linux-image-amd64&#039;, which conflicts with current 8.x setups. To solve this, you have to remove this package with&lt;br /&gt;
 apt remove linux-image-amd64&lt;br /&gt;
before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
Due to the new kernel recognizing more features of some hardware, like for example virtual functions, and since interface naming often derives from the PCI(e) address, some NICs may change their name, in which case the network configuration needs to be adapted.&lt;br /&gt;
&lt;br /&gt;
This can also happen in virtualized environments (and has been reported with Xen for this upgrade)&lt;br /&gt;
&lt;br /&gt;
In general, it&#039;s recommended to either have an independent remote connection to the Proxmox Mail Gateways&#039;s host console, for example, through the hypervisor in case of a VM or container setup, IPMI or iKVM, or physical access for managing the server even &lt;br /&gt;
when its own network doesn&#039;t come up after a major upgrade or network change.&lt;br /&gt;
&lt;br /&gt;
=== Network Fails on Boot Due to NTPsec Hook ===&lt;br /&gt;
&lt;br /&gt;
Some users reported that after the upgrade their network failed to come up cleanly on boot, but worked if triggered manually (e.g., using &amp;lt;code&amp;gt;ifreload -a&amp;lt;/code&amp;gt;), when ntpsec was installed.&lt;br /&gt;
&lt;br /&gt;
We&#039;re still investigating for a definitive root cause, but it seems that an udev hook which the &amp;lt;code&amp;gt;/etc/network/if-up.d/ntpsec-ntpdate&amp;lt;/code&amp;gt; might hang on some hardware, albeit due to changes not directly related to ntpsec.&lt;br /&gt;
&lt;br /&gt;
The simplest solution might be switching to that via &amp;lt;code&amp;gt;apt install chrony&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot (for ZFS on root and UEFI systems only) ==&lt;br /&gt;
&lt;br /&gt;
Systems booting via UEFI from a ZFS on root setup should install the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package after the upgrade. You will get a Warning from the &amp;lt;code&amp;gt;pve7to8&amp;lt;/code&amp;gt; script after the upgrade if your system is affected - in all other cases you can safely ignore this point.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; was split out from the &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; package for Debian Bookworm based releases. It won&#039;t get installed automatically upon upgrade from Proxmox Mail Gateway 7.3 as it can cause trouble on systems not booting from UEFI with ZFS on root setup by the Proxmox Mail Gateway installer.&lt;br /&gt;
&lt;br /&gt;
Systems which have ZFS on root and boot in UEFI mode will need to manually install it if they need to initialize a new ESP (see the output of &amp;lt;code&amp;gt;proxmox-boot-tool status&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note that the system remains bootable even without the package installed.&lt;br /&gt;
&lt;br /&gt;
It is not recommended installing &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; on systems which don&#039;t need it, as it would replace &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; as bootloader in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/bookworm/amd64/release-notes/ Release Notes for Debian 12.0 (bookworm), 64-bit PC]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=133</id>
		<title>Upgrade from 7 to 8</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=133"/>
		<updated>2023-08-16T08:08:26Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Update the configured APT repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 8.x is based on the new major version of Debian (Bookworm). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Bookworm.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 7.x system to Proxmox Mail Gateway 8.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Bookworm]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Bookworm]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
Perform the actions via console or SSH. If you use SSH you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgraded to the latest version of Proxmox Mail Gateway 7., see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bullseye repos setup) to upgrade to latest 7.3&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 7.3-6 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/7.3-6/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* At least 5 GB free disk space on root mount point.&lt;br /&gt;
* Check [[Upgrade_from_7.x_to_8.0#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 7 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg7to8&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 7.3 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg7to8&lt;br /&gt;
&lt;br /&gt;
This script only &#039;&#039;&#039;checks&#039;&#039;&#039; and reports things. By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
It is recommended to re-run the script after each attempt to fix an issue. This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Bookworm - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
Update all Debian repository entries to Bookworm.&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bullseye/bookworm/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Update the enterprise repository to Bookworm:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg bookworm pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
For the no-subscription repository, see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories].&lt;br /&gt;
Rather than commenting out/removing the PMG 7.x repositories, as was previously mentioned, you could also run the following command to update to the Proxmox Mail Gateway 8 repositories:&lt;br /&gt;
 sed -i -e &#039;s/bullseye/bookworm/g&#039; /etc/apt/sources.list.d/pmg-install-repo.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also update any extra files that you added to &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; to Bookworm accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
During the above step, you will be asked to approve changes to configuration files, where the default config has been updated by their respective package.&lt;br /&gt;
&lt;br /&gt;
It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup.&lt;br /&gt;
&lt;br /&gt;
Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt; -&amp;gt; Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/clamav/clamd.conf &amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt; -&amp;gt; Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; -&amp;gt; If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; -&amp;gt; Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot the Proxmox Mail Gateway host yet after the dist-upgrade finished.&lt;br /&gt;
&lt;br /&gt;
=== Adapt modified configuration templates to new shipped versions ===&lt;br /&gt;
&lt;br /&gt;
If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
=== Disable ClamAV On-Access Scanner Service ===&lt;br /&gt;
&lt;br /&gt;
The new ClamAV on-access scanning service is not useful for Proxmox Mail Gateway setups and is disabled for new installations as it not only slows down the entire system, but also affects the spam and virus detection mechanisms managed by Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
During upgrades, the service may get enabled and will then be marked as failed.&lt;br /&gt;
It is recommended to disable this service:&lt;br /&gt;
 systemctl disable clamav-clamonacc.service&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Before upgrading the PostgreSQL main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_dropcluster --stop 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 13 to 15, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 15 13 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Reboot and then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reconnect to the node after it successfully rebooted&lt;br /&gt;
&lt;br /&gt;
* You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
:&amp;lt;pre&amp;gt;apt purge postgresql-13 postgresql-client-13&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html upgrade specific issues for Bookworm].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list from the Proxmox Mail Gateway 8.0 changelog: https://pmg.proxmox.com/wiki/Roadmap#8.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* Changed defaults for Bayes and AWL&lt;br /&gt;
** Since the two options cause worse results when enabled in most average installations their defaults changed in 8.0, and they are now disabled&lt;br /&gt;
*: If your installation explicitly disabled, or enabled the feature nothing will change&lt;br /&gt;
*: In case your installation never set the setting the old default will now be written to &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; to keep your system consistent.&lt;br /&gt;
&lt;br /&gt;
* The ClamAV antivirus daemon &amp;lt;code&amp;gt;clamav-daemon&amp;lt;/code&amp;gt; now uses socket-activation&lt;br /&gt;
*: To disable the service you need to disable &amp;lt;code&amp;gt;clamav-daemon.service&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clamav-daemon.socket&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Postgresql config change&lt;br /&gt;
*: the &amp;lt;code&amp;gt;stats_temp_directory&amp;lt;/code&amp;gt; server variable is no longer supported&lt;br /&gt;
*: the postgresql.conf template shipped with Proxmox Mail Gateway accounts for the change&lt;br /&gt;
*: if you have modified the template (or copied it without modification) in /etc/pmg/templates/ - make sure to remove the line and/or remove the complete template override (if you don&#039;t have any modifications)&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Bookworm (without using the Proxmox Mail Gateway ISO), you may have installed the package &#039;linux-image-amd64&#039;, which conflicts with current 8.x setups. To solve this, you have to remove this package with&lt;br /&gt;
 apt remove linux-image-amd64&lt;br /&gt;
before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
Due to the new kernel recognizing more features of some hardware, like for example virtual functions, and since interface naming often derives from the PCI(e) address, some NICs may change their name, in which case the network configuration needs to be adapted.&lt;br /&gt;
&lt;br /&gt;
This can also happen in virtualized environments (and has been reported with Xen for this upgrade)&lt;br /&gt;
&lt;br /&gt;
In general, it&#039;s recommended to either have an independent remote connection to the Proxmox Mail Gateways&#039;s host console, for example, through the hypervisor in case of a VM or container setup, IPMI or iKVM, or physical access for managing the server even &lt;br /&gt;
when its own network doesn&#039;t come up after a major upgrade or network change.&lt;br /&gt;
&lt;br /&gt;
=== Network Fails on Boot Due to NTPsec Hook ===&lt;br /&gt;
&lt;br /&gt;
Some users reported that after the upgrade their network failed to come up cleanly on boot, but worked if triggered manually (e.g., using &amp;lt;code&amp;gt;ifreload -a&amp;lt;/code&amp;gt;), when ntpsec was installed.&lt;br /&gt;
&lt;br /&gt;
We&#039;re still investigating for a definitive root cause, but it seems that an udev hook which the &amp;lt;code&amp;gt;/etc/network/if-up.d/ntpsec-ntpdate&amp;lt;/code&amp;gt; might hang on some hardware, albeit due to changes not directly related to ntpsec.&lt;br /&gt;
&lt;br /&gt;
The simplest solution might be switching to that via &amp;lt;code&amp;gt;apt install chrony&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot (for ZFS on root and UEFI systems only) ==&lt;br /&gt;
&lt;br /&gt;
Systems booting via UEFI from a ZFS on root setup should install the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package after the upgrade. You will get a Warning from the &amp;lt;code&amp;gt;pve7to8&amp;lt;/code&amp;gt; script after the upgrade if your system is affected - in all other cases you can safely ignore this point.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; was split out from the &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; package for Debian Bookworm based releases. It won&#039;t get installed automatically upon upgrade from Proxmox Mail Gateway 7.3 as it can cause trouble on systems not booting from UEFI with ZFS on root setup by the Proxmox Mail Gateway installer.&lt;br /&gt;
&lt;br /&gt;
Systems which have ZFS on root and boot in UEFI mode will need to manually install it if they need to initialize a new ESP (see the output of &amp;lt;code&amp;gt;proxmox-boot-tool status&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note that the system remains bootable even without the package installed.&lt;br /&gt;
&lt;br /&gt;
It is not recommended installing &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; on systems which don&#039;t need it, as it would replace &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; as bootloader in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/bookworm/amd64/release-notes/ Release Notes for Debian 12.0 (bookworm), 64-bit PC]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=132</id>
		<title>Install Avast</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=132"/>
		<updated>2023-07-13T09:38:39Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: add instruction to disable upstream reporting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway ships and uses the open source [https://www.clamav.net/ ClamAV] antivirus engine in its default installation.&lt;br /&gt;
&lt;br /&gt;
Certain environments have the need for a better virus detection rate than the one achieved by ClamAV.&lt;br /&gt;
&lt;br /&gt;
For these setups Proxmox Mail Gateway offers an integration with the [https://www.avast.com/en-us/business/products/antivirus-for-linux Avast Antivirus for Linux].&lt;br /&gt;
This HOWTO follows the technical documentation from Avast - https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf&lt;br /&gt;
&lt;br /&gt;
Avast Antivirus for Linux is commercial software and you will need to purchase a license in order to use it.&lt;br /&gt;
&lt;br /&gt;
The following facts are why it can be integrated with Proxmox Mail Gateway as an alternative to ClamAV:&lt;br /&gt;
&lt;br /&gt;
* The licensing is based on the number of installations instead of other licensing schemes such as the number of processed mails or mailboxes.&lt;br /&gt;
* The software runs daemonized and thus reads and caches the AV definitions once upon startup instead of each time a file is scanned&lt;br /&gt;
&lt;br /&gt;
The following HOWTO provides the necessary steps to install and configure Avast within a Proxmox Mail Gateway installation.&lt;br /&gt;
&lt;br /&gt;
== Installing Avast Antivirus for Linux ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway is based on Debian GNU/Linux - thus you need to follow the installation instruction for Debian systems.&lt;br /&gt;
&lt;br /&gt;
To configure the Avast repository and install the software:&lt;br /&gt;
&lt;br /&gt;
# Create the appropriate [https://manpages.debian.org/apt/sources.list.5.en.html sources.list] entry:&lt;br /&gt;
#:&amp;lt;code&amp;gt;echo &amp;quot;deb https://repo.avcdn.net/linux-av/deb debian-bookworm release&amp;quot; &amp;gt; /etc/apt/sources.list.d/avast.list&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify the signing key for the repository from Avast:&lt;br /&gt;
#* Get the key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;wget https://repo.avcdn.net/linux-av/doc/avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Read the checksum&lt;br /&gt;
#*:&amp;lt;code&amp;gt;sha512sum avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* The result should be&lt;br /&gt;
#*:&amp;lt;code&amp;gt;7fca6e2a8984931d46a8ff13cd086a934ca126068c074c86a13a30aa2f909663b9e5ae8529a02632c7735d2823bfc71b0e0987a63f8c4dd11130b2529e956f22  avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Add the GPG key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;cp avast-gpg-key.asc /etc/apt/trusted.gpg.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the apt package information and install the software&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt install avast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Registering license ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf instructions provided by Avast] to activate your purchased license.&lt;br /&gt;
Currently (13.07.2023) you&#039;ll get an activation code with your purchase and need to obtain the license file with the &amp;lt;code&amp;gt;avastlic&amp;lt;/code&amp;gt; utility:&lt;br /&gt;
 avastlic -f /etc/avast/license.avastlic -c &amp;lt;YOUR-ACTIVATION-CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The utility is in a debian package of its own (so you can also run it on a separate machine):&lt;br /&gt;
 apt install avast-license&lt;br /&gt;
&lt;br /&gt;
After enabling your license you need to restart the &amp;lt;code&amp;gt;avast.service&amp;lt;/code&amp;gt;&lt;br /&gt;
  systemctl restart avast.service&lt;br /&gt;
&lt;br /&gt;
== Integration with Proxmox Mail Gateway ==&lt;br /&gt;
&lt;br /&gt;
Enabling the Avast scanner in Proxmox Mail Gateway is achieved by editing the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_configuration_file Promox Mail Gateway&#039;s configuration file]&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; and adding the line &amp;lt;code&amp;gt;avast 1&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
 section: admin&lt;br /&gt;
 	avast 1&lt;br /&gt;
 	email admin@pmg.example&lt;br /&gt;
&lt;br /&gt;
Finally you need to restart the &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; service, or reboot your Promox Mail Gateway:&lt;br /&gt;
 systemctl restart pmg-smtp-filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disable sending statistics and files to the Avast Virus Lab ==&lt;br /&gt;
&lt;br /&gt;
By default &amp;lt;code&amp;gt;avast&amp;lt;/code&amp;gt; sends files it considers suspicious and statistics to the Avast&#039;s virus lab.&lt;br /&gt;
To disable this you need to edit the avast configuration &amp;lt;code&amp;gt;/etc/avast/avast.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # Avast configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # Below are all available configuration options and their default values. Only&lt;br /&gt;
 # the options in the OPTIONS section can be changed at runtime.&lt;br /&gt;
 &lt;br /&gt;
 # RUN_DIR = &amp;quot;/run/avast&amp;quot;&lt;br /&gt;
 # TEMP_DIR = &amp;quot;/tmp&amp;quot;&lt;br /&gt;
 # DATA_DIR = &amp;quot;/var/lib/avast&amp;quot;&lt;br /&gt;
 # SOCKET = &amp;quot;/run/avast/scan.sock&amp;quot;&lt;br /&gt;
 # LICENSE = &amp;quot;/etc/avast/license.avastlic&amp;quot;&lt;br /&gt;
 # WHITELIST = &amp;quot;/etc/avast/whitelist&amp;quot;&lt;br /&gt;
 SUBMIT = &amp;quot;/bin/true&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [OPTIONS]&lt;br /&gt;
 # CREDENTIALS = 0&lt;br /&gt;
 STATISTICS = 0&lt;br /&gt;
 HEURISTICS = 0&lt;br /&gt;
 # STREAMING_UPDATES = 1&lt;br /&gt;
 # REPUTATION_QUERIES = 1&lt;br /&gt;
 &lt;br /&gt;
 [PACKER_BOMB]&lt;br /&gt;
 # MAX_FILE_SIZE_TO_EXTRACT_MB = 1000&lt;br /&gt;
 # MAX_COMPRESSION_RATIO = 100&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=131</id>
		<title>Install Avast</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=131"/>
		<updated>2023-07-13T09:11:35Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: updated to bookworm repository and new changes in avast&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway ships and uses the open source [https://www.clamav.net/ ClamAV] antivirus engine in its default installation.&lt;br /&gt;
&lt;br /&gt;
Certain environments have the need for a better virus detection rate than the one achieved by ClamAV.&lt;br /&gt;
&lt;br /&gt;
For these setups Proxmox Mail Gateway offers an integration with the [https://www.avast.com/en-us/business/products/antivirus-for-linux Avast Antivirus for Linux].&lt;br /&gt;
This HOWTO follows the technical documentation from Avast - https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf&lt;br /&gt;
&lt;br /&gt;
Avast Antivirus for Linux is commercial software and you will need to purchase a license in order to use it.&lt;br /&gt;
&lt;br /&gt;
The following facts are why it can be integrated with Proxmox Mail Gateway as an alternative to ClamAV:&lt;br /&gt;
&lt;br /&gt;
* The licensing is based on the number of installations instead of other licensing schemes such as the number of processed mails or mailboxes.&lt;br /&gt;
* The software runs daemonized and thus reads and caches the AV definitions once upon startup instead of each time a file is scanned&lt;br /&gt;
&lt;br /&gt;
The following HOWTO provides the necessary steps to install and configure Avast within a Proxmox Mail Gateway installation.&lt;br /&gt;
&lt;br /&gt;
== Installing Avast Antivirus for Linux ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway is based on Debian GNU/Linux - thus you need to follow the installation instruction for Debian systems.&lt;br /&gt;
&lt;br /&gt;
To configure the Avast repository and install the software:&lt;br /&gt;
&lt;br /&gt;
# Create the appropriate [https://manpages.debian.org/apt/sources.list.5.en.html sources.list] entry:&lt;br /&gt;
#:&amp;lt;code&amp;gt;echo &amp;quot;deb https://repo.avcdn.net/linux-av/deb debian-bookworm release&amp;quot; &amp;gt; /etc/apt/sources.list.d/avast.list&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify the signing key for the repository from Avast:&lt;br /&gt;
#* Get the key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;wget https://repo.avcdn.net/linux-av/doc/avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Read the checksum&lt;br /&gt;
#*:&amp;lt;code&amp;gt;sha512sum avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* The result should be&lt;br /&gt;
#*:&amp;lt;code&amp;gt;7fca6e2a8984931d46a8ff13cd086a934ca126068c074c86a13a30aa2f909663b9e5ae8529a02632c7735d2823bfc71b0e0987a63f8c4dd11130b2529e956f22  avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Add the GPG key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;cp avast-gpg-key.asc /etc/apt/trusted.gpg.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the apt package information and install the software&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt install avast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Registering license ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf instructions provided by Avast] to activate your purchased license.&lt;br /&gt;
Currently (13.07.2023) you&#039;ll get an activation code with your purchase and need to obtain the license file with the &amp;lt;code&amp;gt;avastlic&amp;lt;/code&amp;gt; utility:&lt;br /&gt;
 avastlic -f /etc/avast/license.avastlic -c &amp;lt;YOUR-ACTIVATION-CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The utility is in a debian package of its own (so you can also run it on a separate machine):&lt;br /&gt;
 apt install avast-license&lt;br /&gt;
&lt;br /&gt;
After enabling your license you need to restart the &amp;lt;code&amp;gt;avast.service&amp;lt;/code&amp;gt;&lt;br /&gt;
  systemctl restart avast.service&lt;br /&gt;
&lt;br /&gt;
== Integration with Proxmox Mail Gateway ==&lt;br /&gt;
&lt;br /&gt;
Enabling the Avast scanner in Proxmox Mail Gateway is achieved by editing the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_configuration_file Promox Mail Gateway&#039;s configuration file]&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; and adding the line &amp;lt;code&amp;gt;avast 1&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
 section: admin&lt;br /&gt;
 	avast 1&lt;br /&gt;
 	email admin@pmg.example&lt;br /&gt;
&lt;br /&gt;
Finally you need to restart the &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; service, or reboot your Promox Mail Gateway:&lt;br /&gt;
 systemctl restart pmg-smtp-filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=130</id>
		<title>Upgrade from 7 to 8</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_7_to_8&amp;diff=130"/>
		<updated>2023-07-05T08:25:47Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Network Interface Name Change */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 8.x is based on the new major version of Debian (Bookworm). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Bookworm.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 7.x system to Proxmox Mail Gateway 8.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Bookworm]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Bookworm]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
Perform the actions via console or SSH. If you use SSH you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
&lt;br /&gt;
* Perform these actions via SSH, a physical console or a remote management console like iKVM or IPMI.&lt;br /&gt;
** If you use SSH, you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
** &#039;&#039;&#039;Important&#039;&#039;&#039;: Do not carry out the upgrade via the web UI console directly, as this will get interrupted during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Upgraded to the latest version of Proxmox Mail Gateway 7., see the [[Roadmap#Release History|roadmap]] for potential important changes in the stable release.&lt;br /&gt;
*: Use &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt dist-upgrade&amp;lt;/code&amp;gt; (still with Debian Bullseye repos setup) to upgrade to latest 7.3&lt;br /&gt;
** Verify version:&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 7.3-6 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/7.3-6/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* At least 5 GB free disk space on root mount point.&lt;br /&gt;
* Check [[Upgrade_from_7.x_to_8.0#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 7 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== Continuously use the &#039;&#039;&#039;pmg7to8&#039;&#039;&#039; checklist script ===&lt;br /&gt;
&lt;br /&gt;
A small checklist program named &#039;&#039;&#039;&amp;lt;code&amp;gt;pmg7to8&amp;lt;/code&amp;gt;&#039;&#039;&#039; is included in the latest Proxmox Mail Gateway 7.3 packages. The program will provide hints and warnings about potential issues before, during and after the upgrade process. You can call it by executing:&lt;br /&gt;
&lt;br /&gt;
  pmg7to8&lt;br /&gt;
&lt;br /&gt;
This script only &#039;&#039;&#039;checks&#039;&#039;&#039; and reports things. By default, no changes to the system are made and thus, none of the issues will be automatically fixed.&lt;br /&gt;
You should keep in mind that Proxmox Mail Gateway can be heavily customized, so the script may not recognize all the possible problems with a particular setup!&lt;br /&gt;
&lt;br /&gt;
It is recommended to re-run the script after each attempt to fix an issue. This ensures that the actions taken actually fixed the respective warning.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Bookworm - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
Update all Debian repository entries to Bookworm.&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/bullseye/bookworm/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Update the enterprise repository to Bookworm:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg bookworm pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also update any extra files that you added to &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; to Bookworm accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
During the above step, you will be asked to approve changes to configuration files, where the default config has been updated by their respective package.&lt;br /&gt;
&lt;br /&gt;
It&#039;s suggested to check the difference for each file in question and choose the answer accordingly to what&#039;s most appropriate for your setup.&lt;br /&gt;
&lt;br /&gt;
Common configuration files with changes, and the recommended choices are:&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/issue&amp;lt;/code&amp;gt; -&amp;gt; Proxmox Mail Gateway will auto-generate this file on boot, and it has only cosmetic effects on the login console.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/clamav/clamd.conf &amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/clamav/freshclam.conf&amp;lt;/code&amp;gt; -&amp;gt; Those two configuration files are managed by Proxmox Mail Gateway directly, at will be re-generate on any relevant change and on boot.&lt;br /&gt;
*: Using the default &amp;quot;No&amp;quot; (keep your currently-installed version) is safe here.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; -&amp;gt; If you have not changed this file manually, the only differences should be a replacement of &amp;lt;code&amp;gt;ChallengeResponseAuthentication no&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;KbdInteractiveAuthentication no&amp;lt;/code&amp;gt; and some irrelevant changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;).&lt;br /&gt;
*: If this is the case, both options are safe, though we would recommend installing the package maintainer&#039;s version in order to move away from the deprecated &amp;lt;code&amp;gt;ChallengeResponseAuthentication&amp;lt;/code&amp;gt; option. If there are other changes, we suggest to inspect them closely and decide accordingly.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; -&amp;gt; Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.&lt;br /&gt;
*: It&#039;s recommended to check the difference for any relevant change, note that changes in comments (lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) are not relevant.&lt;br /&gt;
*: If unsure, we suggested to selected &amp;quot;No&amp;quot; (keep your currently-installed version)&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot the Proxmox Mail Gateway host yet after the dist-upgrade finished.&lt;br /&gt;
&lt;br /&gt;
=== Adapt modified configuration templates to new shipped versions ===&lt;br /&gt;
&lt;br /&gt;
If configuration templates are used in &amp;lt;code&amp;gt;/etc/pmg/templates&amp;lt;/code&amp;gt;, you will see a prompt about the changes in the new version that are not yet incorporated. Review the changes carefully and ensure that only the changes you want are shown in the diff.&lt;br /&gt;
&lt;br /&gt;
=== Disable ClamAV On-Access Scanner Service ===&lt;br /&gt;
&lt;br /&gt;
The new ClamAV on-access scanning service is not useful for Proxmox Mail Gateway setups and is disabled for new installations as it not only slows down the entire system, but also affects the spam and virus detection mechanisms managed by Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
During upgrades, the service may get enabled and will then be marked as failed.&lt;br /&gt;
It is recommended to disable this service:&lt;br /&gt;
 systemctl disable clamav-clamonacc.service&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Before upgrading the PostgreSQL main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_dropcluster --stop 15 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 13 to 15, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free disk space&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 15 13 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Reboot and then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reconnect to the node after it successfully rebooted&lt;br /&gt;
&lt;br /&gt;
* You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
:&amp;lt;pre&amp;gt;apt purge postgresql-13 postgresql-client-13&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
Empty the browser cache and/or force-reload (&amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;SHIFT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;, or for MacOS &amp;lt;kbd&amp;gt;⌘&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;R&amp;lt;/kbd&amp;gt;) the Web UI.&lt;br /&gt;
&lt;br /&gt;
=== Unmasking &amp;amp; Starting Cluster Services ===&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential Issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html upgrade specific issues for Bookworm].&lt;br /&gt;
&lt;br /&gt;
Please also check the known issue list from the Proxmox Mail Gateway 8.0 changelog: https://pmg.proxmox.com/wiki/Roadmap#8.0-known-issues&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* Changed defaults for Bayes and AWL&lt;br /&gt;
** Since the two options cause worse results when enabled in most average installations their defaults changed in 8.0, and they are now disabled&lt;br /&gt;
*: If your installation explicitly disabled, or enabled the feature nothing will change&lt;br /&gt;
*: In case your installation never set the setting the old default will now be written to &amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; to keep your system consistent.&lt;br /&gt;
&lt;br /&gt;
* The ClamAV antivirus daemon &amp;lt;code&amp;gt;clamav-daemon&amp;lt;/code&amp;gt; now uses socket-activation&lt;br /&gt;
*: To disable the service you need to disable &amp;lt;code&amp;gt;clamav-daemon.service&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clamav-daemon.socket&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Postgresql config change&lt;br /&gt;
*: the &amp;lt;code&amp;gt;stats_temp_directory&amp;lt;/code&amp;gt; server variable is no longer supported&lt;br /&gt;
*: the postgresql.conf template shipped with Proxmox Mail Gateway accounts for the change&lt;br /&gt;
*: if you have modified the template (or copied it without modification) in /etc/pmg/templates/ - make sure to remove the line and/or remove the complete template override (if you don&#039;t have any modifications)&lt;br /&gt;
&lt;br /&gt;
=== Upgrade wants to remove package &#039;proxmox-mail-gateway&#039; ===&lt;br /&gt;
&lt;br /&gt;
If you have installed Proxmox Mail Gateway on top of a plain Debian Bookworm (without using the Proxmox Mail Gateway ISO), you may have installed the package &#039;linux-image-amd64&#039;, which conflicts with current 8.x setups. To solve this, you have to remove this package with&lt;br /&gt;
 apt remove linux-image-amd64&lt;br /&gt;
before the dist-upgrade.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
=== Network Interface Name Change ===&lt;br /&gt;
&lt;br /&gt;
Due to the new kernel recognizing more features of some hardware, like for example virtual functions, and since interface naming often derives from the PCI(e) address, some NICs may change their name, in which case the network configuration needs to be adapted.&lt;br /&gt;
&lt;br /&gt;
This can also happen in virtualized environments (and has been reported with Xen for this upgrade)&lt;br /&gt;
&lt;br /&gt;
In general, it&#039;s recommended to either have an independent remote connection to the Proxmox Mail Gateways&#039;s host console, for example, through the hypervisor in case of a VM or container setup, IPMI or iKVM, or physical access for managing the server even &lt;br /&gt;
when its own network doesn&#039;t come up after a major upgrade or network change.&lt;br /&gt;
&lt;br /&gt;
=== Network Fails on Boot Due to NTPsec Hook ===&lt;br /&gt;
&lt;br /&gt;
Some users reported that after the upgrade their network failed to come up cleanly on boot, but worked if triggered manually (e.g., using &amp;lt;code&amp;gt;ifreload -a&amp;lt;/code&amp;gt;), when ntpsec was installed.&lt;br /&gt;
&lt;br /&gt;
We&#039;re still investigating for a definitive root cause, but it seems that an udev hook which the &amp;lt;code&amp;gt;/etc/network/if-up.d/ntpsec-ntpdate&amp;lt;/code&amp;gt; might hang on some hardware, albeit due to changes not directly related to ntpsec.&lt;br /&gt;
&lt;br /&gt;
The simplest solution might be switching to that via &amp;lt;code&amp;gt;apt install chrony&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Systemd-boot (for ZFS on root and UEFI systems only) ==&lt;br /&gt;
&lt;br /&gt;
Systems booting via UEFI from a ZFS on root setup should install the &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; package after the upgrade. You will get a Warning from the &amp;lt;code&amp;gt;pve7to8&amp;lt;/code&amp;gt; script after the upgrade if your system is affected - in all other cases you can safely ignore this point.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; was split out from the &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; package for Debian Bookworm based releases. It won&#039;t get installed automatically upon upgrade from Proxmox Mail Gateway 7.3 as it can cause trouble on systems not booting from UEFI with ZFS on root setup by the Proxmox Mail Gateway installer.&lt;br /&gt;
&lt;br /&gt;
Systems which have ZFS on root and boot in UEFI mode will need to manually install it if they need to initialize a new ESP (see the output of &amp;lt;code&amp;gt;proxmox-boot-tool status&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note that the system remains bootable even without the package installed.&lt;br /&gt;
&lt;br /&gt;
It is not recommended installing &amp;lt;code&amp;gt;systemd-boot&amp;lt;/code&amp;gt; on systems which don&#039;t need it, as it would replace &amp;lt;code&amp;gt;grub&amp;lt;/code&amp;gt; as bootloader in its &amp;lt;code&amp;gt;postinst&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/bookworm/amd64/release-notes/ Release Notes for Debian 12.0 (bookworm), 64-bit PC]&lt;br /&gt;
&lt;br /&gt;
[[Category: Upgrade]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=DNS_server_on_Proxmox_Mail_Gateway&amp;diff=102</id>
		<title>DNS server on Proxmox Mail Gateway</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=DNS_server_on_Proxmox_Mail_Gateway&amp;diff=102"/>
		<updated>2023-01-05T09:25:50Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Installing and using unbound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
One of the most effective means to detecting spam currently is the use of [https://cwiki.apache.org/confluence/display/SPAMASSASSIN/DnsBlocklists DnsBlocklists].&lt;br /&gt;
These lists are used to query the IP of the connecting SMTP server, or IPs and hostnames occurring in the mail body.&lt;br /&gt;
&lt;br /&gt;
Some of the DNS Blocklists used by SpamAssassin (and thus also Proxmox Mail Gateway) allow only a certain number of requests per DNS server and don&#039;t respond once your DNS server has reached it&#039;s quota.&lt;br /&gt;
This is reflected in the mail logs and SpamAssassin hits of a mail. If you see &#039;URIBL_BLOCKED&#039;, &#039;RCVD_IN_DNSWL_BLOCKED&#039; or &#039;SURBL_BLOCKED&#039; in your mail logs or the mail headers, this is an indication that your system has reached the quota.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using a shared DNS server (e.g. your ISPs, or a publicly available one like 9.9.9.9, 1.1.1.1, 8.8.8.8) it is quite likely that the Mail Gateway&#039;s requests will be blocked.&lt;br /&gt;
&lt;br /&gt;
Installing a dedicated DNS server on the Proxmox Mail Gateway can help in such situations.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the DNS Blocklists can only count the requests per public IP, i.e. if you have both your internal DNS and Proxmox Mail Gateway natted to the same public IP setting up a recursive DNS server will not help.&lt;br /&gt;
&lt;br /&gt;
If you keep reaching the limit despite having a dedicated recursive server for your Proxmox Mail Gateway you should consider getting a dedicated feed, which is provided by most DNS Blocklist providers for a fee. This also helps keeping this important infrastructure up and running.&lt;br /&gt;
&lt;br /&gt;
We will use the [https://nlnetlabs.nl/projects/unbound/about/ Unbound] recursive DNS server.&lt;br /&gt;
&lt;br /&gt;
== Installing and using unbound ==&lt;br /&gt;
&lt;br /&gt;
Simply run&lt;br /&gt;
 apt install unbound dnsutils&lt;br /&gt;
&lt;br /&gt;
to install the &amp;lt;code&amp;gt;unbound&amp;lt;/code&amp;gt; server - the &amp;lt;code&amp;gt;dnsutils&amp;lt;/code&amp;gt; package contains &amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;, which can be used for testing.&lt;br /&gt;
&lt;br /&gt;
Check that unbound is indeed listening on port 53:&lt;br /&gt;
 # ss -tulnp | grep :53&lt;br /&gt;
 udp     UNCONN   0        0              127.0.0.1:53             0.0.0.0:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=5))&lt;br /&gt;
 udp     UNCONN   0        0                  [::1]:53                [::]:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=3))&lt;br /&gt;
 tcp     LISTEN   0        128            127.0.0.1:53             0.0.0.0:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=6))&lt;br /&gt;
 tcp     LISTEN   0        128                [::1]:53                [::]:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=4))&lt;br /&gt;
&lt;br /&gt;
You can verify that DNS resolution works by using the &amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt; utility&lt;br /&gt;
 # dig a proxmox.com @127.0.0.1 +short &lt;br /&gt;
 79.133.36.244&lt;br /&gt;
&lt;br /&gt;
Afterwards you need to configure your Proxmox Mail Gateway installation to use the local dns-server listening on &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; (or optionally &amp;lt;code&amp;gt;::1&amp;lt;/code&amp;gt;) as resolver.&lt;br /&gt;
In the following article we assume that your domain is &amp;lt;code&amp;gt;yourdomain.example&amp;lt;/code&amp;gt; - you need to adapt the posted configuration.&lt;br /&gt;
On a standard installation this is done by simply placing:&lt;br /&gt;
 nameserver 127.0.0.1&lt;br /&gt;
 search yourdomain.example&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. You can use the GUI for setting the dns-resolver as well under Configuration -&amp;gt; Network/Time -&amp;gt; DNS - Just add &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;DNS Server 1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When Proxmox Mail Gateway is running as a Container on Proxmox VE, then you need to edit the container&#039;s DNS Settings to use &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; as DNS Server (and adapt your search domain to &amp;lt;code&amp;gt;yourdomain.example&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
If you have installed the resolvconf package you should not need to change everything, since the unbound package in Debian brings integration with &amp;lt;code&amp;gt;resolvconf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Should your system use &amp;lt;code&amp;gt;systemd-resolved&amp;lt;/code&amp;gt; make sure that&lt;br /&gt;
 resolvectl status&lt;br /&gt;
&lt;br /&gt;
indicates that &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; is listed as &amp;lt;code&amp;gt;Current DNS Server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can simply disable and stop the service&lt;br /&gt;
 systemctl disable systemd-resolved&lt;br /&gt;
 systemctl stop systemd-resolved&lt;br /&gt;
&lt;br /&gt;
After installing you can either reboot you Proxmox Mail Gateway, or restart the services relevant for mail-processing:&lt;br /&gt;
 systemctl restart pmg-smtp-filter pmgpolicy postfix&lt;br /&gt;
&lt;br /&gt;
== Forwarding requests for your internal zone to your internal DNS ==&lt;br /&gt;
&lt;br /&gt;
In some environments the internally used DNS has all knowledge about your domain, and should be consulted for it, instead of unbound getting the publicly available data via DNS delegation from the root-servers.&lt;br /&gt;
&lt;br /&gt;
You can configure unbound to ask your internal DNS-server (for this example the internal DNS-server has the IP 192.0.2.53) for your internal domains (yourdomain.example and yourseconddomain.example).&lt;br /&gt;
Create a dedicated config-snippet &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local-stub.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 stub-zone:&lt;br /&gt;
   name: &amp;quot;yourdomain.example&amp;quot;&lt;br /&gt;
   stub-addr: 192.0.2.53&lt;br /&gt;
&lt;br /&gt;
 stub-zone:&lt;br /&gt;
   name: &amp;quot;yourseconddomain.example&amp;quot;&lt;br /&gt;
   stub-addr: 192.0.2.53&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afterwards restart unbound and verify that DNS-requests for yourdomain.example are delegated to 192.0.2.53 (by checking the DNS logs there):&lt;br /&gt;
 systemctl restart unbound&lt;br /&gt;
 dig test.yourdomain.example @127.0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: Using the local unbound only for DNS Blocklist requests ==&lt;br /&gt;
&lt;br /&gt;
Should your environment require you to use an internal DNS server for all requests, because you have a very modified setup or are employing some other blocking for regulatory reasons you can also try to forward all other requests to your internal DNS Server and only ask the DNS Blocklist zones recursively.&lt;br /&gt;
 &lt;br /&gt;
This setup is &#039;&#039;&#039;not recommended for general use&#039;&#039;&#039;, since it increases the complexity which makes debugging harder.&lt;br /&gt;
&lt;br /&gt;
In the example we will use recursive queries for the following domains and forward all other requests to 192.0.2.53:&lt;br /&gt;
* mailspike.net&lt;br /&gt;
* dnsbl.sorbs.net&lt;br /&gt;
* rhsbl.sorbs.net&lt;br /&gt;
* bl.spamcop.net&lt;br /&gt;
* spamhaus.org&lt;br /&gt;
* surbl.org&lt;br /&gt;
* uribl.com&lt;br /&gt;
* dnswl.org&lt;br /&gt;
&lt;br /&gt;
The list is taken from the [https://cwiki.apache.org/confluence/display/SPAMASSASSIN/DnsBlocklists Spam Assassin Entry on DNS Blocklists].&lt;br /&gt;
You should enhance the list by all domains you are using in your setup (especially the one&#039;s configured for &amp;lt;code&amp;gt;postscreen&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Since unbound cannot do recursive lookups for specific zones if it is forwarding all other requests we will configure 2 unbound instances:&lt;br /&gt;
* one listening on port &amp;lt;code&amp;gt;5003&amp;lt;/code&amp;gt; for recursive lookups - the DNSBL instance&lt;br /&gt;
* one forwarding requests for the DNSBL domains to port 5003, and all other requests to your internal DNS Server.&lt;br /&gt;
&lt;br /&gt;
For the DNSBL instance - create a config-file which does only include the necessary config-options &amp;lt;code&amp;gt;/etc/unbound/unbound-dnsbl.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 #unbound instance listening on port 5003 for DNSBL lookups&lt;br /&gt;
 include: &amp;quot;/etc/unbound/unbound.conf.d/qname-minimisation.conf&amp;quot;&lt;br /&gt;
 include: &amp;quot;/etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 port: 5003&lt;br /&gt;
 remote-control:&lt;br /&gt;
      control-port: 8954&lt;br /&gt;
&lt;br /&gt;
Additionally you need to create a systemd-unit (&amp;lt;code&amp;gt;/etc/systemd/system/unbound-rbl.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Unbound DNS server for DNSBL lookups&lt;br /&gt;
 Documentation=man:unbound(8)&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=nss-lookup.target&lt;br /&gt;
 Wants=nss-lookup.target&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 EnvironmentFile=-/etc/default/unbound&lt;br /&gt;
 EnvironmentFile=-/etc/default/unbound-rbl&lt;br /&gt;
 ExecStartPre=-/usr/lib/unbound/package-helper chroot_setup&lt;br /&gt;
 ExecStartPre=-/usr/lib/unbound/package-helper root_trust_anchor_update&lt;br /&gt;
 ExecStart=/usr/sbin/unbound -c /etc/unbound/unbound-rbl.conf -d $DAEMON_OPTS&lt;br /&gt;
 ExecReload=/usr/sbin/unbound-control -c /etc/unbound/unbound-rbl.conf reload&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and enable it with&lt;br /&gt;
 systemctl enable unbound-rbl&lt;br /&gt;
 systemctl start unbound-rbl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the instance listening on port 53 you need to create a config-snippet in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/pmg-dnsbl.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 server:&lt;br /&gt;
       do-not-query-localhost: no&lt;br /&gt;
       # depending on your internal DNS-servers capabilities these options might be necessary&lt;br /&gt;
       # harden-dnssec-stripped: no &lt;br /&gt;
       # module-config: &amp;quot;iterator&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;uceprotect.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;mailspike.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;sorbs.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;bl.spamcop.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;spamhaus.org&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;surbl.org&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;uribl.com&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;dnswl.org&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;.&amp;quot;&lt;br /&gt;
        forward-addr: 192.0.2.53&lt;br /&gt;
&lt;br /&gt;
Test the setup by doing lookups to:&lt;br /&gt;
* a testpoint of a DNSBL and verify that the query does not arrive at your internal server&lt;br /&gt;
* a testpoint of an arbitrary address (which should arrive at your internal server):&lt;br /&gt;
&lt;br /&gt;
 # dig any test.uribl.com.multi.uribl.com @127.0.0.1 +short # should not show up as query on 192.0.2.53&lt;br /&gt;
 127.0.0.14&lt;br /&gt;
 &amp;quot;permanent testpoint&amp;quot;&lt;br /&gt;
 # dig a proxmox.com @127.0.0.1 +short  #should show up as query on 192.0.2.53&lt;br /&gt;
 79.133.36.244&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Developer_Documentation&amp;diff=97</id>
		<title>Developer Documentation</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Developer_Documentation&amp;diff=97"/>
		<updated>2022-08-04T09:05:43Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: update links to https and buster to bullseye&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Please communicate you plans with us, before starting any development. It is important to have a common view of the problem and corresponding solution, in order to avoid duplicated work and unnecessary efforts.&lt;br /&gt;
&lt;br /&gt;
Our source code repository is read-only. To contribute code, send it as a patch (git diff) to the pmg-devel mailing list. We will review your patch and apply it (and possible corrections/additions) if the review is successful. Note that we will only include code that meets our quality criteria. &lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
This is the primary communication channel for developers to discuss new features and implementation details. If you are a developer and you want to develop additional features, this is the place to start.&lt;br /&gt;
&lt;br /&gt;
PMG Development List: https://lists.proxmox.com/cgi-bin/mailman/listinfo/pmg-devel&lt;br /&gt;
&lt;br /&gt;
Archive: https://lists.proxmox.com/pipermail/pmg-devel/&lt;br /&gt;
&lt;br /&gt;
== Access to Code Repository (git) ==&lt;br /&gt;
&lt;br /&gt;
You can find all of our project repositories at the link below.&lt;br /&gt;
&lt;br /&gt;
https://git.proxmox.com&lt;br /&gt;
&lt;br /&gt;
== Build instructions ==&lt;br /&gt;
&lt;br /&gt;
*TODO*&lt;br /&gt;
&lt;br /&gt;
== Development Package Repository ==&lt;br /&gt;
&lt;br /&gt;
Some packages required for development can only be found in the &#039;&#039;devel&#039;&#039; repository. &lt;br /&gt;
This is a cross-project repository and may be used for all Proxmox projects.&lt;br /&gt;
&lt;br /&gt;
Add the following to the &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
  deb http://download.proxmox.com/debian/devel/ bullseye main&lt;br /&gt;
&lt;br /&gt;
== Checking out a git repository ==&lt;br /&gt;
&lt;br /&gt;
To clone a repository, run &#039;git clone&#039; with the repository name prefixed with the common URL: &amp;lt;nowiki&amp;gt;git://git.proxmox.com/git/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git clone git://git.proxmox.com/git/proxmox-mailgateway.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To update an already cloned project to the current version use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git pull&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Working on the code ==&lt;br /&gt;
&lt;br /&gt;
=== Coding guidelines ===&lt;br /&gt;
&lt;br /&gt;
The codebase is mostly Perl, with JavaScript for the web-interface.&lt;br /&gt;
&lt;br /&gt;
We use the ExtJS framework for the GUI components; its API documentation can be found [https://docs.sencha.com/extjs/7.0.0/index.html here.]&lt;br /&gt;
&lt;br /&gt;
=== Using git ===&lt;br /&gt;
&lt;br /&gt;
If you are not familiar with git, it&#039;s worth having a look at this interactive tutorial:&lt;br /&gt;
https://try.github.io, and reading the brief introduction chapter from the official git documentation: https://git-scm.com/docs/gittutorial&lt;br /&gt;
to gain basic knowledge on it.&lt;br /&gt;
&lt;br /&gt;
First, configure your &#039;&#039;real&#039;&#039; name and email address for git, if not done already:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git config --global user.name &amp;quot;John Doe&amp;quot;&lt;br /&gt;
$ git config --global user.email john@example.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will be used to sign off commits as your work.&lt;br /&gt;
&lt;br /&gt;
We recommend that you start a feature branch before working on the code locally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git checkout -b my_branch master&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this, you can start working on your improvements. You can compare your changes to the current PMG master branch with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git diff master..my_branch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Commits and Commit Messages ====&lt;br /&gt;
&lt;br /&gt;
After making changes, commit them (try to make small, self-contained commits) with a sign-off line included (-s).&lt;br /&gt;
&lt;br /&gt;
* Make sure the line length of the commit&#039;s message is &#039;&#039;&#039;not longer than 70 characters&#039;&#039;&#039;. HTTPS links are an exception and should not be split.&lt;br /&gt;
* If it fixes a bug, start with that information, in the form: &amp;lt;code&amp;gt;fix #1234: summary here&amp;lt;/code&amp;gt;&lt;br /&gt;
* If it implements a feature tracked on Bugzilla, use: &amp;lt;code&amp;gt;close #1234: summary here&amp;lt;/code&amp;gt;, albeit &amp;lt;code&amp;gt;fix #1234:&amp;lt;/code&amp;gt; is commonly used and also fine.&lt;br /&gt;
* Add a tag to the beginning, if an obvious choice exists. For example, if you made a change to the user-configuration  API, a possible tag could be &amp;lt;code&amp;gt;api: user-config: summary here&amp;lt;/code&amp;gt;&lt;br /&gt;
: However, do &#039;&#039;&#039;not&#039;&#039;&#039; just paste the changed file, including path and file ending as a tag. This has no use and makes it harder to read.&lt;br /&gt;
&lt;br /&gt;
The following command will take all the changes in tracked files and commit them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git commit -s -a&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New files won&#039;t get added automatically with this command. To stage new or altered files for a commit, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git add newfile1.pm file2.pm&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can always look at what will be committed with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git diff --staged&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparing Patches ==&lt;br /&gt;
&lt;br /&gt;
{{note| We need a valid [[#Software License and Copyright|CLA]] to include your changes|reminder}}&lt;br /&gt;
&lt;br /&gt;
Since we have several projects in our git repository that use the pmg-devel mailing list,&lt;br /&gt;
we ask you to clarify which repository your patches are meant for,&lt;br /&gt;
by specifying it in the subject prefix, for example, &#039;pmg-api&#039; or &#039;pmg-gui&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: Creating the raw patch series for the &amp;lt;tt&amp;gt;pmg-api&amp;lt;/tt&amp;gt; package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# rm -rf my-patches/       # to clean left-overs&lt;br /&gt;
# git format-patch -o my-patches/ --subject-prefix=&amp;quot;PATCH pmg-api&amp;quot; master..my_branch --cover-letter&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explain in the cover letter the aim of your patches:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
edit my-patches/0000-cover-letter.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sending patches:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git send-email --to=pmg-devel@lists.proxmox.com  my-patches/00*.patch&lt;br /&gt;
# rm -rf my-patches/       # to clean left-overs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to write comments for individual patches, you can do that either in&lt;br /&gt;
the cover-letter, or in the patch&#039;s &#039;&#039;commit summary section&#039;&#039; (between the line&lt;br /&gt;
consisting of 3 consecutive dashes ending your commit message and before the&lt;br /&gt;
list of files with their change-counts).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From 12345abcde Mon Sep 12 00:00:00 2001&lt;br /&gt;
From: Git Committer &amp;lt;some email address&amp;gt;&lt;br /&gt;
Date: Fri, 7 Oct 2020 08:30:17 +0200&lt;br /&gt;
Subject: [PATCH pmg-api 1/2] Fix #1013: this and that&lt;br /&gt;
&lt;br /&gt;
Here is your commit message.&lt;br /&gt;
It explains the bugfix and ends after this line.&lt;br /&gt;
&lt;br /&gt;
Signed-off-by: Firstname Lastname &amp;lt;firstname@lastname.email&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
 ***HERE*** you can write your comments.&lt;br /&gt;
 If this is a new version of an old patch, explain your changes here&lt;br /&gt;
&lt;br /&gt;
 src/PMG/Config.pm | 2 +-&lt;br /&gt;
&lt;br /&gt;
diff --git a/src/PMG/Config.pm b/src/PMG/Config.pm&lt;br /&gt;
(...)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to send several related patches that contain changes to different repositories, you can first iterate over all involved repositories, save the patches into one directory and then do a single git send-email over all generated patches. For example, lets go to a few repos and format the most recent commit as a patch to /tmp/patchq, then send it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# cd pmg-api; git format-patch -s -o /tmp/patchq -1 &lt;br /&gt;
# cd ../pmg-gui; git format-patch -s -o /tmp/patchq -1  &lt;br /&gt;
# git send-email --compose --to=pmg-devel@lists.proxmox.com /tmp/patchq/*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using &amp;quot;start-number&amp;quot; and the likes can improve this further, but this is a good start.&lt;br /&gt;
&lt;br /&gt;
=== Versioned Patches ===&lt;br /&gt;
&lt;br /&gt;
If an updated version of your patch series is called for, it should be sent&lt;br /&gt;
as a new series, rather than as a reply to the old series.&lt;br /&gt;
Always send the entire series, with all patches showing the same version.&lt;br /&gt;
Please mark your versions in the subject prefix, with a small &#039;v&#039;, followed by&lt;br /&gt;
the version number, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git format-patch -o my-patches/ --subject-prefix=&amp;quot;PATCH v2 pmg-api&amp;quot; master..my_branch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please list all the changes to the previous versions in the &#039;&#039;commit summary&lt;br /&gt;
section&#039;&#039; as shown in the above example.&lt;br /&gt;
For patches with no changes to the previous version, you should mention that there were no&lt;br /&gt;
changes in the summary section.&lt;br /&gt;
&lt;br /&gt;
If your series has a cover letter, summarize all changes in it as well.&lt;br /&gt;
&lt;br /&gt;
=== Reviewing patches ===&lt;br /&gt;
&lt;br /&gt;
After reviewing patches which affect a subsystem you maintain, you can notify&lt;br /&gt;
committers that you have reviewed the patch and are OK with the changes, with: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Acked-by: name / email address&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convenience Settings ===&lt;br /&gt;
&lt;br /&gt;
For convenience, you can store the pmg-devel email address and the repository&#039;s&lt;br /&gt;
default subject prefixes in your repository clones&#039; configurations as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git config --local sendemail.to pmg-devel@lists.proxmox.com&lt;br /&gt;
$ git config --local format.subjectprefix &#039;PATCH pmg-gui&#039;&lt;br /&gt;
$ git config --local format.signoff true &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the commands to create and send patches become:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# git format-patch -o my-patches/ master..my_branch&lt;br /&gt;
# git send-email --compose my-patches/00*.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sending Patches ==&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;code&amp;gt;git send-email&amp;lt;/code&amp;gt; to send out patches, otherwise the indentation and formatting will get mangled and the patch cannot be applied anymore.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial ===&lt;br /&gt;
&lt;br /&gt;
See https://git-send-email.io/ for an interactive tutorial on setting up &amp;lt;code&amp;gt;git send-email&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Using Authenticated SMTP Server ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git send-email&amp;lt;/code&amp;gt; can be instructed to use a specific SMTP server for sending. The following shows an anonymized config section example:&lt;br /&gt;
&lt;br /&gt;
 [sendemail]&lt;br /&gt;
         smtpencryption = tls&lt;br /&gt;
         smtpserver = webmail.example.com&lt;br /&gt;
         smtpserverport = 587&lt;br /&gt;
         smtpuser = j.smith@example.com&lt;br /&gt;
         smtpsslcertpath =&lt;br /&gt;
         confirm = always&lt;br /&gt;
&lt;br /&gt;
Add this to your global user &amp;lt;code&amp;gt;~/.gitconfig&amp;lt;/code&amp;gt; or to the per project &amp;lt;code&amp;gt;.git/config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;git send-email&amp;lt;/code&amp;gt; will then use these settings by default and ask you once for the password when sending.&lt;br /&gt;
&lt;br /&gt;
== Bugtracker (Bugzilla) ==&lt;br /&gt;
&lt;br /&gt;
We use Bugzilla to track bugs and feature requests for our products.&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.proxmox.com&lt;br /&gt;
&lt;br /&gt;
== Software License and Copyright ==&lt;br /&gt;
&lt;br /&gt;
We only include code licensed under GNU Affero General Public License, version 3 https://www.gnu.org/licenses/agpl-3.0.html.&lt;br /&gt;
&lt;br /&gt;
Additionally, we ask contributors to send us a contributor license agreement form by email. This agreement establishes a relationship between us and the contributor, gives details on what it means when the contributor grants permission for their work to be included in a project, and enables us to better maintain these projects.&lt;br /&gt;
&lt;br /&gt;
With the contributor agreement chosen by Proxmox, the [http://www.harmonyagreements.org Harmony CLA], the contributor gives Proxmox a license to use their contributions. The contributor continues to own the copyright in the contribution, with full rights to re-use, re-distribute, and continue modifying the contributed code, allowing them to also share that contribution with other projects.&lt;br /&gt;
&lt;br /&gt;
We&#039;ve tried to keep the agreement as simple and comprehensible as possible. It comes in two flavors:&lt;br /&gt;
* one for [https://www.proxmox.com/downloads/item/proxmox-individual-contributor-license-agreement individual contributors]&lt;br /&gt;
* and one for [https://www.proxmox.com/downloads/item/proxmox-entity-contributor-assignment-agreement entities contributors] (companies, foundations, or other organizations).&lt;br /&gt;
&lt;br /&gt;
If you are making a contribution that is not your own work (for example, a patch or library written by someone else), please contact office@proxmox.com for guidance on whether any additional steps are needed.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://git-scm.com/documentation Git Documentation]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=96</id>
		<title>Quarantine Web Interface Via Nginx Proxy</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=96"/>
		<updated>2022-07-14T12:25:15Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Creating a site to proxy requests for quarantine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly.&lt;br /&gt;
If a mail is detected as spam users themselves can decide whether they want to keep or delete it in the user quarantine interface.&lt;br /&gt;
(for dangerous content, as mail containing viruses, or potentially dangerous attachments, the administrator needs to decide whether&lt;br /&gt;
to pass the mail on or delete it).&lt;br /&gt;
&lt;br /&gt;
In certain environments it is desired to provide the user quarantine interface at a specific host and port, &lt;br /&gt;
e.g. in order to only allow access to the interface from outside on port 443, or to provide a different and &lt;br /&gt;
trusted certificate to your users.&lt;br /&gt;
&lt;br /&gt;
The following Howto describes a small nginx configuration, which only exposes the paths necessary for user quarantine interface access,&lt;br /&gt;
while preventing access to other parts of the API.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this provides mostly cosmetic protection, since all paths in the Proxmox Mail Gateway API, apart from the login path&lt;br /&gt;
are only available to authenticated users anyways. The unprotected login path needs to be forwarded for the quarantine access as well.&lt;br /&gt;
&lt;br /&gt;
For creating a general reverse proxy for the complete web interface refer to the [https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy Howto in the Proxmox VE wiki].&lt;br /&gt;
&lt;br /&gt;
== Installing nginx ==&lt;br /&gt;
&lt;br /&gt;
The Howto creates a configuration suitable for nginx. You can install nginx on your Proxmox Mail Gateway using &amp;lt;nowiki&amp;gt;apt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 apt install nginx&lt;br /&gt;
&lt;br /&gt;
== Creating a site to proxy requests for quarantine  ==&lt;br /&gt;
&lt;br /&gt;
The following configuration is a minimal working nginx-site to proxy all requests necessary for accessing the quarantine interface for users.&lt;br /&gt;
You should adapt it to your site&#039;s requirements. This includes:&lt;br /&gt;
* changing the path to the used certificates&lt;br /&gt;
* setting the proper &amp;lt;nowiki&amp;gt;server_name&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* adapting the ssl-configuration parameters to current best practices&lt;br /&gt;
* if the proxy server is running on another host adapting the url for the &amp;lt;nowiki&amp;gt;proxy_pass&amp;lt;/nowiki&amp;gt; directives&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the site running write the config to &amp;lt;nowiki&amp;gt;/etc/nginx/sites-available/pmg-quarantine.conf&amp;lt;/nowiki&amp;gt; and symlink it to &amp;lt;nowiki&amp;gt;/etc/nginx/sites-enabled&amp;lt;/nowiki&amp;gt;:&lt;br /&gt;
 ln -rs /etc/nginx/sites-available/pmg-quarantine.conf /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443;&lt;br /&gt;
    server_name _;&lt;br /&gt;
    ssl on;&lt;br /&gt;
    ssl_certificate /etc/pmg/pmg-api.pem;&lt;br /&gt;
    ssl_certificate_key /etc/pmg/pmg-api.pem;&lt;br /&gt;
    proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
    proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;; &lt;br /&gt;
    proxy_set_header PVEClientIP $remote_addr; &lt;br /&gt;
    proxy_buffering off;&lt;br /&gt;
    client_max_body_size 0;&lt;br /&gt;
    proxy_connect_timeout  3600s;&lt;br /&gt;
    proxy_read_timeout  3600s;&lt;br /&gt;
    proxy_send_timeout  3600s;&lt;br /&gt;
    send_timeout  3600s;&lt;br /&gt;
    &lt;br /&gt;
    # proxy requests for static components&lt;br /&gt;
    location ~ /proxmoxlib.js$|/favicon.ico$|/pve2/|/fontawesome/|/framework7/|/pwt/ {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
    location /quarantine {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location /api2 {&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/(access/ticket$|version$) {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/nodes/.+/subscription$ {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/quarantine {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: if you&#039;re using the integrated ACME implementation with the standalone plugin you need to remove the server on port 80 above, since the ACME implementation needs to bind to it during certificate renewal&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=95</id>
		<title>Install Avast</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=95"/>
		<updated>2022-06-27T11:00:21Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: update date of last command verification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway ships and uses the open source [https://www.clamav.net/ ClamAV] antivirus engine in its default installation.&lt;br /&gt;
&lt;br /&gt;
Certain environments have the need for a better virus detection rate than the one achieved by ClamAV.&lt;br /&gt;
&lt;br /&gt;
For these setups Proxmox Mail Gateway offers an integration with the [https://www.avast.com/en-us/business/products/antivirus-for-linux Avast Antivirus for Linux].&lt;br /&gt;
This HOWTO follows the technical documentation from Avast - https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf&lt;br /&gt;
&lt;br /&gt;
Avast Antivirus for Linux is commercial software and you will need to purchase a license in order to use it.&lt;br /&gt;
&lt;br /&gt;
The following facts are why it can be integrated with Proxmox Mail Gateway as an alternative to ClamAV:&lt;br /&gt;
&lt;br /&gt;
* The licensing is based on the number of installations instead of other licensing schemes such as the number of processed mails or mailboxes.&lt;br /&gt;
* The software runs daemonized and thus reads and caches the AV definitions once upon startup instead of each time a file is scanned&lt;br /&gt;
&lt;br /&gt;
The following HOWTO provides the necessary steps to install and configure Avast within a Proxmox Mail Gateway installation.&lt;br /&gt;
&lt;br /&gt;
== Installing Avast Antivirus for Linux ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway is based on Debian GNU/Linux - thus you need to follow the installation instruction for Debian systems.&lt;br /&gt;
&lt;br /&gt;
To configure the Avast repository and install the software:&lt;br /&gt;
&lt;br /&gt;
# Create the appropriate [https://manpages.debian.org/apt/sources.list.5.en.html sources.list] entry:&lt;br /&gt;
#:&amp;lt;code&amp;gt;echo &amp;quot;deb https://repo.avcdn.net/linux-av/deb debian-bullseye release&amp;quot; &amp;gt; /etc/apt/sources.list.d/avast.list&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify the signing key for the repository from Avast:&lt;br /&gt;
#* Get the key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;wget https://repo.avcdn.net/linux-av/doc/avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Read the checksum&lt;br /&gt;
#*:&amp;lt;code&amp;gt;sha512sum avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* The result should be&lt;br /&gt;
#*:&amp;lt;code&amp;gt;7fca6e2a8984931d46a8ff13cd086a934ca126068c074c86a13a30aa2f909663b9e5ae8529a02632c7735d2823bfc71b0e0987a63f8c4dd11130b2529e956f22  avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Add the GPG key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;cp avast-gpg-key.asc /etc/apt/trusted.gpg.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the apt package information and install the software&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt install avast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Registering license ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf instructions provided by Avast] to activate your purchased license.&lt;br /&gt;
Currently (27.06.2022) you&#039;ll get an activation code with your purchase and need to obtain the license file with the &amp;lt;code&amp;gt;avastlic&amp;lt;/code&amp;gt; utility:&lt;br /&gt;
 avastlic -f /etc/avast/license.avastlic -c &amp;lt;YOUR-ACTIVATION-CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After enabling your license you need to restart the &amp;lt;code&amp;gt;avast.service&amp;lt;/code&amp;gt;&lt;br /&gt;
  systemctl restart avast.service&lt;br /&gt;
&lt;br /&gt;
== Integration with Proxmox Mail Gateway ==&lt;br /&gt;
&lt;br /&gt;
Enabling the Avast scanner in Proxmox Mail Gateway is achieved by editing the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_configuration_file Promox Mail Gateway&#039;s configuration file]&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; and adding the line &amp;lt;code&amp;gt;avast 1&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
 section: admin&lt;br /&gt;
 	avast 1&lt;br /&gt;
 	email admin@pmg.example&lt;br /&gt;
&lt;br /&gt;
Finally you need to restart the &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; service, or reboot your Promox Mail Gateway:&lt;br /&gt;
 systemctl restart pmg-smtp-filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_6.x_to_7.0&amp;diff=94</id>
		<title>Upgrade from 6.x to 7.0</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_6.x_to_7.0&amp;diff=94"/>
		<updated>2022-05-24T09:15:15Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Potential issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 7.x is based on the new major version of Debian (Bullseye). Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; required, before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Bullseye.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 6.x system to Proxmox Mail Gateway 7.0:&lt;br /&gt;
&lt;br /&gt;
* A new installation (restoring the configuration and database from the backup)&lt;br /&gt;
* An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases, emptying the browser cache and reloading the GUI is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian_container container on top of Debian Bullseye]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_on_debian On top of Debian Bullseye]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_install_iso ISO image]&lt;br /&gt;
* Restore the backup which you made before the upgrade.&lt;br /&gt;
* Change the IP address and hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** On the master, remove all nodes from the cluster&lt;br /&gt;
** Upgrade the master&lt;br /&gt;
** Set the nodes up fresh, then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-Place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
The following actions need to be carried out from the command line.&lt;br /&gt;
&lt;br /&gt;
Perform the actions via console or SSH. If you use SSH you should use a terminal multiplexer (for example, tmux or screen) to ensure the upgrade can continue even if the SSH connection gets interrupted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not carry out the upgrade via the web-interface (GUI) console, as that will get interrupted during the upgrade!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 6.4 first.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*::apt update&lt;br /&gt;
*::apt dist-upgrade&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
*: You can check the web-interface (reload) at the top, or use &amp;lt;code&amp;gt;pmgversion&amp;lt;/code&amp;gt;. Both must show a version with 6.4-4 (or newer), for example something like &amp;lt;code&amp;gt;pmg-api/6.4-4/...&amp;lt;/code&amp;gt; for the CLI command.&lt;br /&gt;
*: If you still see an older version, you should ensure that you have valid [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories package repositories] configured.&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway.&lt;br /&gt;
*: You can either create and download one from the web-interface, store it on your Proxmox Backup Server or create it from the CLI with &amp;lt;code&amp;gt;pmgbackup backup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* At least 4 GiB free disk space on root mount point.&lt;br /&gt;
* Check [[Upgrade_from_6.x_to_7.0#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are carried out using APT. &#039;&#039;&#039;Familiarity with APT is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please first ensure that your Mail Gateway 6 system is up-to-date and that a valid backup has been created before starting the upgrade process.&lt;br /&gt;
If you need to adapt the configuration, do this now. In case you have a cluster, wait for all config-changes to be synced to all nodes before continuing.&lt;br /&gt;
&lt;br /&gt;
=== For clusters ===&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*:: systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
*:: systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The Mail Gateway service will be provided by the other nodes, which aren&#039;t currently being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Bullseye - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
Update all Debian repository entries to Bullseye.&lt;br /&gt;
&lt;br /&gt;
 sed -i &#039;s/buster\/updates/bullseye-security/g;s/buster/bullseye/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Note that for Bullseye, Debian changed its security update repository from &amp;lt;code&amp;gt;deb http://security.debian.org buster/updates main&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;deb http://security.debian.org bullseye-security main&amp;lt;/code&amp;gt; for more consistency.&lt;br /&gt;
The above command accounts for this change already.&lt;br /&gt;
&lt;br /&gt;
Update the enterprise repository to Bullseye:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg bullseye pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also update any extra files that you added to &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; to Bullseye accordingly.&lt;br /&gt;
 &lt;br /&gt;
=== Stop and mask services before upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade:&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the system ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot yet.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade the PostgreSQL database ===&lt;br /&gt;
&lt;br /&gt;
* Before upgrading the PostgreSQL main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_dropcluster --stop 13 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Upgrade the PostgreSQL main cluster from 11 to 13, using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** This step will need some &#039;&#039;&#039;time&#039;&#039;&#039; and enough &#039;&#039;&#039;free diskspace&#039;&#039;&#039; as it will create another database containing your rules, statistics, and quarantine information.&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them, to avoid problems.&lt;br /&gt;
:&amp;lt;pre&amp;gt;pg_upgradecluster -v 13 11 main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Reboot and then check the journal to ensure that everything is running correctly again.&lt;br /&gt;
:&amp;lt;pre&amp;gt;reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reconnect to the node after it successfully rebooted&lt;br /&gt;
&lt;br /&gt;
* You can remove the old PostgreSQL version and its data now, if all is working as expected:&lt;br /&gt;
:&amp;lt;pre&amp;gt;apt purge postgresql-11 postgresql-client-11&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node, as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Known issues and deprecations =&lt;br /&gt;
&lt;br /&gt;
* New default bind address for pmgproxy, unifying the default behavior with Proxmox Backup Server and Proxmox VE&lt;br /&gt;
** In making the LISTEN_IP configurable, the daemon now binds to both wildcard addresses (IPv4 &amp;lt;code&amp;gt;0.0.0.0:8006&amp;lt;/code&amp;gt; and IPv6 &amp;lt;code&amp;gt;[::]:8006&amp;lt;/code&amp;gt;) by default.&lt;br /&gt;
*: Should you wish to prevent it from listening on IPv6, simply configure the IPv4 wildcard as LISTEN_IP in &amp;lt;code&amp;gt;/etc/default/pmgproxy&amp;lt;/code&amp;gt;:&lt;br /&gt;
*: &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Additionally, the logged IP address format changed for IPv4 in pmgproxy&#039;s access log (&amp;lt;code&amp;gt;/var/log/pmgproxy/pmgproxy.log&amp;lt;/code&amp;gt;). They are now logged as IPv4-mapped IPv6 addresses, so instead of:&lt;br /&gt;
*: &amp;lt;code&amp;gt;192.168.16.68 - root@pam [10/04/2021:12:35:11 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*: the line now looks like:&lt;br /&gt;
*: &amp;lt;code&amp;gt;::ffff:192.168.16.68 - root@pam [10/04/2021:12:35:11 +0200] &amp;quot;GET /api2/json/config/ruledb/digest HTTP/1.1&amp;quot; 200 51&amp;lt;/code&amp;gt;&lt;br /&gt;
*:If you want to restore the old logging format, also set &amp;lt;code&amp;gt;LISTEN_IP=&amp;quot;0.0.0.0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The ClamAV SafeBrowsing feature has [https://blog.clamav.net/2021/04/are-you-still-attempting-to-download.html been deprecated upstream some time ago]&lt;br /&gt;
** The config option in &amp;lt;code&amp;gt;pmg.conf&amp;lt;/code&amp;gt; is now considered deprecated and will be dropped with PMG 8.0.&lt;br /&gt;
** The configuration template &amp;lt;code&amp;gt;freshclam.conf.in&amp;lt;/code&amp;gt; has the relevant sections removed (rendering the configuration option useless).&lt;br /&gt;
** If you&#039;ve set the option (&amp;lt;code&amp;gt;grep safebrowsing /etc/pmg/pmg.conf&amp;lt;/code&amp;gt; produces output) - please remove it.&lt;br /&gt;
&lt;br /&gt;
= Potential issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
Thus, ensure to read the [https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.en.html upgrade specific issues for Bullseye].&lt;br /&gt;
&lt;br /&gt;
== Installations as Container on Proxmox VE ==&lt;br /&gt;
&lt;br /&gt;
The newer version of &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; inside the container requires that the &amp;lt;code&amp;gt;nesting&amp;lt;/code&amp;gt; feature has to be enabled for the container.&lt;br /&gt;
This is needed in order for many essential services to be able to run.&lt;br /&gt;
Keep in mind that this makes running privileged containers an even greater risk, thus it is recommended to only use unprivileged containers.&lt;br /&gt;
&lt;br /&gt;
== non-usr-merged layouts ==&lt;br /&gt;
Most Proxmox Mail Gateway installations still have /bin and /usr/bin as separate directories - this is deprecated as of Debian Bullseye/11 and will become unsupported in Debian Bookworm/12.&lt;br /&gt;
&lt;br /&gt;
See [https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.en.html#deprecated-components Deprecated Components] for migration instructions.&lt;br /&gt;
&lt;br /&gt;
Usually creating a backup of the system and installing the &amp;lt;code&amp;gt;usrmerge&amp;lt;/code&amp;gt; package is all that is needed.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
[https://www.debian.org/releases/bullseye/amd64/release-notes/ Release Notes for Debian 11.0 (bullseye), 64-bit PC]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=93</id>
		<title>Install Avast</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=93"/>
		<updated>2022-04-20T11:26:10Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway ships and uses the open source [https://www.clamav.net/ ClamAV] antivirus engine in its default installation.&lt;br /&gt;
&lt;br /&gt;
Certain environments have the need for a better virus detection rate than the one achieved by ClamAV.&lt;br /&gt;
&lt;br /&gt;
For these setups Proxmox Mail Gateway offers an integration with the [https://www.avast.com/en-us/business/products/antivirus-for-linux Avast Antivirus for Linux].&lt;br /&gt;
This HOWTO follows the technical documentation from Avast - https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf&lt;br /&gt;
&lt;br /&gt;
Avast Antivirus for Linux is commercial software and you will need to purchase a license in order to use it.&lt;br /&gt;
&lt;br /&gt;
The following facts are why it can be integrated with Proxmox Mail Gateway as an alternative to ClamAV:&lt;br /&gt;
&lt;br /&gt;
* The licensing is based on the number of installations instead of other licensing schemes such as the number of processed mails or mailboxes.&lt;br /&gt;
* The software runs daemonized and thus reads and caches the AV definitions once upon startup instead of each time a file is scanned&lt;br /&gt;
&lt;br /&gt;
The following HOWTO provides the necessary steps to install and configure Avast within a Proxmox Mail Gateway installation.&lt;br /&gt;
&lt;br /&gt;
== Installing Avast Antivirus for Linux ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway is based on Debian GNU/Linux - thus you need to follow the installation instruction for Debian systems.&lt;br /&gt;
&lt;br /&gt;
To configure the Avast repository and install the software:&lt;br /&gt;
&lt;br /&gt;
# Create the appropriate [https://manpages.debian.org/apt/sources.list.5.en.html sources.list] entry:&lt;br /&gt;
#:&amp;lt;code&amp;gt;echo &amp;quot;deb https://repo.avcdn.net/linux-av/deb debian-bullseye release&amp;quot; &amp;gt; /etc/apt/sources.list.d/avast.list&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify the signing key for the repository from Avast:&lt;br /&gt;
#* Get the key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;wget https://repo.avcdn.net/linux-av/doc/avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Read the checksum&lt;br /&gt;
#*:&amp;lt;code&amp;gt;sha512sum avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* The result should be&lt;br /&gt;
#*:&amp;lt;code&amp;gt;7fca6e2a8984931d46a8ff13cd086a934ca126068c074c86a13a30aa2f909663b9e5ae8529a02632c7735d2823bfc71b0e0987a63f8c4dd11130b2529e956f22  avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Add the GPG key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;cp avast-gpg-key.asc /etc/apt/trusted.gpg.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the apt package information and install the software&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt install avast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Registering license ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf instructions provided by Avast] to activate your purchased license.&lt;br /&gt;
Currently (02.07.2021) you&#039;ll get an activation code with your purchase and need to obtain the license file with the &amp;lt;code&amp;gt;avastlic&amp;lt;/code&amp;gt; utility:&lt;br /&gt;
 avastlic -f /etc/avast/license.avastlic -c &amp;lt;YOUR-ACTIVATION-CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After enabling your license you need to restart the &amp;lt;code&amp;gt;avast.service&amp;lt;/code&amp;gt;&lt;br /&gt;
  systemctl restart avast.service&lt;br /&gt;
&lt;br /&gt;
== Integration with Proxmox Mail Gateway ==&lt;br /&gt;
&lt;br /&gt;
Enabling the Avast scanner in Proxmox Mail Gateway is achieved by editing the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_configuration_file Promox Mail Gateway&#039;s configuration file]&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; and adding the line &amp;lt;code&amp;gt;avast 1&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
 section: admin&lt;br /&gt;
 	avast 1&lt;br /&gt;
 	email admin@pmg.example&lt;br /&gt;
&lt;br /&gt;
Finally you need to restart the &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; service, or reboot your Promox Mail Gateway:&lt;br /&gt;
 systemctl restart pmg-smtp-filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=92</id>
		<title>Install Avast</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=92"/>
		<updated>2022-04-15T14:59:36Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: update to bullseye instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway ships and uses the open source [https://www.clamav.net/ ClamAV] antivirus engine in its default installation.&lt;br /&gt;
&lt;br /&gt;
Certain environments have the need for a better virus detection rate than the one achieved by ClamAV.&lt;br /&gt;
&lt;br /&gt;
For these setups Proxmox Mail Gateway offers an integration with the [https://www.avast.com/en-us/business/products/antivirus-for-linux Avast Antivirus for Linux].&lt;br /&gt;
This HOWTO follows the technical documentation from Avast - https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf&lt;br /&gt;
&lt;br /&gt;
Avast Antivirus for Linux is commercial software and you will need to purchase a license in order to use it.&lt;br /&gt;
&lt;br /&gt;
The following facts are why it can be integrated with Proxmox Mail Gateway as an alternative to ClamAV:&lt;br /&gt;
&lt;br /&gt;
* The licensing is based on the number of installations instead of other licensing schemes such as the number of processed mails or mailboxes.&lt;br /&gt;
* The software runs daemonized and thus reads and caches the AV definitions once upon startup instead of each time a file is scanned&lt;br /&gt;
&lt;br /&gt;
The following HOWTO provides the necessary steps to install and configure Avast within a Proxmox Mail Gateway installation.&lt;br /&gt;
&lt;br /&gt;
== Installing Avast Antivirus for Linux ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway is based on Debian GNU/Linux - thus you need to follow the installation instruction for Debian systems.&lt;br /&gt;
&lt;br /&gt;
To configure the Avast repository and install the software:&lt;br /&gt;
&lt;br /&gt;
# Create the appropriate [https://manpages.debian.org/apt/sources.list.5.en.html sources.list] entry:&lt;br /&gt;
#:&amp;lt;code&amp;gt;echo &amp;quot;deb http://deb.avast.com/lin/repo debian-buster release&amp;quot; &amp;gt; /etc/apt/sources.list.d/avast.list&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify the signing key for the repository from Avast:&lt;br /&gt;
#* Get the key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;wget https://repo.avcdn.net/linux-av/doc/avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Read the checksum&lt;br /&gt;
#*:&amp;lt;code&amp;gt;sha512sum avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* The result should be&lt;br /&gt;
#*:&amp;lt;code&amp;gt;7fca6e2a8984931d46a8ff13cd086a934ca126068c074c86a13a30aa2f909663b9e5ae8529a02632c7735d2823bfc71b0e0987a63f8c4dd11130b2529e956f22  avast-gpg-key.asc&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Add the GPG key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;cp avast-gpg-key.asc /etc/apt/trusted.gpg.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the apt package information and install the software&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt install avast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Registering license ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://repo.avcdn.net/linux-av/doc/avast-techdoc.pdf instructions provided by Avast] to activate your purchased license.&lt;br /&gt;
Currently (02.07.2021) you&#039;ll get an activation code with your purchase and need to obtain the license file with the &amp;lt;code&amp;gt;avastlic&amp;lt;/code&amp;gt; utility:&lt;br /&gt;
 avastlic -f /etc/avast/license.avastlic -c &amp;lt;YOUR-ACTIVATION-CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After enabling your license you need to restart the &amp;lt;code&amp;gt;avast.service&amp;lt;/code&amp;gt;&lt;br /&gt;
  systemctl restart avast.service&lt;br /&gt;
&lt;br /&gt;
== Integration with Proxmox Mail Gateway ==&lt;br /&gt;
&lt;br /&gt;
Enabling the Avast scanner in Proxmox Mail Gateway is achieved by editing the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_configuration_file Promox Mail Gateway&#039;s configuration file]&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; and adding the line &amp;lt;code&amp;gt;avast 1&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
 section: admin&lt;br /&gt;
 	avast 1&lt;br /&gt;
 	email admin@pmg.example&lt;br /&gt;
&lt;br /&gt;
Finally you need to restart the &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; service, or reboot your Promox Mail Gateway:&lt;br /&gt;
 systemctl restart pmg-smtp-filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=88</id>
		<title>Install Avast</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=88"/>
		<updated>2021-11-26T08:44:27Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Registering license */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway ships and uses the open source [https://www.clamav.net/ ClamAV] antivirus engine in its default installation.&lt;br /&gt;
&lt;br /&gt;
Certain environments have the need for a better virus detection rate than the one achieved by ClamAV.&lt;br /&gt;
&lt;br /&gt;
For these setups Proxmox Mail Gateway offers an integration with the [https://www.avast.com/en-us/business/products/antivirus-for-linux Avast Antivirus for Linux].&lt;br /&gt;
&lt;br /&gt;
Avast Antivirus for Linux is commercial software and you will need to purchase a license in order to use it.&lt;br /&gt;
&lt;br /&gt;
The following facts are why it can be integrated with Proxmox Mail Gateway as an alternative to ClamAV:&lt;br /&gt;
&lt;br /&gt;
* The licensing is based on the number of installations instead of other licensing schemes such as the number of processed mails or mailboxes.&lt;br /&gt;
* The software runs daemonized and thus reads and caches the AV definitions once upon startup instead of each time a file is scanned&lt;br /&gt;
&lt;br /&gt;
The following HOWTO provides the necessary steps to install and configure Avast within a Proxmox Mail Gateway installation.&lt;br /&gt;
&lt;br /&gt;
== Installing Avast Antivirus for Linux ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway is based on Debian GNU/Linux - thus you need to follow the installation instruction for Debian systems.&lt;br /&gt;
&lt;br /&gt;
To configure the Avast repository and install the software:&lt;br /&gt;
&lt;br /&gt;
# Create the appropriate [https://manpages.debian.org/apt/sources.list.5.en.html sources.list] entry:&lt;br /&gt;
#:&amp;lt;code&amp;gt;echo &amp;quot;deb http://deb.avast.com/lin/repo debian-buster release&amp;quot; &amp;gt; /etc/apt/sources.list.d/avast.list&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify the signing key for the repository from Avast:&lt;br /&gt;
#* Get the key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;wget https://files.avast.com/files/resellers/linux/avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Read the checksum&lt;br /&gt;
#*:&amp;lt;code&amp;gt;sha512sum avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
#* The result should be&lt;br /&gt;
#*:&amp;lt;code&amp;gt;d9bb45d67664ad86f8d91a8f98657554b0550a8e467a5d6a3132de5d214b072470bf793ced9e3f13f774b5bfd061ce0ce7b192bf450bb68fc988072af17fb229  avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Add the GPG key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;apt-key add avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the apt package information and install the software&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt install avast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Registering license ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://deb.avast.com/lin/doc/techdoc.pdf instructions provided by Avast] to activate your purchased license.&lt;br /&gt;
Currently (02.07.2021) you&#039;ll get an activation code with your purchase and need to obtain the license file with the &amp;lt;code&amp;gt;avastlic&amp;lt;/code&amp;gt; utility:&lt;br /&gt;
 avastlic -f /etc/avast/license.avastlic -c &amp;lt;YOUR-ACTIVATION-CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After enabling your license you need to restart the &amp;lt;code&amp;gt;avast.service&amp;lt;/code&amp;gt;&lt;br /&gt;
  systemctl restart avast.service&lt;br /&gt;
&lt;br /&gt;
== Integration with Proxmox Mail Gateway ==&lt;br /&gt;
&lt;br /&gt;
Enabling the Avast scanner in Proxmox Mail Gateway is achieved by editing the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_configuration_file Promox Mail Gateway&#039;s configuration file]&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; and adding the line &amp;lt;code&amp;gt;avast 1&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
 section: admin&lt;br /&gt;
 	avast 1&lt;br /&gt;
 	email admin@pmg.example&lt;br /&gt;
&lt;br /&gt;
Finally you need to restart the &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; service, or reboot your Promox Mail Gateway:&lt;br /&gt;
 systemctl restart pmg-smtp-filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=75</id>
		<title>Install Avast</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Install_Avast&amp;diff=75"/>
		<updated>2021-07-02T07:57:44Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Registering license */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway ships and uses the open source [https://www.clamav.net/ ClamAV] antivirus engine in its default installation.&lt;br /&gt;
&lt;br /&gt;
Certain environments have the need for a better virus detection rate than the one achieved by ClamAV.&lt;br /&gt;
&lt;br /&gt;
For these setups Proxmox Mail Gateway offers an integration with the [https://www.avast.com/en-us/business/products/antivirus-for-linux Avast Antivirus for Linux].&lt;br /&gt;
&lt;br /&gt;
Avast Antivirus for Linux is commercial software and you will need to purchase a license in order to use it.&lt;br /&gt;
&lt;br /&gt;
The following facts are why it can be integrated with Proxmox Mail Gateway as an alternative to ClamAV:&lt;br /&gt;
&lt;br /&gt;
* The licensing is based on the number of installations instead of other licensing schemes such as the number of processed mails or mailboxes.&lt;br /&gt;
* The software runs daemonized and thus reads and caches the AV definitions once upon startup instead of each time a file is scanned&lt;br /&gt;
&lt;br /&gt;
The following HOWTO provides the necessary steps to install and configure Avast within a Proxmox Mail Gateway installation.&lt;br /&gt;
&lt;br /&gt;
== Installing Avast Antivirus for Linux ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway is based on Debian GNU/Linux - thus you need to follow the installation instruction for Debian systems.&lt;br /&gt;
&lt;br /&gt;
To configure the Avast repository and install the software:&lt;br /&gt;
&lt;br /&gt;
# Create the appropriate [https://manpages.debian.org/apt/sources.list.5.en.html sources.list] entry:&lt;br /&gt;
#:&amp;lt;code&amp;gt;echo &amp;quot;deb http://deb.avast.com/lin/repo debian-buster release&amp;quot; &amp;gt; /etc/apt/sources.list.d/avast.list&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify the signing key for the repository from Avast:&lt;br /&gt;
#* Get the key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;wget https://files.avast.com/files/resellers/linux/avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Read the checksum&lt;br /&gt;
#*:&amp;lt;code&amp;gt;sha512sum avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
#* The result should be&lt;br /&gt;
#*:&amp;lt;code&amp;gt;d9bb45d67664ad86f8d91a8f98657554b0550a8e467a5d6a3132de5d214b072470bf793ced9e3f13f774b5bfd061ce0ce7b192bf450bb68fc988072af17fb229  avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Add the GPG key&lt;br /&gt;
#*:&amp;lt;code&amp;gt;apt-key add avast.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the apt package information and install the software&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;apt install avast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Registering license ==&lt;br /&gt;
&lt;br /&gt;
Follow the [https://deb.avast.com/lin/doc/techdoc.pdf instructions provided by Avast] to activate your purchased license.&lt;br /&gt;
Currently (02.07.2021) you&#039;ll get an activation code with your purchase and need to obtain the license file with the &amp;lt;code&amp;gt;avastlic&amp;lt;/code&amp;gt; utility:&lt;br /&gt;
 avastlic -f /etc/avast/license.avast -c &amp;lt;YOUR-ACTIVATION-CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After enabling your license you need to restart the &amp;lt;code&amp;gt;avast.service&amp;lt;/code&amp;gt;&lt;br /&gt;
  systemctl restart avast.service&lt;br /&gt;
&lt;br /&gt;
== Integration with Proxmox Mail Gateway ==&lt;br /&gt;
&lt;br /&gt;
Enabling the Avast scanner in Proxmox Mail Gateway is achieved by editing the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_configuration_file Promox Mail Gateway&#039;s configuration file]&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/pmg/pmg.conf&amp;lt;/code&amp;gt; and adding the line &amp;lt;code&amp;gt;avast 1&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
 section: admin&lt;br /&gt;
 	avast 1&lt;br /&gt;
 	email admin@pmg.example&lt;br /&gt;
&lt;br /&gt;
Finally you need to restart the &amp;lt;code&amp;gt;pmg-smtp-filter&amp;lt;/code&amp;gt; service, or reboot your Promox Mail Gateway:&lt;br /&gt;
 systemctl restart pmg-smtp-filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=73</id>
		<title>Upgrade from 5.x to 6.0</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=73"/>
		<updated>2021-05-19T13:10:17Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* For Clusters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 6.x is based on a new major version of Debian. Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; needed before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Buster.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 5.x system to Proxmox Mail Gateway 6.x:&lt;br /&gt;
&lt;br /&gt;
*A new installation (and restoring the configuration and database from the backup)&lt;br /&gt;
*An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases emptying the browser cache and reloading the GUI page is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_as_linux_container_appliance container on top of Debian Buster]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_on_debian On top of Debian Buster]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_using_the_proxmox_mail_gateway_installation_cd_rom ISO image]&lt;br /&gt;
* Restore the backup you have made before the upgrade.&lt;br /&gt;
* Change the IP address and the hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** setup the slaves again&lt;br /&gt;
** then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 5.2.&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway, either create and download it from the Webinterface, or do so on the CLI:&lt;br /&gt;
 pmgbackup backup&lt;br /&gt;
&lt;br /&gt;
* At least 1GB free disk space at root mount point.&lt;br /&gt;
* Check [[Upgrade_from_5.x_to_6.0#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are done with apt. &#039;&#039;&#039;Familiarity with apt is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please ensure first that your Mail Gateway 5 system is up-to-date before starting the upgrade process.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Buster - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
 sed -i &#039;s/stretch/buster/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also edit all files in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; accordingly. For a Installation from the ISO&lt;br /&gt;
with the enterprise repository the following command will work:&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg buster pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
=== Stop and Mask Services Before Upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
 systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade&lt;br /&gt;
 systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== For Clusters ===&lt;br /&gt;
&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
 systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
 systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The mail gateway service is provided by the other nodes, currently not being upgraded.&lt;br /&gt;
* Certain operations (for example config changes) will only work once all nodes have been upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade The System ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot yet.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade postgres Database ===&lt;br /&gt;
&lt;br /&gt;
* Before you upgrade the postgres main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
 pg_dropcluster --stop 11 main&lt;br /&gt;
* Upgrade the postgres main cluster from 9.6 to 11 by using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them to avoid problems.&lt;br /&gt;
 pg_upgradecluster -v 11 9.6 main&lt;br /&gt;
* If you want to do an in-place upgrade (using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt;), you need to &amp;lt;code&amp;gt;REINDEX&amp;lt;/code&amp;gt; all databases due to an incompatibility in glibc:&lt;br /&gt;
** https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html&lt;br /&gt;
** https://lists.debian.org/debian-glibc/2019/03/msg00030.html&lt;br /&gt;
** https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927129&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
 systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&lt;br /&gt;
* Reboot and control the journal to ensure that everything runs correctly.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
* Remove the old postgres version and its data:&lt;br /&gt;
 apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
So ensure to read the [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html Upgrade specific issues for buster]&lt;br /&gt;
&lt;br /&gt;
Especially the [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#openssl-defaults OpenSSL default version and security level raised] and [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#su-environment-variables Semantics for using environment variables for su changed]&lt;br /&gt;
&lt;br /&gt;
== Postgres And Other Template Modifications ==&lt;br /&gt;
If you&#039;ve modified the configuration template for postgresql (&amp;lt;code&amp;gt;/var/lib/pmg/templates/postgresql.conf&amp;lt;/code&amp;gt;), make sure to compare and update your copy in &amp;lt;code&amp;gt;/etc/pmg/templates/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also compare all other templates you&#039;ve overriden for new changes through the packages.&lt;br /&gt;
&lt;br /&gt;
== Service Failure Caused By Apparmor Featureset Missmatch ==&lt;br /&gt;
Debian Buster installs apparmor, if you still have the Debian stock kernel installed (&amp;lt;code&amp;gt;linux-image-4.19.0-5-amd64&amp;lt;/code&amp;gt; recommends apparmor), due to a mismatch between the apparmor featureset in the stock kernel and the pve-kernel (which Proxmox Mailgateway uses) certain important services (e.g. &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt;) do not start. Currently you can mitigate the issue in two ways:&lt;br /&gt;
* preferred: uninstall &amp;lt;code&amp;gt;apparmor&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;apt remove apparmor&amp;lt;/code&amp;gt;&lt;br /&gt;
* disable feature-pinning in apparmor by commenting out or deleting the line &amp;lt;code&amp;gt;features-file=/usr/share/apparmor-features/features&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/apparmor/parser.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotation (rsyslog) ==&lt;br /&gt;
If you&#039;ve modified &amp;lt;code&amp;gt;/etc/logrotate.d/rsyslog&amp;lt;/code&amp;gt; make sure to compare the file upon upgrade - the &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script changed. Without the new script logrotation does not work which also breaks the tracking center. The &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script needs to be:&lt;br /&gt;
 /usr/lib/rsyslog/rsyslog-rotate&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
*[https://www.debian.org/releases/buster/amd64/release-notes/ Release Notes for Debian 10.0 (buster), 64-bit PC]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=URIBL_Datafeed_over_DNS&amp;diff=57</id>
		<title>URIBL Datafeed over DNS</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=URIBL_Datafeed_over_DNS&amp;diff=57"/>
		<updated>2020-09-10T07:29:36Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Certain DNSBLs are run as a &amp;quot;free for most&amp;quot; model, meaning that most users can use their service without payment.&lt;br /&gt;
&lt;br /&gt;
Usually there is a limit on the number of queries you can run against their service, before you get blocked.&lt;br /&gt;
&lt;br /&gt;
The very effective DNSBL [http://uribl.com uribl] indicates that you have reached the rate-limit by creating SpamAssassin hits on &amp;lt;code&amp;gt;URIBL_BLOCKED&amp;lt;/code&amp;gt;, which show up in your mail logs.&lt;br /&gt;
&lt;br /&gt;
Reaching the limit means your Proxmox Mail Gateway will not get correct answers from uribl, which reduces the spamdetection accuracy dramatically.&lt;br /&gt;
&lt;br /&gt;
The first mitigation you should consider is making sure that you have a working and correct DNS setup for your Proxmox Mail Gateway, for example by&lt;br /&gt;
installing a [https://pmg.proxmox.com/wiki/index.php/DNS_server_on_Proxmox_Mail_Gateway dedicated recursive DNS server].&lt;br /&gt;
&lt;br /&gt;
Should you still reach the query limit, you should consider subscribing to a dedicated [http://uribl.com/datafeed.shtml datafeed via DNS], which &lt;br /&gt;
removes the query limit for you, and is priced based on your number of queries.&lt;br /&gt;
&lt;br /&gt;
Once you have subscribed you will receive an email with detailed instructions, which should give you a good overview of the features offered&lt;br /&gt;
by the datafeed service.&lt;br /&gt;
&lt;br /&gt;
This HOWTO provides the necessary steps to integrate your custom DNS datafeed in your Promox Mail Gateway installation, based off the&lt;br /&gt;
[http://uribl.com/datafeed_dns.txt configuration howto from uribl.com].&lt;br /&gt;
&lt;br /&gt;
Depending on whether you have a dedicated DNS server used by your Proxmox Mail Gateway or not you can follow two&lt;br /&gt;
ways to use your custom datafeed.&lt;br /&gt;
&lt;br /&gt;
== Configuration with a dedicated DNS Server ==&lt;br /&gt;
If you have one or two dedicated IP Networks under your control, where your DNS Servers are located, you can simply&lt;br /&gt;
[https://admin.uribl.com/?section=lookup;method=dologin login to uribl] and add those 2 networks as registered with your datafeed.&lt;br /&gt;
&lt;br /&gt;
Your DNS requests will come from one of the whitelisted IPs and will not be blocked due to ratelimiting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; This method is only applicable if you run a recursive DNS server, where you know who is allowed to ask queries there.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not whitelist shared DNS servers provided by your ISP, or globally (8.8.8.8, 9.9.9.9, 1.1.1.1) - since else all requests&lt;br /&gt;
being relayed via those IPs will be billed to your account.&lt;br /&gt;
&lt;br /&gt;
== Configuration by adapting SpamAssassin Configuration ==&lt;br /&gt;
&lt;br /&gt;
If your setup needs to use a shared DNS server and you cannot control who can use it for URIBL queries you will have&lt;br /&gt;
to configure SpamAssassin within your Proxmox Mail Gateway to use the custom query host provided with your datafeed.&lt;br /&gt;
&lt;br /&gt;
The correct way to change the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_custom_spamassassin_configuration SpamAssassin configuration in a Proxmox Mail Gateway installation] is by using the &lt;br /&gt;
[https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_template_engine templating system].&lt;br /&gt;
&lt;br /&gt;
Just add the adapted example configuration provided by uribl to your &amp;lt;code&amp;gt;/etc/mail/spamassassin/custom.cf&amp;lt;/code&amp;gt; - this will also ensure that it gets synchronized to all nodes, if you have a clustered setup.&lt;br /&gt;
&lt;br /&gt;
Make sure to replace &amp;lt;code&amp;gt;_CUSTID&amp;lt;/code&amp;gt; by your custom datafeed id, which you received in the mail from uribl.com&lt;br /&gt;
&lt;br /&gt;
The following minimal config enables your custom datafeed for the regular DNSBLs (URIBL_BLACK, URIBL_GREY, URIBL_RED):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
urirhssub       URIBL_BLOCKED     _CUSTID.df.uribl.com.        A   1&lt;br /&gt;
urirhssub       URIBL_BLACK       _CUSTID.df.uribl.com.        A   2&lt;br /&gt;
urirhssub       URIBL_GREY        _CUSTID.df.uribl.com.        A   4&lt;br /&gt;
urirhssub       URIBL_RED         _CUSTID.df.uribl.com.        A   8&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As suggested in the uribl guide you can check the workings by running: &amp;lt;code&amp;gt; echo -e &amp;quot;Subject: test\n\nhttp://uribl.asia\n\n&amp;quot; | spamassassin -D 2&amp;gt;&amp;amp;1 | grep URIBL_BLACK&amp;lt;/code&amp;gt;&lt;br /&gt;
Your custom datafeed id should be present in the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should you need further help, consider getting a [https://www.proxmox.com/en/proxmox-mail-gateway/pricing enterprise support subscription]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=DNS_server_on_Proxmox_Mail_Gateway&amp;diff=56</id>
		<title>DNS server on Proxmox Mail Gateway</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=DNS_server_on_Proxmox_Mail_Gateway&amp;diff=56"/>
		<updated>2020-08-26T16:20:00Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Optional: Using the local unbound only for DNS Blocklist requests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
One of the most effective means to detecting spam currently is the use of [https://cwiki.apache.org/confluence/display/SPAMASSASSIN/DnsBlocklists DnsBlocklists].&lt;br /&gt;
These lists are used to query the IP of the connecting SMTP server, or IPs and hostnames occurring in the mail body.&lt;br /&gt;
&lt;br /&gt;
Some of the DNS Blocklists used by SpamAssassin (and thus also Proxmox Mail Gateway) allow only a certain number of requests per DNS server and don&#039;t respond once your DNS server has reached it&#039;s quota.&lt;br /&gt;
This is reflected in the mail logs and SpamAssassin hits of a mail. If you see &#039;URIBL_BLOCKED&#039;, &#039;RCVD_IN_DNSWL_BLOCKED&#039; or &#039;SURBL_BLOCKED&#039; in your mail logs or the mail headers, this is an indication that your system has reached the quota.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using a shared DNS server (e.g. your ISPs, or a publicly available one like 9.9.9.9, 1.1.1.1, 8.8.8.8) it is quite likely that the Mail Gateway&#039;s requests will be blocked.&lt;br /&gt;
&lt;br /&gt;
Installing a dedicated DNS server on the Proxmox Mail Gateway can help in such situations.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the DNS Blocklists can only count the requests per public IP, i.e. if you have both your internal DNS and Proxmox Mail Gateway natted to the same public IP setting up a recursive DNS server will not help.&lt;br /&gt;
&lt;br /&gt;
If you keep reaching the limit despite having a dedicated recursive server for your Proxmox Mail Gateway you should consider getting a dedicated feed, which is provided by most DNS Blocklist providers for a fee. This also helps keeping this important infrastructure up and running.&lt;br /&gt;
&lt;br /&gt;
We will use the [https://nlnetlabs.nl/projects/unbound/about/ Unbound] recursive DNS server.&lt;br /&gt;
&lt;br /&gt;
== Installing and using unbound ==&lt;br /&gt;
&lt;br /&gt;
Simply run&lt;br /&gt;
 apt install unbound dnsutils&lt;br /&gt;
&lt;br /&gt;
to install the &amp;lt;code&amp;gt;unbound&amp;lt;/code&amp;gt; server - the &amp;lt;code&amp;gt;dnsutils&amp;lt;/code&amp;gt; package contains &amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;, which can be used for testing.&lt;br /&gt;
&lt;br /&gt;
Check that unbound is indeed listening on port 53:&lt;br /&gt;
 # ss -tulnp | grep :53&lt;br /&gt;
 udp     UNCONN   0        0              127.0.0.1:53             0.0.0.0:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=5))&lt;br /&gt;
 udp     UNCONN   0        0                  [::1]:53                [::]:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=3))&lt;br /&gt;
 tcp     LISTEN   0        128            127.0.0.1:53             0.0.0.0:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=6))&lt;br /&gt;
 tcp     LISTEN   0        128                [::1]:53                [::]:*      users:((&amp;quot;unbound&amp;quot;,pid=137,fd=4))&lt;br /&gt;
&lt;br /&gt;
You can verify that DNS resolution works by using the &amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt; utility&lt;br /&gt;
 # dig a proxmox.com @127.0.0.1 +short &lt;br /&gt;
 79.133.36.244&lt;br /&gt;
&lt;br /&gt;
Afterwards you need to configure your Proxmox Mail Gateway installation to use the local dns-server listening on &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; (or optionally &amp;lt;code&amp;gt;::1&amp;lt;/code&amp;gt;) as resolver.&lt;br /&gt;
In the following article we assume that your domain is &amp;lt;code&amp;gt;yourdomain.example&amp;lt;/code&amp;gt; - you need to adapt the posted configuration.&lt;br /&gt;
On a standard installation this is done by simply placing:&lt;br /&gt;
 nameserver 127.0.0.1&lt;br /&gt;
 search yourdomain.example&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When Proxmox Mail Gateway is running as a Container on Proxmox VE, then you need to edit the container&#039;s DNS Settings to use &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; as DNS Server (and adapt your search domain to &amp;lt;code&amp;gt;yourdomain.example&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
If you have installed the resolvconf package you should not need to change everything, since the unbound package in Debian brings integration with &amp;lt;code&amp;gt;resolvconf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Should your system use &amp;lt;code&amp;gt;systemd-resolved&amp;lt;/code&amp;gt; make sure that&lt;br /&gt;
 resolvectl status&lt;br /&gt;
&lt;br /&gt;
indicates that &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; is listed as &amp;lt;code&amp;gt;Current DNS Server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can simply disable and stop the service&lt;br /&gt;
 systemctl disable systemd-resolved&lt;br /&gt;
 systemctl stop systemd-resolved&lt;br /&gt;
&lt;br /&gt;
After installing you can either reboot you Proxmox Mail Gateway, or restart the services relevant for mail-processing:&lt;br /&gt;
 systemctl restart pmg-smtp-filter pmgpolicy postfix&lt;br /&gt;
&lt;br /&gt;
== Forwarding requests for your internal zone to your internal DNS ==&lt;br /&gt;
&lt;br /&gt;
In some environments the internally used DNS has all knowledge about your domain, and should be consulted for it, instead of unbound getting the publicly available data via DNS delegation from the root-servers.&lt;br /&gt;
&lt;br /&gt;
You can configure unbound to ask your internal DNS-server (for this example the internal DNS-server has the IP 192.0.2.53) for your internal domains (yourdomain.example and yourseconddomain.example).&lt;br /&gt;
Create a dedicated config-snippet &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local-stub.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 stub-zone:&lt;br /&gt;
   name: &amp;quot;yourdomain.example&amp;quot;&lt;br /&gt;
   stub-addr: 192.0.2.53&lt;br /&gt;
&lt;br /&gt;
 stub-zone:&lt;br /&gt;
   name: &amp;quot;yourseconddomain.example&amp;quot;&lt;br /&gt;
   stub-addr: 192.0.2.53&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afterwards restart unbound and verify that DNS-requests for yourdomain.example are delegated to 192.0.2.53 (by checking the DNS logs there):&lt;br /&gt;
 systemctl restart unbound&lt;br /&gt;
 dig test.yourdomain.example @127.0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: Using the local unbound only for DNS Blocklist requests ==&lt;br /&gt;
&lt;br /&gt;
Should your environment require you to use an internal DNS server for all requests, because you have a very modified setup or are employing some other blocking for regulatory reasons you can also try to forward all other requests to your internal DNS Server and only ask the DNS Blocklist zones recursively.&lt;br /&gt;
 &lt;br /&gt;
This setup is &#039;&#039;&#039;not recommended for general use&#039;&#039;&#039;, since it increases the complexity which makes debugging harder.&lt;br /&gt;
&lt;br /&gt;
In the example we will use recursive queries for the following domains and forward all other requests to 192.0.2.53:&lt;br /&gt;
* mailspike.net&lt;br /&gt;
* dnsbl.sorbs.net&lt;br /&gt;
* rhsbl.sorbs.net&lt;br /&gt;
* bl.spamcop.net&lt;br /&gt;
* spamhaus.org&lt;br /&gt;
* surbl.org&lt;br /&gt;
* uribl.com&lt;br /&gt;
* dnswl.org&lt;br /&gt;
&lt;br /&gt;
The list is taken from the [https://cwiki.apache.org/confluence/display/SPAMASSASSIN/DnsBlocklists Spam Assassin Entry on DNS Blocklists].&lt;br /&gt;
You should enhance the list by all domains you are using in your setup (especially the one&#039;s configured for &amp;lt;code&amp;gt;postscreen&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Since unbound cannot do recursive lookups for specific zones if it is forwarding all other requests we will configure 2 unbound instances:&lt;br /&gt;
* one listening on port &amp;lt;code&amp;gt;5003&amp;lt;/code&amp;gt; for recursive lookups - the DNSBL instance&lt;br /&gt;
* one forwarding requests for the DNSBL domains to port 5003, and all other requests to your internal DNS Server.&lt;br /&gt;
&lt;br /&gt;
For the DNSBL instance - create a config-file which does only include the necessary config-options &amp;lt;code&amp;gt;/etc/unbound/unbound-dnsbl.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 #unbound instance listening on port 5003 for DNSBL lookups&lt;br /&gt;
 include: &amp;quot;/etc/unbound/unbound.conf.d/qname-minimisation.conf&amp;quot;&lt;br /&gt;
 include: &amp;quot;/etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 port: 5003&lt;br /&gt;
 remote-control:&lt;br /&gt;
      control-port: 8954&lt;br /&gt;
&lt;br /&gt;
Additionally you need to create a systemd-unit (&amp;lt;code&amp;gt;/etc/systemd/system/unbound-rbl.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Unbound DNS server for DNSBL lookups&lt;br /&gt;
 Documentation=man:unbound(8)&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=nss-lookup.target&lt;br /&gt;
 Wants=nss-lookup.target&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 EnvironmentFile=-/etc/default/unbound&lt;br /&gt;
 EnvironmentFile=-/etc/default/unbound-rbl&lt;br /&gt;
 ExecStartPre=-/usr/lib/unbound/package-helper chroot_setup&lt;br /&gt;
 ExecStartPre=-/usr/lib/unbound/package-helper root_trust_anchor_update&lt;br /&gt;
 ExecStart=/usr/sbin/unbound -c /etc/unbound/unbound-rbl.conf -d $DAEMON_OPTS&lt;br /&gt;
 ExecReload=/usr/sbin/unbound-control -c /etc/unbound/unbound-rbl.conf reload&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and enable it with&lt;br /&gt;
 systemctl enable unbound-rbl&lt;br /&gt;
 systemctl start unbound-rbl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the instance listening on port 53 you need to create a config-snippet in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/pmg-dnsbl.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 server:&lt;br /&gt;
       do-not-query-localhost: no&lt;br /&gt;
       # depending on your internal DNS-servers capabilities these options might be necessary&lt;br /&gt;
       # harden-dnssec-stripped: no &lt;br /&gt;
       # module-config: &amp;quot;iterator&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;uceprotect.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;mailspike.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;sorbs.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;bl.spamcop.net&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;spamhaus.org&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;surbl.org&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;uribl.com&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;dnswl.org&amp;quot;&lt;br /&gt;
        forward-addr: 127.0.0.1@5003&lt;br /&gt;
 &lt;br /&gt;
 forward-zone:&lt;br /&gt;
        name: &amp;quot;.&amp;quot;&lt;br /&gt;
        forward-addr: 192.0.2.53&lt;br /&gt;
&lt;br /&gt;
Test the setup by doing lookups to:&lt;br /&gt;
* a testpoint of a DNSBL and verify that the query does not arrive at your internal server&lt;br /&gt;
* a testpoint of an arbitrary address (which should arrive at your internal server):&lt;br /&gt;
&lt;br /&gt;
 # dig any test.uribl.com.multi.uribl.com @127.0.0.1 +short # should not show up as query on 192.0.2.53&lt;br /&gt;
 127.0.0.14&lt;br /&gt;
 &amp;quot;permanent testpoint&amp;quot;&lt;br /&gt;
 # dig a proxmox.com @127.0.0.1 +short  #should show up as query on 192.0.2.53&lt;br /&gt;
 79.133.36.244&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=55</id>
		<title>Upgrade from 5.x to 6.0</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=55"/>
		<updated>2020-08-26T15:29:34Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Service Failure Caused By Apparmor Featureset Missmatch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 6.x is based on a new major version of Debian. Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; needed before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Buster.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 5.x system to Proxmox Mail Gateway 6.x:&lt;br /&gt;
&lt;br /&gt;
*A new installation (and restoring the configuration and database from the backup)&lt;br /&gt;
*An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases emptying the browser cache and reloading the GUI page is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_as_linux_container_appliance container on top of Debian Buster]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_on_debian On top of Debian Buster]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_using_the_proxmox_mail_gateway_installation_cd_rom ISO image]&lt;br /&gt;
* Restore the backup you have made before the upgrade.&lt;br /&gt;
* Change the IP address and the hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** setup the slaves again&lt;br /&gt;
** then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 5.2.&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway, either create and download it from the Webinterface, or do so on the CLI:&lt;br /&gt;
 pmgbackup backup&lt;br /&gt;
&lt;br /&gt;
* At least 1GB free disk space at root mount point.&lt;br /&gt;
* Check [[Upgrade_from_5.x_to_6.0#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are done with apt. &#039;&#039;&#039;Familiarity with apt is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please ensure first that your Mail Gateway 5 system is up-to-date before starting the upgrade process.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Buster - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
 sed -i &#039;s/stretch/buster/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also edit all files in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; accordingly. For a Installation from the ISO&lt;br /&gt;
with the enterprise repository the following command will work:&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg buster pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
=== Stop and Mask Services Before Upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
 systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade&lt;br /&gt;
 systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== For Clusters ===&lt;br /&gt;
&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
 systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
 systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The mail gateway service is provided by the other nodes, currently not being upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade The System ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot yet.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade postgres Database ===&lt;br /&gt;
&lt;br /&gt;
* Before you upgrade the postgres main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
 pg_dropcluster --stop 11 main&lt;br /&gt;
* Upgrade the postgres main cluster from 9.6 to 11 by using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them to avoid problems.&lt;br /&gt;
 pg_upgradecluster -v 11 9.6 main&lt;br /&gt;
* If you want to do an in-place upgrade (using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt;), you need to &amp;lt;code&amp;gt;REINDEX&amp;lt;/code&amp;gt; all databases due to an incompatibility in glibc:&lt;br /&gt;
** https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html&lt;br /&gt;
** https://lists.debian.org/debian-glibc/2019/03/msg00030.html&lt;br /&gt;
** https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927129&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
 systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&lt;br /&gt;
* Reboot and control the journal to ensure that everything runs correctly.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
* Remove the old postgres version and its data:&lt;br /&gt;
 apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
So ensure to read the [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html Upgrade specific issues for buster]&lt;br /&gt;
&lt;br /&gt;
Especially the [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#openssl-defaults OpenSSL default version and security level raised] and [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#su-environment-variables Semantics for using environment variables for su changed]&lt;br /&gt;
&lt;br /&gt;
== Postgres And Other Template Modifications ==&lt;br /&gt;
If you&#039;ve modified the configuration template for postgresql (&amp;lt;code&amp;gt;/var/lib/pmg/templates/postgresql.conf&amp;lt;/code&amp;gt;), make sure to compare and update your copy in &amp;lt;code&amp;gt;/etc/pmg/templates/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also compare all other templates you&#039;ve overriden for new changes through the packages.&lt;br /&gt;
&lt;br /&gt;
== Service Failure Caused By Apparmor Featureset Missmatch ==&lt;br /&gt;
Debian Buster installs apparmor, if you still have the Debian stock kernel installed (&amp;lt;code&amp;gt;linux-image-4.19.0-5-amd64&amp;lt;/code&amp;gt; recommends apparmor), due to a mismatch between the apparmor featureset in the stock kernel and the pve-kernel (which Proxmox Mailgateway uses) certain important services (e.g. &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt;) do not start. Currently you can mitigate the issue in two ways:&lt;br /&gt;
* preferred: uninstall &amp;lt;code&amp;gt;apparmor&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;apt remove apparmor&amp;lt;/code&amp;gt;&lt;br /&gt;
* disable feature-pinning in apparmor by commenting out or deleting the line &amp;lt;code&amp;gt;features-file=/usr/share/apparmor-features/features&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/apparmor/parser.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotation (rsyslog) ==&lt;br /&gt;
If you&#039;ve modified &amp;lt;code&amp;gt;/etc/logrotate.d/rsyslog&amp;lt;/code&amp;gt; make sure to compare the file upon upgrade - the &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script changed. Without the new script logrotation does not work which also breaks the tracking center. The &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script needs to be:&lt;br /&gt;
 /usr/lib/rsyslog/rsyslog-rotate&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
*[https://www.debian.org/releases/buster/amd64/release-notes/ Release Notes for Debian 10.0 (buster), 64-bit PC]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=51</id>
		<title>Upgrade from 5.x to 6.0</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=51"/>
		<updated>2020-06-22T13:01:26Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: s/VE/Mail Gateway/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 6.x is based on a new major version of Debian. Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; needed before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Buster.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 5.x system to Proxmox Mail Gateway 6.x:&lt;br /&gt;
&lt;br /&gt;
*A new installation (and restoring the configuration and database from the backup)&lt;br /&gt;
*An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases emptying the browser cache and reloading the GUI page is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_as_linux_container_appliance container on top of Debian Buster]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_on_debian On top of Debian Buster]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_using_the_proxmox_mail_gateway_installation_cd_rom ISO image]&lt;br /&gt;
* Restore the backup you have made before the upgrade.&lt;br /&gt;
* Change the IP address and the hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** setup the slaves again&lt;br /&gt;
** then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 5.2.&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway, either create and download it from the Webinterface, or do so on the CLI:&lt;br /&gt;
 pmgbackup backup&lt;br /&gt;
&lt;br /&gt;
* At least 1GB free disk space at root mount point.&lt;br /&gt;
* Check [[Upgrade_from_5.x_to_6.0#Potential_issues|known upgrade issues]]&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are done with apt. &#039;&#039;&#039;Familiarity with apt is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please ensure first that your Mail Gateway 5 system is up-to-date before starting the upgrade process.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Buster - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
 sed -i &#039;s/stretch/buster/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also edit all files in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; accordingly. For a Installation from the ISO&lt;br /&gt;
with the enterprise repository the following command will work:&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg buster pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
=== Stop and Mask Services Before Upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
 systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade&lt;br /&gt;
 systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== For Clusters ===&lt;br /&gt;
&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
 systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
 systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The mail gateway service is provided by the other nodes, currently not being upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade The System ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot yet.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade postgres Database ===&lt;br /&gt;
&lt;br /&gt;
* Before you upgrade the postgres main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
 pg_dropcluster --stop 11 main&lt;br /&gt;
* Upgrade the postgres main cluster from 9.6 to 11 by using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them to avoid problems.&lt;br /&gt;
 pg_upgradecluster -v 11 9.6 main&lt;br /&gt;
* If you want to do an in-place upgrade (using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt;), you need to &amp;lt;code&amp;gt;REINDEX&amp;lt;/code&amp;gt; all databases due to an incompatibility in glibc:&lt;br /&gt;
** https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html&lt;br /&gt;
** https://lists.debian.org/debian-glibc/2019/03/msg00030.html&lt;br /&gt;
** https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927129&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
 systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&lt;br /&gt;
* Reboot and control the journal to ensure that everything runs correctly.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
* Remove the old postgres version and its data:&lt;br /&gt;
 apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential issues =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
As a Debian based Distribution, Proxmox Mail Gateway is affected by most issues and changes affecting Debian.&lt;br /&gt;
So ensure to read the [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html Upgrade specific issues for buster]&lt;br /&gt;
&lt;br /&gt;
Especially the [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#openssl-defaults OpenSSL default version and security level raised] and [https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#su-environment-variables Semantics for using environment variables for su changed]&lt;br /&gt;
&lt;br /&gt;
== Postgres And Other Template Modifications ==&lt;br /&gt;
If you&#039;ve modified the configuration template for postgresql (&amp;lt;code&amp;gt;/var/lib/pmg/templates/postgresql.conf&amp;lt;/code&amp;gt;), make sure to compare and update your copy in &amp;lt;code&amp;gt;/etc/pmg/templates/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also compare all other templates you&#039;ve overriden for new changes through the packages.&lt;br /&gt;
&lt;br /&gt;
== Service Failure Caused By Apparmor Featureset Missmatch ==&lt;br /&gt;
Debian Buster installs apparmor, if you still have the Debian stock kernel installed (&amp;lt;code&amp;gt;linux-image-4.19.0-5-amd64&amp;lt;/code&amp;gt; recommends apparmor), due to a mismatch between the apparmor featureset in the stock kernel and the pve-kernel (which Proxmox Mailgateway uses) certain important services (e.g. &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt;) do not start. Currently you can mitigate the issue in two ways:&lt;br /&gt;
* uninstall &amp;lt;code&amp;gt;apparmor&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;apt remove apparmor&amp;lt;/code&amp;gt;&lt;br /&gt;
* disable feature-pinning in apparmor by commenting out or deleting the line &amp;lt;code&amp;gt;features-file=/usr/share/apparmor-features/features&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/apparmor/parser.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotation (rsyslog) ==&lt;br /&gt;
If you&#039;ve modified &amp;lt;code&amp;gt;/etc/logrotate.d/rsyslog&amp;lt;/code&amp;gt; make sure to compare the file upon upgrade - the &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script changed. Without the new script logrotation does not work which also breaks the tracking center. The &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script needs to be:&lt;br /&gt;
 /usr/lib/rsyslog/rsyslog-rotate&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
*[https://www.debian.org/releases/buster/amd64/release-notes/ Release Notes for Debian 10.0 (buster), 64-bit PC]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Getting_started_with_Proxmox_Mail_Gateway&amp;diff=50</id>
		<title>Getting started with Proxmox Mail Gateway</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Getting_started_with_Proxmox_Mail_Gateway&amp;diff=50"/>
		<updated>2020-06-03T15:27:54Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: change link to videotutorials to point to www.proxmox.com instead of the forum thread&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Proxmox Mail Gateway provides a comprehensive enterprise email security solution, which can be comfortably configured via the Graphical User Interface.&lt;br /&gt;
&lt;br /&gt;
This article is aimed at providing descriptions and links to best-practices that have emerged in the Proxmox Mail Gateway community.&lt;br /&gt;
&lt;br /&gt;
The goal is to present a small set of adaptations, which dramatically improve the detection accuracy and user experience of your&lt;br /&gt;
Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
It is not meant to display every single possible potential improvement.&lt;br /&gt;
&lt;br /&gt;
If you run into any issues, please try finding a solution in the [https://pmg.proxmox.com/pmg-docs reference documentation],&lt;br /&gt;
which is shipped with every Proxmox Mail Gateway installation and will always provide the most up to date information.&lt;br /&gt;
&lt;br /&gt;
Searching the [https://forum.proxmox.com Community Forum], or posting your question there can also provide helpful pointers from&lt;br /&gt;
our involved and knowledgeable community.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
An overview of the Proxmox Mail Gateway installation can be found on [https://www.proxmox.com/en/proxmox-mail-gateway/get-started the Proxmox Mail Gateway homepage]&lt;br /&gt;
&lt;br /&gt;
The  [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_installation reference documentation] provides a detailed description of the various install methods.&lt;br /&gt;
&lt;br /&gt;
Additionally you can learn about the installation process from our [https://www.proxmox.com/en/training/video-tutorials/category/proxmox-mailgateway video tutorials]&lt;br /&gt;
&lt;br /&gt;
== Operations/Maintenance ==&lt;br /&gt;
&lt;br /&gt;
=== Changing Hostname or IP ===&lt;br /&gt;
&lt;br /&gt;
see [[Change FQDN]]&lt;br /&gt;
&lt;br /&gt;
=== Configuring Outbound Scanning ===&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway accepts email from internal servers on the internal port (default: 26).&lt;br /&gt;
The distinction on which port email arrives is used for the distinction which rules to apply&lt;br /&gt;
to an email, and whether to relay an email to a foreign domain.&lt;br /&gt;
&lt;br /&gt;
You should take care not to accept mail from the public internet on your internal port, but&lt;br /&gt;
only from trusted internal systems.&lt;br /&gt;
&lt;br /&gt;
It can be difficult to configure certain mailservers (for example Microsoft Exchange) to relay email through a different port than port 25.&lt;br /&gt;
In those situations you can swap the internal and external ports of the Proxmox Mail Gateway to use port 25 as internal port and &lt;br /&gt;
configure a port-redirection on your&lt;br /&gt;
firewall to redirect traffic from the public internet on port 25 to port 26 on your Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
For a rationale behind scanning outbound mail check the [https://forum.proxmox.com/threads/filtering-outgoing-mails.78/ community post from the Proxmox Mail Gateway&#039;s beginnings]&lt;br /&gt;
&lt;br /&gt;
== Improving Spam Detection ==&lt;br /&gt;
&lt;br /&gt;
One of the most effective means to combat spam nowadays is the use of [https://en.wikipedia.org/wiki/Domain_Name_System-based_Blackhole_List DNS based Blackhole lists (DNSBL)].&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway offers two places where it can check information against DNSBLs:&lt;br /&gt;
* during the SMTP dialog within the Mail Proxy - here only the connecting IP can be checked against the DNSBLs configured in GUI -&amp;gt; Configuration -&amp;gt; Mail Proxy -&amp;gt; Options -&amp;gt; DNSBL Sites&lt;br /&gt;
* by the Spam Detector (SpamAssassin) - here the complete content of the mail (including potentially malicious URLs) is checked against a set of [https://cwiki.apache.org/confluence/display/SPAMASSASSIN/DnsBlocklists predefined lists]&lt;br /&gt;
&lt;br /&gt;
DNSBLs have different acceptable use policies, including offering free service for non-commercial use, a limit on the number of queries, or a required registration. Make sure to check that your use-case is allowed by the providers of the list.&lt;br /&gt;
Since the service provided by the DNSBL operators is very valuable for the functioning of the email ecosystem you could consider supporting the providers, if possible.&lt;br /&gt;
&lt;br /&gt;
=== Basic set of DNSBLs for the Mail Proxy ===&lt;br /&gt;
&lt;br /&gt;
The following list offers quite good results in practice:&lt;br /&gt;
* zen.spamhaus.org [https://www.spamhaus.org/organization/dnsblusage/ Acceptable Use Policy]&lt;br /&gt;
* b.barracudacentral.org [https://www.barracudacentral.org/rbl Acceptable Use Policy]&lt;br /&gt;
&lt;br /&gt;
=== Dedicated DNS Resolver on Proxmox Mail Gateway ===&lt;br /&gt;
&lt;br /&gt;
Since DNSBLs transport information via DNS, having a working DNS Setup is essential to good anti-spam results.&lt;br /&gt;
&lt;br /&gt;
Running a [https://pmg.proxmox.com/wiki/index.php/DNS_server_on_Proxmox_Mail_Gateway dedicated recursive DNS Server] on your Proxmox Mail Gateway can help avoid running into rate limits:&lt;br /&gt;
&lt;br /&gt;
=== URIBL custom datafeed ===&lt;br /&gt;
For sites where the email volume is so high that even a dedicated DNS server reaches URIBL&#039;s rate limit you can consider purchasing a custom DNS datafeed from URIBL:&lt;br /&gt;
&lt;br /&gt;
see [[URIBL Datafeed over DNS]]&lt;br /&gt;
&lt;br /&gt;
== Improving Antivirus Accuracy ==&lt;br /&gt;
&lt;br /&gt;
=== Second virus scanner ===&lt;br /&gt;
&lt;br /&gt;
Installing a second Antivirus engine can help improving the Antivirus detection rate:&lt;br /&gt;
&lt;br /&gt;
see [[Install Avast]]&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Encrypt- a free, automated and open certificate authority ==&lt;br /&gt;
To configure a globally trusted certificate using Let&#039;s Encrypt follow the &lt;br /&gt;
[https://forum.proxmox.com/threads/how-to-lets-encrypt-and-pmg.41493/ thread in our forum]&lt;br /&gt;
&lt;br /&gt;
== End user quarantine access ==&lt;br /&gt;
&lt;br /&gt;
=== Quarantine Web Interface via 443 ===&lt;br /&gt;
By redirecting your Quarantine links to a Proxy on port 443 you can restrict access to the admin interface to certain IPs and present your users with a globally trusted certificate:&lt;br /&gt;
&lt;br /&gt;
see [[Quarantine Web Interface Via Nginx Proxy]]&lt;br /&gt;
&lt;br /&gt;
== Load Balancing ==&lt;br /&gt;
&lt;br /&gt;
Load balancing SMTP is most easily achieved using DNS.&lt;br /&gt;
&lt;br /&gt;
Since Proxmox Mail Gateway is a proxy which does not store mail permanently you can simply configure multiple MX records with the same priority for your domains,&lt;br /&gt;
or multiple A records for the DNS name, which you use as MX record.&lt;br /&gt;
&lt;br /&gt;
See the &#039;&#039;HA Cluster&#039;&#039; tab on the [https://www.proxmox.com/en/proxmox-mail-gateway/features Proxmox Mail Gateway feature page] and the [https://forum.proxmox.com/threads/redundant-servers-and-load-balancing-using-mx-records.73/ thread in our community forum].&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Getting_started_with_Proxmox_Mail_Gateway&amp;diff=49</id>
		<title>Getting started with Proxmox Mail Gateway</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Getting_started_with_Proxmox_Mail_Gateway&amp;diff=49"/>
		<updated>2020-06-03T12:04:41Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: change quarantine proxy link to internal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Proxmox Mail Gateway provides a comprehensive enterprise email security solution, which can be comfortably configured via the Graphical User Interface.&lt;br /&gt;
&lt;br /&gt;
This article is aimed at providing descriptions and links to best-practices that have emerged in the Proxmox Mail Gateway community.&lt;br /&gt;
&lt;br /&gt;
The goal is to present a small set of adaptations, which dramatically improve the detection accuracy and user experience of your&lt;br /&gt;
Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
It is not meant to display every single possible potential improvement.&lt;br /&gt;
&lt;br /&gt;
If you run into any issues, please try finding a solution in the [https://pmg.proxmox.com/pmg-docs reference documentation],&lt;br /&gt;
which is shipped with every Proxmox Mail Gateway installation and will always provide the most up to date information.&lt;br /&gt;
&lt;br /&gt;
Searching the [https://forum.proxmox.com Community Forum], or posting your question there can also provide helpful pointers from&lt;br /&gt;
our involved and knowledgeable community.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
An overview of the Proxmox Mail Gateway installation can be found on [https://www.proxmox.com/en/proxmox-mail-gateway/get-started the Proxmox Mail Gateway homepage]&lt;br /&gt;
&lt;br /&gt;
The  [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_installation reference documentation] provides a detailed description of the various install methods.&lt;br /&gt;
&lt;br /&gt;
Additionally you can learn about the installation process from our [https://forum.proxmox.com/threads/installation-tutorials.40827/ video tutorials]&lt;br /&gt;
&lt;br /&gt;
== Operations/Maintenance ==&lt;br /&gt;
&lt;br /&gt;
=== Changing Hostname or IP ===&lt;br /&gt;
&lt;br /&gt;
see [[Change FQDN]]&lt;br /&gt;
&lt;br /&gt;
=== Configuring Outbound Scanning ===&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway accepts email from internal servers on the internal port (default: 26).&lt;br /&gt;
The distinction on which port email arrives is used for the distinction which rules to apply&lt;br /&gt;
to an email, and whether to relay an email to a foreign domain.&lt;br /&gt;
&lt;br /&gt;
You should take care not to accept mail from the public internet on your internal port, but&lt;br /&gt;
only from trusted internal systems.&lt;br /&gt;
&lt;br /&gt;
It can be difficult to configure certain mailservers (for example Microsoft Exchange) to relay email through a different port than port 25.&lt;br /&gt;
In those situations you can swap the internal and external ports of the Proxmox Mail Gateway to use port 25 as internal port and &lt;br /&gt;
configure a port-redirection on your&lt;br /&gt;
firewall to redirect traffic from the public internet on port 25 to port 26 on your Proxmox Mail Gateway.&lt;br /&gt;
&lt;br /&gt;
For a rationale behind scanning outbound mail check the [https://forum.proxmox.com/threads/filtering-outgoing-mails.78/ community post from the Proxmox Mail Gateway&#039;s beginnings]&lt;br /&gt;
&lt;br /&gt;
== Improving Spam Detection ==&lt;br /&gt;
&lt;br /&gt;
One of the most effective means to combat spam nowadays is the use of [https://en.wikipedia.org/wiki/Domain_Name_System-based_Blackhole_List DNS based Blackhole lists (DNSBL)].&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway offers two places where it can check information against DNSBLs:&lt;br /&gt;
* during the SMTP dialog within the Mail Proxy - here only the connecting IP can be checked against the DNSBLs configured in GUI -&amp;gt; Configuration -&amp;gt; Mail Proxy -&amp;gt; Options -&amp;gt; DNSBL Sites&lt;br /&gt;
* by the Spam Detector (SpamAssassin) - here the complete content of the mail (including potentially malicious URLs) is checked against a set of [https://cwiki.apache.org/confluence/display/SPAMASSASSIN/DnsBlocklists predefined lists]&lt;br /&gt;
&lt;br /&gt;
DNSBLs have different acceptable use policies, including offering free service for non-commercial use, a limit on the number of queries, or a required registration. Make sure to check that your use-case is allowed by the providers of the list.&lt;br /&gt;
Since the service provided by the DNSBL operators is very valuable for the functioning of the email ecosystem you could consider supporting the providers, if possible.&lt;br /&gt;
&lt;br /&gt;
=== Basic set of DNSBLs for the Mail Proxy ===&lt;br /&gt;
&lt;br /&gt;
The following list offers quite good results in practice:&lt;br /&gt;
* zen.spamhaus.org [https://www.spamhaus.org/organization/dnsblusage/ Acceptable Use Policy]&lt;br /&gt;
* b.barracudacentral.org [https://www.barracudacentral.org/rbl Acceptable Use Policy]&lt;br /&gt;
&lt;br /&gt;
=== Dedicated DNS Resolver on Proxmox Mail Gateway ===&lt;br /&gt;
&lt;br /&gt;
Since DNSBLs transport information via DNS, having a working DNS Setup is essential to good anti-spam results.&lt;br /&gt;
&lt;br /&gt;
Running a [https://pmg.proxmox.com/wiki/index.php/DNS_server_on_Proxmox_Mail_Gateway dedicated recursive DNS Server] on your Proxmox Mail Gateway can help avoid running into rate limits:&lt;br /&gt;
&lt;br /&gt;
=== URIBL custom datafeed ===&lt;br /&gt;
For sites where the email volume is so high that even a dedicated DNS server reaches URIBL&#039;s rate limit you can consider purchasing a custom DNS datafeed from URIBL:&lt;br /&gt;
&lt;br /&gt;
see [[URIBL Datafeed over DNS]]&lt;br /&gt;
&lt;br /&gt;
== Improving Antivirus Accuracy ==&lt;br /&gt;
&lt;br /&gt;
=== Second virus scanner ===&lt;br /&gt;
&lt;br /&gt;
Installing a second Antivirus engine can help improving the Antivirus detection rate:&lt;br /&gt;
&lt;br /&gt;
see [[Install Avast]]&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Encrypt- a free, automated and open certificate authority ==&lt;br /&gt;
To configure a globally trusted certificate using Let&#039;s Encrypt follow the &lt;br /&gt;
[https://forum.proxmox.com/threads/how-to-lets-encrypt-and-pmg.41493/ thread in our forum]&lt;br /&gt;
&lt;br /&gt;
== End user quarantine access ==&lt;br /&gt;
&lt;br /&gt;
=== Quarantine Web Interface via 443 ===&lt;br /&gt;
By redirecting your Quarantine links to a Proxy on port 443 you can restrict access to the admin interface to certain IPs and present your users with a globally trusted certificate:&lt;br /&gt;
&lt;br /&gt;
see [[Quarantine Web Interface Via Nginx Proxy]]&lt;br /&gt;
&lt;br /&gt;
== Load Balancing ==&lt;br /&gt;
&lt;br /&gt;
Load balancing SMTP is most easily achieved using DNS.&lt;br /&gt;
&lt;br /&gt;
Since Proxmox Mail Gateway is a proxy which does not store mail permanently you can simply configure multiple MX records with the same priority for your domains,&lt;br /&gt;
or multiple A records for the DNS name, which you use as MX record.&lt;br /&gt;
&lt;br /&gt;
See the &#039;&#039;HA Cluster&#039;&#039; tab on the [https://www.proxmox.com/en/proxmox-mail-gateway/features Proxmox Mail Gateway feature page] and the [https://forum.proxmox.com/threads/redundant-servers-and-load-balancing-using-mx-records.73/ thread in our community forum].&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=42</id>
		<title>Quarantine Web Interface Via Nginx Proxy</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Quarantine_Web_Interface_Via_Nginx_Proxy&amp;diff=42"/>
		<updated>2020-05-05T10:25:12Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: Created page with &amp;quot;== Introduction ==  Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly. If a mail is detected as...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Proxmox Mail Gateway can be configured to quarantine mail, instead of delivering potentially dangerous content to users directly.&lt;br /&gt;
If a mail is detected as spam users themselves can decide whether they want to keep or delete it in the user quarantine interface.&lt;br /&gt;
(for dangerous content, as mail containing viruses, or potentially dangerous attachments, the administrator needs to decide whether&lt;br /&gt;
to pass the mail on or delete it).&lt;br /&gt;
&lt;br /&gt;
In certain environments it is desired to provide the user quarantine interface at a specific host and port, &lt;br /&gt;
e.g. in order to only allow access to the interface from outside on port 443, or to provide a different and &lt;br /&gt;
trusted certificate to your users.&lt;br /&gt;
&lt;br /&gt;
The following Howto describes a small nginx configuration, which only exposes the paths necessary for user quarantine interface access,&lt;br /&gt;
while preventing access to other parts of the API.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this provides mostly cosmetic protection, since all paths in the Proxmox Mail Gateway API, apart from the login path&lt;br /&gt;
are only available to authenticated users anyways. The unprotected login path needs to be forwarded for the quarantine access as well.&lt;br /&gt;
&lt;br /&gt;
For creating a general reverse proxy for the complete web interface refer to the [https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy Howto in the Proxmox VE wiki].&lt;br /&gt;
&lt;br /&gt;
== Installing nginx ==&lt;br /&gt;
&lt;br /&gt;
The Howto creates a configuration suitable for nginx. You can install nginx on your Proxmox Mail Gateway using &amp;lt;nowiki&amp;gt;apt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 apt install nginx&lt;br /&gt;
&lt;br /&gt;
== Creating a site to proxy requests for quarantine  ==&lt;br /&gt;
&lt;br /&gt;
The following configuration is a minimal working nginx-site to proxy all requests necessary for accessing the quarantine interface for users.&lt;br /&gt;
You should adapt it to your site&#039;s requirements. This includes:&lt;br /&gt;
* changing the path to the used certificates&lt;br /&gt;
* setting the proper &amp;lt;nowiki&amp;gt;server_name&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* adapting the ssl-configuration parameters to current best practices&lt;br /&gt;
* if the proxy server is running on another host adapting the url for the &amp;lt;nowiki&amp;gt;proxy_pass&amp;lt;/nowiki&amp;gt; directives&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the site running write the config to &amp;lt;nowiki&amp;gt;/etc/nginx/sites-available/pmg-quarantine.conf&amp;lt;/nowiki&amp;gt; and symlink it to &amp;lt;nowiki&amp;gt;/etc/nginx/sites-enabled&amp;lt;/nowiki&amp;gt;:&lt;br /&gt;
 ln -rs /etc/nginx/sites-available/pmg-quarantine.conf /etc/nginx/sites-enabled/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443;&lt;br /&gt;
    server_name _;&lt;br /&gt;
    ssl on;&lt;br /&gt;
    ssl_certificate /etc/pmg/pmg-api.pem;&lt;br /&gt;
    ssl_certificate_key /etc/pmg/pmg-api.pem;&lt;br /&gt;
    proxy_redirect off;&lt;br /&gt;
&lt;br /&gt;
    proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;; &lt;br /&gt;
    proxy_set_header PVEClientIP $remote_addr; &lt;br /&gt;
    proxy_buffering off;&lt;br /&gt;
    client_max_body_size 0;&lt;br /&gt;
    proxy_connect_timeout  3600s;&lt;br /&gt;
    proxy_read_timeout  3600s;&lt;br /&gt;
    proxy_send_timeout  3600s;&lt;br /&gt;
    send_timeout  3600s;&lt;br /&gt;
    # proxy requests for static components&lt;br /&gt;
    location ~ /proxmoxlib.js$|/favicon.ico$|/pve2/|/fontawesome/|/framework7/|/pwt/css/ {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
    location /quarantine {&lt;br /&gt;
        proxy_pass https://localhost:8006;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location /api2 {&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/(access/ticket$|version$) {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/nodes/.+/subscription$ {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ /api2/(extjs|json|htmlmail)/quarantine {&lt;br /&gt;
            proxy_pass https://localhost:8006;&lt;br /&gt;
        }&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Staging]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=29</id>
		<title>Upgrade from 5.x to 6.0</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=29"/>
		<updated>2019-09-13T18:02:24Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Potential issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 6.x is based on a new major version of Debian. Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; needed before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Buster.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 5.x system to Proxmox Mail Gateway 6.x:&lt;br /&gt;
&lt;br /&gt;
*A new installation (and restoring the configuration and database from the backup)&lt;br /&gt;
*An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases emptying the browser cache and reloading the GUI page is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_as_linux_container_appliance container on top of Debian Buster]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_on_debian On top of Debian Buster]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_using_the_proxmox_mail_gateway_installation_cd_rom ISO image]&lt;br /&gt;
* Restore the backup you have made before the upgrade.&lt;br /&gt;
* Change the IP address and the hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** setup the slaves again&lt;br /&gt;
** then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 5.2.&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway&lt;br /&gt;
 pmgbackup backup&lt;br /&gt;
&lt;br /&gt;
* At least 1GB free disk space at root mount point.&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are done with apt. &#039;&#039;&#039;Familiarity with apt is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please ensure first that your Mail Gateway 5 system is up-to-date before starting the upgrade process.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Buster - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
 sed -i &#039;s/stretch/buster/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also edit all files in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; accordingly. For a Installation from the ISO&lt;br /&gt;
with the enterprise repository the following command will work:&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg buster pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
=== Stop and Mask Services Before Upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
 systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade&lt;br /&gt;
 systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== For Clusters ===&lt;br /&gt;
&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
 systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
 systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The mail gateway service is provided by the other nodes, currently not being upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade The System ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot yet.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade postgres Database ===&lt;br /&gt;
&lt;br /&gt;
* Before you upgrade the postgres main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
 pg_dropcluster --stop 11 main&lt;br /&gt;
* Upgrade the postgres main cluster from 9.6 to 11 by using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them to avoid problems.&lt;br /&gt;
 pg_upgradecluster -v 11 9.6 main&lt;br /&gt;
* If you want to do an in-place upgrade (using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt;), you need to &amp;lt;code&amp;gt;REINDEX&amp;lt;/code&amp;gt; all databases due to an incompatibility in glibc:&lt;br /&gt;
** https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html&lt;br /&gt;
** https://lists.debian.org/debian-glibc/2019/03/msg00030.html&lt;br /&gt;
** https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927129&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
 systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&lt;br /&gt;
* Reboot and control the journal to ensure that everything runs correctly.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
* Remove the old postgres version and its data:&lt;br /&gt;
 apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential issues =&lt;br /&gt;
&lt;br /&gt;
* If you&#039;ve modified the configuration template for postgresql (&amp;lt;code&amp;gt;/var/lib/pmg/templates/postgresql.conf&amp;lt;/code&amp;gt;), make sure to compare and update your copy in &amp;lt;code&amp;gt;/etc/pmg/templates/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Also compare all other templates you&#039;ve overriden for new changes through the packages&lt;br /&gt;
&lt;br /&gt;
* Debian Buster installs apparmor, if you still have the Debian stock kernel installed (&amp;lt;code&amp;gt;linux-image-4.19.0-5-amd64&amp;lt;/code&amp;gt; recommends apparmor), due to a mismatch between the apparmor featureset in the stock kernel and the pve-kernel (which Proxmox Mailgateway uses) certain important services (e.g. &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt;) do not start. Currently you can mitigate the issue in two ways:&lt;br /&gt;
** uninstall &amp;lt;code&amp;gt;apparmor&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;apt remove apparmor&amp;lt;/code&amp;gt;&lt;br /&gt;
** disable feature-pinning in apparmor by commenting out or deleting the line &amp;lt;code&amp;gt;features-file=/usr/share/apparmor-features/features&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/apparmor/parser.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you&#039;ve modified &amp;lt;code&amp;gt;/etc/logrotate.d/rsyslog&amp;lt;/code&amp;gt; make sure to compare the file upon upgrade - the &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script changed. Without the new script logrotation does not work which also breaks the tracking center. The &amp;lt;code&amp;gt;postrotate&amp;lt;/code&amp;gt; script needs to be:&lt;br /&gt;
 /usr/lib/rsyslog/rsyslog-rotate&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
*[https://www.debian.org/releases/buster/amd64/release-notes/ Release Notes for Debian 10.0 (buster), 64-bit PC]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=22</id>
		<title>Upgrade from 5.x to 6.0</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=22"/>
		<updated>2019-08-27T10:17:07Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: /* Potential issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Proxmox Mail Gateway 6.x is based on a new major version of Debian. Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; needed before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Buster.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 5.x system to Proxmox Mail Gateway 6.x:&lt;br /&gt;
&lt;br /&gt;
*A new installation (and restoring the configuration and database from the backup)&lt;br /&gt;
*An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases emptying the browser cache and reloading the GUI page is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
= New Installation =&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_as_linux_container_appliance container on top of Debian Buster]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_on_debian On top of Debian Buster]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_using_the_proxmox_mail_gateway_installation_cd_rom ISO image]&lt;br /&gt;
* Restore the backup you have made before the upgrade.&lt;br /&gt;
* Change the IP address and the hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** setup the slaves again&lt;br /&gt;
** then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
= In-place Upgrade =&lt;br /&gt;
== Preconditions ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 5.2.&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway&lt;br /&gt;
 pmgbackup backup&lt;br /&gt;
&lt;br /&gt;
* At least 1GB free disk space at root mount point.&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are done with apt. &#039;&#039;&#039;Familiarity with apt is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Actions step-by-step ==&lt;br /&gt;
&lt;br /&gt;
Please ensure first that your Mail Gateway 5 system is up-to-date before starting the upgrade process.&lt;br /&gt;
&lt;br /&gt;
=== Update the configured APT repositories ===&lt;br /&gt;
Change the apt sources to Buster - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
 sed -i &#039;s/stretch/buster/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also edit all files in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; accordingly. For a Installation from the ISO&lt;br /&gt;
with the enterprise repository the following command will work:&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg buster pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
&lt;br /&gt;
=== Stop and Mask Services Before Upgrade ===&lt;br /&gt;
&lt;br /&gt;
This is necessary to prevent changes to the database before and during the upgrade.&lt;br /&gt;
&lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
 systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade&lt;br /&gt;
 systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
=== For Clusters ===&lt;br /&gt;
&lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;, stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
 systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
 systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
* Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
* The mail gateway service is provided by the other nodes, currently not being upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade The System ===&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
It is not necessary to reboot yet.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade postgres Database ===&lt;br /&gt;
&lt;br /&gt;
* Before you upgrade the postgres main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
 pg_dropcluster --stop 11 main&lt;br /&gt;
* Upgrade the postgres main cluster from 9.6 to 11 by using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them to avoid problems.&lt;br /&gt;
 pg_upgradecluster -v 11 9.6 main&lt;br /&gt;
* If you want to do an in-place upgrade (using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt;), you need to &amp;lt;code&amp;gt;REINDEX&amp;lt;/code&amp;gt; all databases due to an incompatibility in glibc:&lt;br /&gt;
** https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html&lt;br /&gt;
** https://lists.debian.org/debian-glibc/2019/03/msg00030.html&lt;br /&gt;
** https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927129&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all &#039;&#039;&#039;non-cluster&#039;&#039;&#039; Proxmox Mail Gateway services to enable them again.&lt;br /&gt;
 systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&lt;br /&gt;
* Reboot and control the journal to ensure that everything runs correctly.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
* Remove the old postgres version and its data:&lt;br /&gt;
 apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6&lt;br /&gt;
&lt;br /&gt;
== After the Proxmox Mail Gateway upgrade ==&lt;br /&gt;
&lt;br /&gt;
After upgrading, unmask and start all cluster-daemons on &#039;&#039;&#039;all nodes&#039;&#039;&#039;. This applies to upgrades of a single node as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
= Potential issues =&lt;br /&gt;
&lt;br /&gt;
* If you&#039;ve modified the configuration template for postgresql (&amp;lt;code&amp;gt;/var/lib/pmg/templates/postgresql.conf&amp;lt;/code&amp;gt;), make sure to compare and update your copy in &amp;lt;code&amp;gt;/etc/pmg/templates/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Also compare all other templates you&#039;ve overriden for new changes through the packages&lt;br /&gt;
&lt;br /&gt;
* Debian Buster installs apparmor, if you still have the Debian stock kernel installed (&amp;lt;code&amp;gt;linux-image-4.19.0-5-amd64&amp;lt;/code&amp;gt; recommends apparmor), due to a mismatch between the apparmor featureset in&lt;br /&gt;
the stock kernel and the pve-kernel (which Proxmox Mailgateway uses) certain important services (e.g. &amp;lt;code&amp;gt;clamav&amp;lt;/code&amp;gt;) do not start. Currently uninstall &amp;lt;code&amp;gt;apparmor&amp;lt;/code&amp;gt; in that situation:&lt;br /&gt;
 apt remove apparmor&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
*[https://www.debian.org/releases/buster/amd64/release-notes/ Release Notes for Debian 10.0 (buster), 64-bit PC]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
	<entry>
		<id>https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=3</id>
		<title>Upgrade from 5.x to 6.0</title>
		<link rel="alternate" type="text/html" href="https://pmg.proxmox.com/mediawiki/index.php?title=Upgrade_from_5.x_to_6.0&amp;diff=3"/>
		<updated>2019-08-20T13:43:30Z</updated>

		<summary type="html">&lt;p&gt;Stoiko Ivanov: Created page with &amp;quot;== Introduction == Proxmox Mail Gateway 6.x is based on a new major version of Debian. Carefully plan the upgrade, &amp;#039;&amp;#039;&amp;#039;make and verify backups&amp;#039;&amp;#039;&amp;#039; before beginning, and test ext...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Proxmox Mail Gateway 6.x is based on a new major version of Debian. Carefully plan the upgrade, &#039;&#039;&#039;make and verify backups&#039;&#039;&#039; before beginning, and test extensively. Depending on the existing configuration, several manual steps — including some downtime — may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A valid and tested backup is &#039;&#039;always&#039;&#039; needed before starting the upgrade process. Test the backup beforehand in a test lab setup.&lt;br /&gt;
&lt;br /&gt;
In case the system is customized and/or uses additional packages or any other third party repositories/packages, ensure those packages are also upgraded to and compatible with Debian Buster.&lt;br /&gt;
&lt;br /&gt;
In general, there are two ways to upgrade a Proxmox Mail Gateway 5.x system to Proxmox Mail Gateway 6.x:&lt;br /&gt;
&lt;br /&gt;
*A new installation (and restoring the configuration and database from the backup)&lt;br /&gt;
*An in-place upgrade via apt (step-by-step)&lt;br /&gt;
&lt;br /&gt;
In both cases emptying the browser cache and reloading the GUI page is required after the upgrade.&lt;br /&gt;
&lt;br /&gt;
== New Installation ==&lt;br /&gt;
* Install Proxmox Mail Gateway in one of the following three ways:&lt;br /&gt;
** As a [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_as_linux_container_appliance container on top of Debian Buster]&lt;br /&gt;
** [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_install_proxmox_mail_gateway_on_debian On top of Debian Buster]&lt;br /&gt;
** By using the [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_using_the_proxmox_mail_gateway_installation_cd_rom ISO image]&lt;br /&gt;
* Restore the backup you have made before the upgrade.&lt;br /&gt;
* Change the IP address and the hostname.&lt;br /&gt;
* For &#039;&#039;&#039;clustered setups&#039;&#039;&#039;: &lt;br /&gt;
** setup the slaves again&lt;br /&gt;
** then join them to the upgraded master-node (recreate the cluster).&lt;br /&gt;
&lt;br /&gt;
== In-place Upgrade ==&lt;br /&gt;
=== Preconditions ===&lt;br /&gt;
&lt;br /&gt;
* Upgrade to the latest version of Proxmox Mail Gateway 5.2.&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* Make a valid and tested backup of Proxmox Mail Gateway&lt;br /&gt;
 pmgbackup backup&lt;br /&gt;
&lt;br /&gt;
* At least 1GB free disk space at root mount point.&lt;br /&gt;
&lt;br /&gt;
In-place upgrades are done with apt. &#039;&#039;&#039;Familiarity with apt is required to proceed with this upgrade mechanism. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Actions step-by-step ===&lt;br /&gt;
* Change the apt sources to Buster - see [https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_package_repositories Package Repositories]&lt;br /&gt;
 sed -i &#039;s/stretch/buster/g&#039; /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Make sure to also edit all files in &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; accordingly. For a Installation from the ISO&lt;br /&gt;
with the enterprise repository the following command will work:&lt;br /&gt;
 echo &amp;quot;deb https://enterprise.proxmox.com/debian/pmg buster pmg-enterprise&amp;quot; &amp;gt; /etc/apt/sources.list.d/pmg-enterprise.list&lt;br /&gt;
 &lt;br /&gt;
* Stop postfix and all Proxmox Mail Gateway services (emails will be queued by the servers trying to contact the Proxmox Mail Gateway)&lt;br /&gt;
This is necessary to prevent changes to the database before the upgrade &lt;br /&gt;
 systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel&lt;br /&gt;
* Mask postfix and all Proxmox Mailgateway services to prevent them from starting during the upgrade&lt;br /&gt;
 systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel &lt;br /&gt;
 &lt;br /&gt;
* If you have a &#039;&#039;&#039;cluster&#039;&#039;&#039;:&lt;br /&gt;
** Stop and mask all cluster-daemons &#039;&#039;&#039;on all nodes&#039;&#039;&#039; before you start the upgrade of the first node.&lt;br /&gt;
 systemctl stop pmgmirror pmgtunnel&lt;br /&gt;
 systemctl mask pmgmirror pmgtunnel&lt;br /&gt;
** Then proceed by upgrading all nodes sequentially.&lt;br /&gt;
** The service is provided by the nodes not being upgraded.&lt;br /&gt;
&lt;br /&gt;
* Upgrade the system:&lt;br /&gt;
 apt update&lt;br /&gt;
 apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* Before you upgrade the postgres main cluster, you need to remove the automatically created cluster in the new version.&lt;br /&gt;
 pg_dropcluster --stop 11 main&lt;br /&gt;
* Upgrade the postgres main cluster from 9.6 to 11 by using &amp;lt;code&amp;gt;pg_upgradecluster&amp;lt;/code&amp;gt;&lt;br /&gt;
** If possible, use the default setting of dumping the old databases and restoring them to avoid problems.&lt;br /&gt;
 pg_upgradecluster -v 11 9.6 main&lt;br /&gt;
* If you want to do an in-place upgrade (using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt;), you need to &amp;lt;code&amp;gt;REINDEX&amp;lt;/code&amp;gt; all databases due to an incompatibility in glibc:&lt;br /&gt;
** https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html&lt;br /&gt;
** https://lists.debian.org/debian-glibc/2019/03/msg00030.html&lt;br /&gt;
** https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927129&lt;br /&gt;
&lt;br /&gt;
* Unmask postfix and all non-cluster Proxmox MG services to enable them again.&lt;br /&gt;
 systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy&lt;br /&gt;
* Reboot and control the journal to ensure that everything runs correctly.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
* Remove the old postgres version and its data:&lt;br /&gt;
 apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6&lt;br /&gt;
&lt;br /&gt;
=== After the Proxmox Mail Gateway upgrade ===&lt;br /&gt;
* After upgrading, unmask and start all cluster-daemons. This applies to upgrades of a single node as well as to upgrades of all nodes in a clustered setup:&lt;br /&gt;
 systemctl unmask pmgmirror pmgtunnel&lt;br /&gt;
 systemctl start pmgmirror pmgtunnel&lt;br /&gt;
&lt;br /&gt;
== Potential issues ==&lt;br /&gt;
&lt;br /&gt;
* If you&#039;ve modified the configuration template for postgresql (&amp;lt;code&amp;gt;/var/lib/pmg/templates/postgresql.conf&amp;lt;/code&amp;gt;), make sure to compare and update your copy in &amp;lt;code&amp;gt;/etc/pmg/templates/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Also compare all other templates you&#039;ve overriden for new changes through the packages&lt;br /&gt;
&lt;br /&gt;
* Clamav-freshclam has a bug with it&#039;s AppArmor handling, which seems not fixed yet: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903834&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
*[https://www.debian.org/releases/buster/amd64/release-notes/ Release Notes for Debian 10.0 (buster), 64-bit PC]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Staging]]&lt;/div&gt;</summary>
		<author><name>Stoiko Ivanov</name></author>
	</entry>
</feed>