Hi all, just posted this to trac, but thought I would send to the
list, apologies if it has already been addressed or implemented.

I did see http://mail.laconi.ca/pipermail/laconica-dev/2009-March/001046.html
but it seems to me that relying on the checks in maildaemon.php,
rather than dropping invalid recipient mail on the floor first, is
unnecessarily expensive. I understand that the idea is simply to
validate posts, but from a system usage and architecture viewpoint,
this should get done only after the MTA handles the email correctly.

Accepting all email for a domain has to be seen as something that will
affect availability, performance and security. Wildcarding all mail
for a domain and running it through a script will create performance
and availability issues, and will expose the system to attack. I think
the maildaemon.php script works well, but every mail sent to a
laconica server hits it with the commonly found *|maildaemon.php
/etc/aliases setup.

MTAs like postfix have very robust solutions to this if allowed to
work the way they are supposed to, by checking if we want to accept
mail for a recipient address, i.e. the made up email address.

Even with an average amount of spam, let alone an attack, performance
has to be affected.

I have a draft howto http://pbj.ca/postfix.html that properly rejects
invalid mails before they hit maildaemon.php, using postfix.

Example output from mail on my laconica instance:

$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.shellfusion.net.
Escape character is '^]'.
220 aurora.nearsourceit.com ESMTP Postfix
helo localhost
250 aurora.nearsourceit.com
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
telnet post ;)
.
250 2.0.0 Ok: queued as 2420613C41A
quit
221 2.0.0 Bye
Connection closed by foreign host.
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.shellfusion.net.
Escape character is '^]'.
220 aurora.nearsourceit.com ESMTP Postfix
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
550 5.1.1 <[email protected]>: Recipient address rejected: User
unknown in virtual mailbox table

I advise everyone to implement proper recipient checking using the
incomingemail data in their database with an MTA; maildaemon.php is
not a substitute for recipient checking.

Regards,

Stef

Stefan Caunter
_______________________________________________
Laconica-dev mailing list
[email protected]
http://mail.laconi.ca/mailman/listinfo/laconica-dev

Reply via email to