First impressions and feedback

Nov 29, 2023
1
2
3
Hi and thanks for a really great and flexible product!

My usecase is a bit on the edge as i run my mail solution from home on an ISP customer ip with an internal Exchange server with only one mailbox for myself, which is setup to accept any emailaddress on all my domains.
I use a different emailaddress each place i register online/offline which makes it easy to block/filter emailaddresses.
The reason i was looking for a new MTA was the need for better logging of the reject events, as i closely monitor which emailaddresses are being used and potentially compromised.
My MTA up until a few days ago was SophosXG firewall, it has syslog but reject events are not logged there and can only be seen in the portal.

Installing Proxmox Mail Gateway (8.0.3) in a virtual environment was fast and easy.

Configuring relaying up/downstream
Default relay to the internal Exchange server was fast and easily done in the portal.
Exchange relay to Proxmox was confusing, kept getting relay denied even with ip added to Networks. After finding out about and updating Exchange to send on the internal SMTP port 26 instead was the key.
- maybe mention using the internal SMTP port in the Networks docs
- (on my todolist), how to not allow all ip's on the same subnet (i only have one subnet with servers+clients)
Proxmox relay to smarthost (i use Socketlabs because sending from a consumer grade ip has been more or less impossible for many years now) was the first challenge. Where was the authentication option... after some forum reading and fiddling with templates i finally got SASL working.
- this was by far the most surprising thing that was not supported out of the box, wish there was configurable options for "Smarthost Authentication" and "Smarthost Port" in Relaying

Configuring logging
Setting up external syslog was found through a forum post https://forum.proxmox.com/threads/remote-syslog.46146
- would have liked to be able to do this in the portal
- should be mentioned in the docs on how to do this eg in Syslog and Tasks as it is a somewhat common option(?)

Configuring blacklisting to reject compromised internal emailaddresses
Somewhat confusing. Adding recipients to the Blacklist did nothing. Found out Blacklist by default only applies to senders.
Made a new Blacklist which applies to recipients and voila, incoming messages was blocked.
But, this was not the same as Rejected, the messages was still being accepted and then blocked.
Solved by editing the main.cf.in template and replacing the smtpd_recipient_restrictions = check_recipient_access with a custom file hash:/etc/postfix/recipient_access and adding the emailaddresses there.
There is a "smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/rcptaccess" in the default config, but i was unable to populate this by any of the RegEx Who objects/rules in the portal, and no mention of this in the docs.
- wish it were possible to have the ability to have both reject and blocklists in the portal, where rejectlists can specify return code and message per item.

Insight
Tracking center is superfast, gives a good overview and has excellent filtering capabilities
Would like to see:
- colored rows for accepted messages (green?) to distinguish them from rejected (yellow?)
- an option to turn on a Subject column to more easily identify spam at a glance
- a spam info button similar to the "Toggle spam info" in Spam Quarantine to more easily view all types of accepted mail spamscores

Conclusion
Very easy to get started but some Linux commandline fiddling seems to be expected if you dont have a very basic setup.
Documentation is ok, but has many external references eg to postfix, makes it more timeconsuming to find out things. Eg, "what is the delimiter when using multiple DNSBL's", docs should have some examples of the most common used options.
For my personal needs it ticks all the boxes, and after getting somewhat more familiar under the hood i see how flexible this really is and have decided to permanently switch to Proxmox

Kind regards,
:)
 
Thank you for your feedback and sharing your experiences here!

Exchange relay to Proxmox was confusing, kept getting relay denied even with ip added to Networks. After finding out about and updating Exchange to send on the internal SMTP port 26 instead was the key.
This is mentioned in the Firewall settings of the reference documentation:
https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#firewall_settings
But we'll look into maybe also rephrasing that in a more accessible way.
- (on my todolist), how to not allow all ip's on the same subnet (i only have one subnet with servers+clients)
This would mean either only adding the allowed IPs as /32, or subnetting in a sensible way - keep in mind that the network where PMG is connected is included in the allowed IPs by default. (you can adapt the postfix configuration using the templateing system to prevent that)

- this was by far the most surprising thing that was not supported out of the box, wish there was configurable options for "Smarthost Authentication" and "Smarthost Port" in Relaying
The principle deployment of PMG is in general - to be directly connected to the public Internet and sending mails directly - but since this is an issue many users run into - we might look into providing SMTPAUTH for the smarthost part...
- should be mentioned in the docs on how to do this eg in Syslog and Tasks as it is a somewhat common option(?)
This is really not requested that often - and adapting the rsyslog configuration is rather straight-forward - so we probably will not add remote logging to the GUI in the foreseeable future.

Somewhat confusing. Adding recipients to the Blacklist did nothing. Found out Blacklist by default only applies to senders.
Made a new Blacklist which applies to recipients and voila, incoming messages was blocked.
But, this was not the same as Rejected, the messages was still being accepted and then blocked.
See the reference documentation on before-queue and after-queue filtering and the rulesystem in general:
https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_mail_proxy_configuration (4.7.5)
https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#chapter_mailfilter

There is a "smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/rcptaccess" in the default config, but i was unable to populate this by any of the RegEx Who objects/rules in the portal, and no mention of this in the docs.
This is (part of) the mailproxy whitelist (GUI->Configuration->Mail Proxy->Whitelist) - see
https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_whitelist_overview

- colored rows for accepted messages (green?) to distinguish them from rejected (yellow?)
Some rows are highlighted - and the others should be clear once you look at the status column in the right...

- an option to turn on a Subject column to more easily identify spam at a glance
currently there is no plan to add that - Subjects are quite sensitive information - so we avoid logging them - see https://bugzilla.proxmox.com/show_bug.cgi?id=3543

- a spam info button similar to the "Toggle spam info" in Spam Quarantine to more easily view all types of accepted mail spamscores
The Tracking center gets its information from the syslog - and is just a (really fast) view to individual mail-flows in the syslog - while we do log the spam-assassin hits I don't it a good fit to show them in a prominent way there.

Thanks again for taking the time of compiling this list of suggestions for improvement!
 
This is a useful summary. As I have moved to Proxmox VE, I have also been considering the mail gateway, as a replacement for Xeams. I don't have any esoteric requirements, this is just for my family's personal email which I have run for 10+ years on Exchange. Xeams is great, and we fit in the constraints of the free version.

As I perused the Proxmox documentation, it does seem quite complex to configure. I spotted the port 26 thing and was not able to find why this was necessary. I run Xeams on a VM with 2 NICs, one used to send and receive mail from the Internet, the other to send and receive with Exchange. This works very nicely, but seems to be tricky to replicate with Proxmox. I also use Smart Host with Xeams, which is very easy to configure (just 4 fields to complete). I think for now I will stick with what I have, but will continue to keep an eye on Proxmox.
 
I spotted the port 26 thing and was not able to find why this was necessary. I run Xeams on a VM with 2 NICs, one used to send and receive mail from the Internet, the other to send and receive with Exchange.
the 2 ports are simply "necessary" to do the splitting between inbound and outbound mail on a port basis instead of an IP basis - as it's probably more common to only have one address on a server - you can easily change this to listen to different IPs for the same thing - you just need to adapt the master.cf.in template:
https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_template_engine
 
the 2 ports are simply "necessary" to do the splitting between inbound and outbound mail on a port basis instead of an IP basis - as it's probably more common to only have one address on a server - you can easily change this to listen to different IPs for the same thing - you just need to adapt the master.cf.in template:
https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_template_engine
I'm not a fan of config files. I think the way that Xeams does this is much more convenient!
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!