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
