From: Take on
Hello!

I've been trying to figure out the best way to drop/sort spam with
virtual users. All documentation I could find didn't fit to our virtual
configuration and I'm a bit confused what's the best way to drop spam.

Our setup is postfix+cyrus-imapd+spamassassin. Users have access to
sieve via roundcube plugin and we'd like to keep sieve out of this anyways.

The goal is to apply an filter based on SA's score, so that if the score
is > 10 drop the mail and if it's less than 10 but still spam, deliver
it to user/myser/INBOX.Junk. The latter is optional step, main priority
is to drop "certain spam" (score over 10) so that user won't ever see it.

Currently mail goes trough spamassassin (smtp content-filter) and
virtual-delivery goes trough cyrus lmtp. I was wondering if I could
create another content-filter for lmtp at master.cf (lmtp -o
content_filter=maildrop) and drop/sort junk via that. May be that this
approach is just plain stupid and I didn't get it to work anyways.

The another approach which came to mind was to use maildrop as an
virtual_transport and trigger cyrdeliver from maildrop, but didn't have
the time to try this one out. Maybe procmail would do better in this
scenario, but I'm not sure.

Besides the actual goal I'm interested about the efficiency with each
method. I'd like to maintain lmtp-like delivery so that postfix doesn't
have to spawn processes for each and every mail going trough.

Any help is greatly appreciated. Thank you in advance.

--
Take

From: Roman Medina-Heigl Hernandez on
Hello,

I have a similar setup. What I do is using sieve. My script for mailbox
creation also includes a small sieve filter setup, so every mailbox has its
own filter. So Postfix setup (with spamassasin) adds X-Spam-* headers and
the user decides based on that headers.

You have an extra advantage with this method: users may choose to edit
his/her filter so he/she could exactly decide whether he/she want junk mail
to be dropped, moved to a spam-folder, and the score threshold too.
Squirrelmail has an easy plug-in for managing sieve filter in a simple way,
including a special rule for managing spam.

Hope it helps.

Cheers,
-Roman

Take escribi�:
> Hello!
>
> I've been trying to figure out the best way to drop/sort spam with
> virtual users. All documentation I could find didn't fit to our virtual
> configuration and I'm a bit confused what's the best way to drop spam.
>
> Our setup is postfix+cyrus-imapd+spamassassin. Users have access to
> sieve via roundcube plugin and we'd like to keep sieve out of this anyways.
>
> The goal is to apply an filter based on SA's score, so that if the score
> is > 10 drop the mail and if it's less than 10 but still spam, deliver
> it to user/myser/INBOX.Junk. The latter is optional step, main priority
> is to drop "certain spam" (score over 10) so that user won't ever see it.
>
> Currently mail goes trough spamassassin (smtp content-filter) and
> virtual-delivery goes trough cyrus lmtp. I was wondering if I could
> create another content-filter for lmtp at master.cf (lmtp -o
> content_filter=maildrop) and drop/sort junk via that. May be that this
> approach is just plain stupid and I didn't get it to work anyways.
>
> The another approach which came to mind was to use maildrop as an
> virtual_transport and trigger cyrdeliver from maildrop, but didn't have
> the time to try this one out. Maybe procmail would do better in this
> scenario, but I'm not sure.
>
> Besides the actual goal I'm interested about the efficiency with each
> method. I'd like to maintain lmtp-like delivery so that postfix doesn't
> have to spawn processes for each and every mail going trough.
>
> Any help is greatly appreciated. Thank you in advance.
>

From: Take on
On 05/12/2010 11:39 AM, Roman Medina-Heigl Hernandez wrote:
> I have a similar setup. What I do is using sieve. My script for mailbox

> You have an extra advantage with this method: users may choose to edit
> his/her filter so he/she could exactly decide whether he/she want junk mail
> to be dropped, moved to a spam-folder, and the score threshold too.

This is disadvantage in our case. We currently have spam filtering set
up like this, and it's of course working like it should. But now, since
our users aren't that technically advanced, it happens almost daily
basis that someone messes around with the filter rules via
managesieve-plugin on roundcube and destroys the spam-adjustment as well.

Unfortunately those clueless users are the same people who spread their
address to newsletters, questionnaires etc, so they receive most spam as
well.

This is why we'd need a way to do the rough clean before any user has
anything to say about that. If you give the user an possibility to shoot
him/herself into the foot they'll pull the trigger immediately.

So, thank you for your reply, but that's not the solution we're after.

--
Take

From: Dennis Guhl on
On Wed, May 12, 2010 at 02:19:06PM +0300, Take wrote:
> On 05/12/2010 11:39 AM, Roman Medina-Heigl Hernandez wrote:
> > I have a similar setup. What I do is using sieve. My script for mailbox
>
> > You have an extra advantage with this method: users may choose to edit
> > his/her filter so he/she could exactly decide whether he/she want junk mail
> > to be dropped, moved to a spam-folder, and the score threshold too.
>
> This is disadvantage in our case. We currently have spam filtering set
> up like this, and it's of course working like it should. But now, since
> our users aren't that technically advanced, it happens almost daily
> basis that someone messes around with the filter rules via
> managesieve-plugin on roundcube and destroys the spam-adjustment as well.
>
> Unfortunately those clueless users are the same people who spread their
> address to newsletters, questionnaires etc, so they receive most spam as
> well.
>
> This is why we'd need a way to do the rough clean before any user has
> anything to say about that. If you give the user an possibility to shoot
> him/herself into the foot they'll pull the trigger immediately.

I don't know if cyrus can do something similar, but I think you want
something like sieve_before in Dovecot:

http://wiki.dovecot.org/LDA/Sieve/Dovecot#Executing_Multiple_Scripts_Sequentially

> So, thank you for your reply, but that's not the solution we're after.

Dennis

From: Take on
On 05/12/2010 06:55 PM, Dennis Guhl wrote:
> I don't know if cyrus can do something similar, but I think you want
> something like sieve_before in Dovecot:

I wish it could, but it can't. I found this as well, but change to
dovecot isn't something we'd like to do. So this doesn't help either.

Thanks anyway.

--
Take