Due to PCI-DSS, we are required to disable plaintext authentication. We've achieved this by encapsulating communications between our mail server and clients with TLS on port 465.
The problem lies in that port 25 must remain open and unencrypted for us to receive email from the internet, but should not allow authentication.
I've tried disabling the AUTH command, but that breaks authentication on port 465, too.
Is there a mail server or proxy that will allow separate configuration for port 25 and 465, such that authentication is only available over a secure channel?
Also noteworthy: we are using MailEnable with stunnel in FIPS mode.
Update:
MailEnable supplied a patched SMTP executable that allowed me to configure via Windows' registry whether authorization is offered on each listening port. This solved my problem—hopefully, they will publish the patch as a hotfix.
Yes, postfix is perfectly capable of this.
Take a look at the Postfix HOWTO:
http://postfix.state-of-mind.de/patrick.koetter/smtpauth/
and particularly:
http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailclients.html
(those two pages are linked from the fairly extensive official Postfix docs page http://www.postfix.org/docs.html)
For my server, the configuration in
master.cf
looks like:And main.cf has a line like:
In this case, authentication is only turned on for the submission (587) and SMTPS (465) ports.
It seems that the Postfix’s option smtpd_tls_auth_only = yes is exactly what you search. It allows to use SMTP AUTH only when TLS is activated, which is only relevant on port 25 for your configuration.
http://www.postfix.org/SASL_README.html#id396969
http://www.postfix.org/postconf.5.html#smtpd_tls_auth_only
You can also do the following to only advertize tls on certain ports with exim4.
So only clients connecting from 192.168.40.5 and clients connecting through port 587 would be offered tls. As long as your auth setting are setup to require tls before advertise, only clients using port 587 with TLS would be able to use auth.
Exim lets you set:
on an authentication driver, so it's only advertised/available within TLS.
Exim is very frequently used as a frontend gateway between MS mail servers and the open Internet; LDAP integration letting you query AD for address verification, authentication, etc; decent integration into various malware detectors, etc.