Steve Campbell said the following on 6/23/06 1:42 AM:
I'm getting the feeling that I am not using sendmail properly with regards to
mail accounts. Right now, whenever I need a new mail account, I just create a
new user on the box. Imap and pop accounts are then available when needed. I
dont add anything to the access files for users. For now, I just use the access
files for spam, blocking IPs, and the like.
Actually no, on the primary you are doing that right. It's me who
wrongly assumed that you already have all valid mail boxes listed in
your access database.
I primarily deal with non-standard sendmail setups hosting virtual
domains (e.g. multiple mailboxes and multiple domains per single user)
via local delivery agent (LDA) like procmail and maildrop, where
sendmail acts as a middleman between the sender and the LDA.
For your standard sendmail setup (i.e. one mailbox per user and no LDA)
on your primary MX you don't really need that list in your access.db.
Sendmail already knows how to deal with non-deliverable messages and
effectively rejects them before entering the queue.
1. Sender <=> Primary MTA -> Mailbox
On your secondary MX however, the situation is quite similar to my
virtual domain setup. Here's what your delivery chain looks like:
2. Sender <=> Secondary MTA <=> Primary MTA -> Mailbox
and here's mine:
3. Sender <=> Primary MTA <=> LDA -> Mailbox
In both cases (#2 and #3) there's one middleman - your secondary MTA or
my primary MTA. I have also longer delivery chain with two middlemans in
case mail comes in through my secondary:
4. Sender <=> Secondary MTA <=> Primary MTA <=> LDA -> Mailbox
In all of the above scenarios, leaving at least one middleman with no
clue about the destination end point what's valid and what not, creates
a gap which depending on the mail volume (or a dictionary attack for
instance) could quickly get filled with useless junk floating around.
For example, some years ago the Primary MTA for case #3 was initially
set up to accept mail for all mailboxes within all locally hosted
domains, and the rejecting was left to the LDA. This resulted in so big
queues full of useless and undeliverable bounces, so most of the mail
server resources were going for handling junk.
You could deliver the primary's access database to the secondary somehow
(via scp/rsync, ftp, etc. like in every 5 minutes or so, or just when
your primary access database gets updated, e.g. when you add a new
mailbox) and merge both access files before building the access.db. Thus
the secondary MX will always have all the information needed to reject
mail coming to non-existing recipients for both of your domains.
My paragraph above sort of explains why this won't work, since my access file
doesn't contain much. I'll look and see what it has, though, and maybe I can do
something with it.
Here's what my access DB entries look like:
domain1.com ERROR:5.1.1:"550 User unknown"
[EMAIL PROTECTED] OK
[EMAIL PROTECTED] OK
...
Entries could be prefixed with "To:" if you like (check the sendmail's
cf/README for details), but without that it also should work fair enough.
You might need to write a little script that takes all user accounts
(i.e. valid mailboxes) from your primary, creates a similarly formatted
list and pushes that to the secondary when needed. Sendmail does not
need to be restarted on each access DB update, it will pick up the
changes right after you "makemap" the access.db.
I kept wondering why everyone kept saying I didn't need MD, and now I see why.
I'll have to rethink my entire access scheme. At the moment, all mailboxes for a
domain are on the primary MX. If mail goes to the backup MX, it gets relayed,
but only because I relay the entire domain to the where the mailboxes are (the
primary MX for the domain).
MIMEDefang is an excellent piece of software. It can do anti-virus (via
third party virus scanners) and anti-spam (SpamAssassin) content checks.
It can reject after the SMTP data phase leaving the unpleasant work of
generating and sending bounces to the remote parties, which leads to
shorter mail spools. It's very customizable. It's efficient, ..., ...
I have several mail filtering machines (just about to add the next one)
dedicated to run only MIMEDefang and its dependencies, Clamav and a
home-grown greylist. I have another bunch of mail servers with sendmail
connected to these mail filters over TCP sockets, and the entire thing
works very well.
Regards,
Atanas
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID. You may ignore it.
Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang