On May 1, 2009, at 7:19 AM, Jorey Bump wrote:
Scott Haneda wrote, at 04/30/2009 10:11 PM:

What happens is, under heavy MTA load on port 25, I will run out of
connection slots on port 25.

Have you investigated the nature of this problem?

Thoroughly. My current email server lacks control, it is only recently we have even been given greylisting. Moving users to port 587 largely solved it, but issues still remain. It is just time for me to move on. I am at the whim of the developer, this is not a config file driven email server. Even mention of SPF on his mail list get you told to not talk about it. It is not an option, and while I personally do not intend to use SPF, I want options, which postfix has abound.

To be honest, I have received more education and support from you and a few other people on this list in a few days than the 10 years of using something else.

I do thank you all again, as well as those who make postfix what it is.

By moving users to 587, I do not care
about port 25 connection slots.  MTA's will try again later if busy.

You might be chasing a red herring. If your server is overloaded, there is a reason why, and there may be more effective remediation techniques
available. Improving your submission service is good, but it might not
deliver the performance payoff you're expecting.

You nailed it, there are indeed many more techniques for dealing with my issues. Manually scanning logs and putting IP ranges into a local DNS blacklist and manually creating rules that are not flexible in how they can match patterns is what hinders me for the most part.

What do you guys think?

My end goal here is to get this all working, and then change these ports to, for example, 25 -> 2525 and 587 -> 587587 unless there is some other convention. I am going to put a anti spam proxy in front of all this.

If you still have a heavy load, consider separating your MX entirely
from submission, using separate instances/machines. It's generally
easier to move the MX, since MUA configurations don't care about it.

I have this as a option from the beginning of setup. I was given a large enough IP allocation that I tend to give up an IP for each service, and create DNS records pointing to each IP. If I ever need to for example, most SMTP 587 to it's own machine, it is as simple as just setting up the software, remove the old IP from the old machine, and putting it into the new machine.

I use will use this when I migrate as well, not having to fiddle with DNS TTL's and some other ISP's that seem to cache DNS and not honor TTL's then becomes a non issue.

I just do not want to add too much to my learning curve, so first, get
postfix to where I understand it, then toggle the ports and put the
proxy in. It should blindly pass the traffic, I assume in much the same
way stunnel does.

I am open to any and all advice on this matter to make this work best.
I have a feeling later on down the road I will need to learn exactly
what things to disable in postfix, as it should not do any bouncing at all, anything that will lead to backsplatter, since I am putting a proxy
ahead of it.

FWIW, a poorly implemented proxy can do more harm than good. A lot of
sites just toss them in, and don't pay attention to finer details like
DNS settings and recipient validation.

I have spent the past few years looking at them and reading about them. Starting with the hardware driven devices like Barracuda. My main reason for not deploying as of yet was the only way to get user validation on my server was LDAP, which I could not ever get to work reliably. Maintaining a text file of users was an option, but at minutes to dump a list of users via AppleScript from the email server, I did not like that option.

I am settling in on ASSP, which seems to solve my needs, and provide everything I need. If it turns out I do not like it, the nice thing about a proxy is, you just turn it off, a quick change of port listeners in postfix, and I should be back up and running.

# server TLS parameters
smtpd_tls_key_file = /etc/ssl/yoshino.meidokon.net_key
smtpd_tls_cert_file = /etc/ssl/yoshino.meidokon.net_crt
smtpd_tls_auth_only = yes  <-- as mentioned, user can only auth on a
secure connection
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes

You have the two cert, ahhh, smtp*d*. Ok, I think I get it, that is for
MUA traffic, and you present them a cert authorization when they are
auth'ing.  So I can even use the current certs I have in place now?

These are for all client connections that use STARTTLS, not just MUAs.
The difference is that MTAs typically don't quit if they can't verify
the cert (check it against a root certificate store), so using a
self-signed cert is adequate.

It is increasingly harder to support MUAs with noncommercial certs,
however. You can get basic ones fairly cheaply, so I recommend it to
avoid annoying warnings to your users.

I plan on getting one from a good provider. I have seen too many cases where Safari balks at the 10.00 ones from GoDaddy, and it seems hit or miss as to which ones they supply that will be an issue. I do not mind paying a one time fee even if it is a little pricey, to gain reliability.

# client TLS parameters, forward mail via TLS if possible
smtp_tls_security_level = may

I had this one already I believe.

This is what you need for your server to connect *as a client* to other
MTAs, opportunistically using STARTTLS when offered.

In a previous sentence you used the word 'typically' in regards to if the MTA will quit or not on seeing a cert. What is the risk here? If I understand, this gives an opportunistic ability for MTA to MTA discussion to be secure, falling back on the old plain method if it is not available.

Is there really a lot of exploiting going on in-between one MTA and another? From what I can tell, this would boil down to a rogue person at some router between me and say, gmails servers, that wanted to intercept traffic. Just does not seem likely.

Just curious, if you do not have time to explore this side of the conversation, I understand.

The wrapper mode is probably a Outlook issue, or at least an older buggy MUA client issue? I do not have any easy access to Outlook. How do you
go about testing before deployment?

Don't set it up until you have everything else working properly (TLS,
submission, etc.). Then wait until you find a need for it. Normally, the
Postfix defaults in master.cf will suffice (assuming your distribution
hasn't fiddled with them).

Ok, sounds like a solid plan. I mostly am supporting Mac users, and can easily mimic the desktop clients they are using. On the windows side, any open client should for the connection level, be able to be tested on the Mac. As far as I know, this leaves me with Outlook.

There are countless versions of Outlook, I guess I will have to track down a PC I can use, or a friend who can let me remote into one.

smtp_tls_session_cache_database  =
btree:$data_directory/smtp_tls_session_cache

Keep if you need it.

I wish I knew where I picked up this setting. Reading the docs at ( http://www.postfix.org/postconf.5.html ) does not lead me to an answer as to whether I need it or not. Where can I find out more about this and what the pros and cons are?

smtpd_sasl_security_options      = noanonymous

Change to noanonymous, noplaintext if you don't want passwords sent in
the clear.

If I set this to noanonymous, noplaintext to confirm, if any of my current users are using an authenticated plain text login method, they would fail to login?

This then gets my phone ringing, where I can help them make the changes to either use a non plain text login method, with auth, or use a plain style login with crypto. I think I have that correct.

smtpd_tls_ask_ccert              = yes

Why?

I wish I knew, removed, letting it use default of no.

smtpd_tls_session_cache_database =
btree:$data_directory/smtpd_tls_session_cache

Keep if you need it.

Same here as the other cache entry, not able to really find why I want it or do not want it for my configuration.

tls_random_source                = dev:/dev/urandom

Probably the default.

My default as per postconf -d is empty.

It's generally a good thing, because /dev/urandom
is nonblocking. Some systems might use /dev/random, which blocks and can
hurt performance in low entropy environments (opinion on security
implications is mixed).

That exactly why I chose this one, urandom, I read the wiki page on it, and though there is less entropy than /dev/random I liked the fact that calls were not blocked.

submission     inet      n         -         n         -
-         smtpd
    -o smtpd_tls_security_level=may
    -o smtpd_tls_auth_only=no
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated

IMHO, too weak for port 587.

Can we explore your HO on this. I have helped many a friend set up email for any number of the 9.99 a month ISP's out there, the are all offering normal 25, some alt submission port, and some SSL port as well. I am yet to see any particular mandate that the submission port be crypto mandated. Not that I want to just follow the examples set by others, as often is the case, they are "doing it wrong" anyway.

I am just not seeing why a user can not auth with no crypto. Or, are you taking the stance that users really do not know about this stuff, and it would be best if you protect their actions on their behalf?

I certainly can appreciate that. Having to deal with hundreds of iPhone users, and desktop users, when I toggle this switch may prove less than fun. Since my old server does not support SSL/TLS, it is not like I can send an email out, tell them to switch, and then mass move everyone to postfix. This is going to be a throw the switch, and start answering phone calls.

I do really like the idea of all users being secure. Perhaps I will set up a new MX, run the old and the new at the same time, and migrate one domain at a time, that would remove the "throw the switch" support burden.

Not really liking the idea of using a new domain for setting up the postifx server. I am pretty sure I can not do this in the same domain, as the second I add in a MX pointing to the new postfix server, that is going to break everything.

465            inet      n         -         n         -
-         smtpd
    -o smtpd_tls_wrappermode=yes
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated

Don't use smtps port 465 unless you need it.

Ok, I am going to comment that out, get my hands on as many email clients as I can, and start running some tests.

Here's an example from one of my servers:

submission inet n       -       n       -       -       smtpd
 -o smtpd_tls_security_level=encrypt
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

smtps     inet  n       -       n       -       -       smtpd
 -o smtpd_tls_wrappermode=yes
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

What specifically about smtps was it that you ended up determining you needed it?

I can not thank you enough for all your time.  Have a good weekend.
--
Scott * If you contact me off list replace talklists@ with scott@ *

Reply via email to