Re: [exim] [Patch supplied] Exim enhancement request.

2006-02-24 Thread Philip Hazel
On Thu, 23 Feb 2006, Dennis Davis wrote:

 I'd like to request an additional private option --
 force_local_authenticated -- for the SMTP transport.  This option
 will be immediately useful in integrating exim with the Cyrus IMAP
 server and may be of more general use.

I'm waiting to see if any Cyrus experts jump in here to comment on this, 
but on the face if it, your patch seems a perfectly reasonable one.

-- 
Philip HazelUniversity of Cambridge Computing Service
Get the Exim 4 book:http://www.uit.co.uk/exim-book

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


Re: Re: [exim] Exim: smart_route / routing based on From:

2006-02-24 Thread Phil Pennock
On 2006-02-24 at 08:18 +0100, [EMAIL PROTECTED] wrote:
 My config now looks like:

 addresslist senders_to_xyz = [EMAIL PROTECTED] : [EMAIL PROTECTED]

 smart_route_xyz:
condition = ${if match_address{${address:$h_from}}{+senders_to_xyz} 
 {yes}{no}}
driver = manualroute
transport = remote_smtp
route_list = * mailserverA

 Exim does send Mails but the smart_route´s do not work; instead I see the 
 following exim´s Logfile:
 
 2006-02-24 08:13:51 1FCX9D-0004nP-9U = [EMAIL PROTECTED] U=ops P=local S=359
 2006-02-24 08:13:51 1FCX9D-0004nP-9U failed to expand condition ${if 
 match_address{${address:$h_from}}{+senders_to_xyz} {yes}{no}} for 
 smart_route_xyz router: missing 2nd string in {} after match_address
 2006-02-24 08:13:51 1FCX9D-0004nP-9U = [EMAIL PROTECTED] R=smart_route 
 T=remote_smtp H=mailserverB 
 2006-02-24 08:13:51 1FCX9D-0004nP-9U Completed

I might need more coffee, but that config looks fine to me.

The best I can think of is that your real config has a spelling
mistake, so that you spell senders_to_xyz one way in the addresslist and
the other way in the condition, so that an empty addresslist is being
filled in.

If those are both spelled the same, with whatever name you're using
instead of senders_to_xyz, then what version of Exim are you using?

match_address was added in Exim 4.33, so you need to be running at least
that.

Erk!  Looking at the ChangeLog for Exim 4.60, you definitely want to
upgrade to that if you're using an older version, because of a possible
crash bug (but without re-checking the docs, I think that a bare
left-hand-side in From: will have been qualified first, so you might be
safe.  Better to update).
-- 
I am keeping international relations on a peaceable footing.
You are biding your time before acting.
He is coddling tyrants.
 -- Roger BW on topic of verb conjugation

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


Re: [exim] [Patch supplied] Exim enhancement request.

2006-02-24 Thread Phil Pennock
On 2006-02-23 at 14:52 +, Dennis Davis wrote:
 Anyone should feel free to shoot my ideas down in flames if they can
 think of a better way of doing the following.

Not in flames; the Exim stuff is useful, I can't think of a way to do it
without modifying either Exim or Cyrus and your way works.  But I'm not
sure if you've thought of a potentially nasty side-effect of doing it
without Cyrus knowing about it.

 I'd like to request an additional private option --
 force_local_authenticated

That part's good and generally useful for Exim, but what you're doing
with it seems dangerous, unless I'm misunderstanding.

Beware that there's a lot of personal opinion below, as this is a
judgement call (which you're obviously free to ignore, but please do
think about the points).  Sorry about all the I/me/yada.

 cyrus_ltmp_plus_something:

   force_local_authenticated = true
   authenticated_sender = $local_part

So Exim will authenticate as the user and so allow delivery to any
folder which the user can write to?

That means that _anyone_ can send email to D.H.Davis+Received (for
instance) and you'll never see it, but in the event of a legal dispute
they could claim that you must have seen it and read it.

Is this just not a concern in your set-up?  It makes me nervous, but to
each their own and my needs aren't yours.  I could just be
misunderstanding; I just want to make sure that you've thought this
through (sorry if this is patronising).

My work set-up is closest to the environment you have, I think; I
suspect that our legal counsel would scream blue murder if I let anyone
on the Internet control which of _any_ of her folders a mail from them
was delivered to.  (That's not a complaint; our bedrijfsjurist (legal
counsel) just tends to think through to consequences more than the users
who go ooh shiny and stop thinking).

I'd be more inclined to hack Cyrus to have a new option, letting an
unauthenticated user use the rcpt+folder delivery to any sub-folder of
rcpt's INBOX _IF_ that folder is on rcpt's subscription list.  Even
better would be to allow those knowledgeable enough to turn it on with
an ANNOTATEMORE attribute on their INBOX folder.  It might be elitist,
but I strongly suspect that people clueful enough to use +ext and want
direct-to-folder delivery are capable of speaking raw IMAP to turn it
on, if their client doesn't support ANNOTATEMORE.

If you want me to provide a Cyrus patch (money where my mouth is), I can
take a look this weekend.


I didn't respond immediately because I needed to think it through,
because I use a somewhat different set-up to achieve the same thing at
home.  For user-controllable de-multiplexing, my set-up doesn't scale
beyond household level, because it relies upon an entire mail-domain
with the people using the service able to choose what should happen to
any mail in that domain.  The same Exim/Cyrus set-up is used at work,
but with the ACLs not granting that user control, so it just handles
admin-created shared folders.

I'll explain my set-up both because it might be useful for thinking from
a different angle and because my wife is happy using it with
Thunderbird, so it's something which a general userbase can understand.

The ISP[1] I use supplies all left-hand-sides @accountname.isp to me; I
use careful group membership with Exim and Cyrus to let Exim see which
shared folders exist and deliver straight to the shared folder if it
exists, or to a last-resort bucket otherwise.  (We don't use dedicated
folders for pizza delivery orders, but we do use a pizza-co@ LHS so that
we can see who leaks addresses to spammers.)  This works well enough
that my less-technical wife is happy using it with Thunderbird.  At
work, something similar is used but users don't have the ability to
create or delete folders; it just handles those shared folders the
mail-admin create for staff.

I'm happy to supply Exim/Cyrus configs and details; the only caveat is
to make sure that no user can delete the last-resort folder, because an
accidental GUI mis-click moving your last-resort folder to become a
child of another folder will result in your system bouncing mail.
Received enlightentment the hard way.

[1] full disclosure: I work for that ISP, *cough* often dealing with the
SMTP/POP3 mail-systems; but I use IMAP at home.
-- 
I am keeping international relations on a peaceable footing.
You are biding your time before acting.
He is coddling tyrants.
 -- Roger BW on topic of verb conjugation

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


Re: [exim] [Patch supplied] Exim enhancement request.

2006-02-24 Thread Tony Finch
On Fri, 24 Feb 2006, Phil Pennock wrote:

 I'd be more inclined to hack Cyrus to have a new option, letting an
 unauthenticated user use the rcpt+folder delivery to any sub-folder of
 rcpt's INBOX _IF_ that folder is on rcpt's subscription list.  Even
 better would be to allow those knowledgeable enough to turn it on with
 an ANNOTATEMORE attribute on their INBOX folder.  It might be elitist,
 but I strongly suspect that people clueful enough to use +ext and want
 direct-to-folder delivery are capable of speaking raw IMAP to turn it
 on, if their client doesn't support ANNOTATEMORE.

Doesn't Cyrus's sieve subaddress facility handle this already? We do
unauthenticated delivery to Cyrus over LMTP and have unofficial support
for +subaddresses, which get delivered to the user's inbox unless they
have written appropriate Sieve code.

Tony.
-- 
[EMAIL PROTECTED]   [EMAIL PROTECTED]   http://dotat.at/   ${sg{\N${sg{\
N\}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}\
\N}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


Re: [exim] [Patch supplied] Exim enhancement request.

2006-02-24 Thread Phil Pennock
On 2006-02-24 at 11:41 +, Tony Finch wrote:
 Doesn't Cyrus's sieve subaddress facility handle this already? We do
 unauthenticated delivery to Cyrus over LMTP and have unofficial support
 for +subaddresses, which get delivered to the user's inbox unless they
 have written appropriate Sieve code.

Is that a generic case or an instance of writing a new Sieve rule for
each folder?  If the former, I'm interested; if the latter, I do it at
work.

The OP's issue was that he didn't want to be setting ACL entries for
each sub-folder; if setting an ACL is an issue, extra Sieve rules are
likely to be an issue too.

Cyrus supports +subaddress delivery to a sub-folder of INBOX called
subaddress, automatically, _if_ it has 'p' permission for the
authenticated user; unauthenticated LMTP needs to use the anyone
identifier.  If I deliver to LMTP (local socket) using a transport which
has rcpt_include_affixes set, then all that's needed is:

 tag SETACL subfoldername anyone p

in IMAP to allow the delivery to work.

The OP is wanting to not need to set the Post privilege by making Exim
authenticate as a client using the same credential Cyrus has, so that
all inbound email to user fred is authenticated as posted BY user fred.

That scenario worries me at several levels, but the lack of
mailbox-owner's control over which sub-folders a malicious Internet
denizen sends mail to is the scenario which comes to mind.

At least, that's my interpretation of the situation.  Dennis, if I've
got this wrong then sorry, and please correct me.
-- 
I am keeping international relations on a peaceable footing.
You are biding your time before acting.
He is coddling tyrants.
 -- Roger BW on topic of verb conjugation

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


Re: [exim] [Patch supplied] Exim enhancement request.

2006-02-24 Thread Tony Finch
On Fri, 24 Feb 2006, Phil Pennock wrote:
On 2006-02-24 at 11:41 +, Tony Finch wrote:

 We do unauthenticated delivery to Cyrus over LMTP and have unofficial
 support for +subaddresses, which get delivered to the user's inbox
 unless they have written appropriate Sieve code.

 Is that a generic case or an instance of writing a new Sieve rule for
 each folder?  If the former, I'm interested; if the latter, I do it at
 work.

You can do it as a general rule if you have a sufficiently studly sieve
implementation - it needs the variables extension.

Tony.
-- 
[EMAIL PROTECTED]   [EMAIL PROTECTED]   http://dotat.at/   ${sg{\N${sg{\
N\}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}\
\N}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


[OT] Sieve/Cyrus (was Re: [exim] [Patch supplied] Exim enhancement request.)

2006-02-24 Thread Phil Pennock
On 2006-02-24 at 13:21 +, Tony Finch wrote:
 You can do it as a general rule if you have a sufficiently studly sieve
 implementation - it needs the variables extension.

Since draft-ietf-sieve-variables-08.txt only defines scalar variables,
you're not going to be able to validate the sub-address against a
known-good list.  So it's probably safe if you map to INBOX.list.${1} or
whatever (especially if you check for . to prevent auto-filing to a
spam folder (not the same security risk)) and so better than the normal
behaviour, yes.  Quite tasty looking, in fact.

But the Cyrus auto stuff, which Dennis was invoking, doesn't insert that
extra hierarchical componenent and so the entire hierarchy under INBOX
(and Post-able by the recipient) is affected; that includes trash
folders, special action folders (auto-learn as spam/ham folders) and so
on.

Earlier today I updated the cmu.edu cyrus-imapd CVS check-out I have and
I'm not seeing support; do you have this support as a patch to Cyrus, or
to another Sieve implementation?  Any details available online?

Ta,
-- 
I am keeping international relations on a peaceable footing.
You are biding your time before acting.
He is coddling tyrants.
 -- Roger BW on topic of verb conjugation

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


Re: [OT] Sieve/Cyrus (was Re: [exim] [Patch supplied] Exim enhancement request.)

2006-02-24 Thread Tony Finch
On Fri, 24 Feb 2006, Phil Pennock wrote:

 Earlier today I updated the cmu.edu cyrus-imapd CVS check-out I have and
 I'm not seeing support; do you have this support as a patch to Cyrus, or
 to another Sieve implementation?  Any details available online?

We're still on Cyrus 2.1 owing to our vast improvements. I don't know of
the implementation status of the variables extension.

Tony.
-- 
[EMAIL PROTECTED]   [EMAIL PROTECTED]   http://dotat.at/   ${sg{\N${sg{\
N\}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}\
\N}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


Re: [exim] [Patch supplied] Exim enhancement request.

2006-02-24 Thread Dennis Davis
On Fri, 24 Feb 2006, Phil Pennock wrote:

 Date: Fri, 24 Feb 2006 14:02:12 +0100
 From: Phil Pennock [EMAIL PROTECTED]
 To: exim-users@exim.org
 Cc: Dennis Davis [EMAIL PROTECTED]
 Subject: Re: [exim] [Patch supplied] Exim enhancement request.

...

 The OP is wanting to not need to set the Post privilege by making
 Exim authenticate as a client using the same credential Cyrus has,
 so that all inbound email to user fred is authenticated as posted
 BY user fred.

 That scenario worries me at several levels, but the lack of
 mailbox-owner's control over which sub-folders a malicious
 Internet denizen sends mail to is the scenario which comes to
 mind.

 At least, that's my interpretation of the situation.  Dennis, if
 I've got this wrong then sorry, and please correct me.

I share your concerns.  The documentation for such a facility
would need to include phrases such as:

  This facility should be used with caution.  It certainly has the
  ability to bypass any access controls on a Cyrus IMAP server.

I'd only want to use this on a subset of mail folders.  I'll give
an example.  Institutions often set up generic contact addresses.
Making up some for this University, and the target mail folders
on a Cyrus IMAP server, we might have:

[EMAIL PROTECTED]  --  user.library-shared.holdings
[EMAIL PROTECTED]--  user.library-shared.survey
[EMAIL PROTECTED] --  user.library-shared.staff

ie the target mailboxes are subfolders of a pseudo-user,
library-shared.  The usual Cyrus access control mechanisms are
applied to each mail folder with one or more people being given
administrative rights.

(I'm sure this isn't the only way to set up shared folders on a
 Cyrus server and isn't necessarily the best.  However I've seen it
 done this way.  However I'm by no means a Cyrus expert.  So feel
 free to correct me on Cyrus matters.  Even though I suspect this
 mailing list might not be the best place to discuss these issues.)

Administrators of the above mail folders control access rights.
However they must ensure the anyone user has p (posting) rights
for mail to be delivered.

I was wondering if it was possible to get exim to force mail
delivery to the above folders via lmtp without the anyone user
having p rights.  Certainly administrators have mistakenly removed
this access, resulting in time[1] being spent moving messages from
the parent folder into the relevant subfolder.  This was the basis
for my original request.

[1] Fortunately not my time...
-- 
Dennis Davis, BUCS, University of Bath, Bath, BA2 7AY, UK
[EMAIL PROTECTED]   Phone: +44 1225 386101

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


[exim] spammers IP ban

2006-02-24 Thread Mathieu Roy
Hello,

I'm of the admins of Gna! (http://gna.org), a software development platform 
sponsored by the FSF France.

We have an antispam policy composed of DSNBL checks at SMTP time and 
spamassassin checks afterwards (tagging mails sent to users, redirecting 
spams to a dedicated spam list mails sent to mailing-lists, deleting such 
mails getting score higher to 13). 

I'd like to keep do IP bans for boxes that send us spam. For instance, to do 
such ban if we are in case of deny at SMTP time due to DNSBL or in a case 
of a mail that got a spamassassin score higher than 13.

This would be a short ban, for say one hour, just to make ineffective the 
spammer/virus that would have to find another @domain to spam at least for 
the next hour, without costing too much in case a legitate user was affected 
by this ban

Exim is using through xinetd, so xinetd could do the filtering by itself, 
provided we give to him appropriate IPs (drawback: it requires to restart 
xinetd each time we would like to update the list to get no_access taken into 
account; unless we somehow find a way to use the sensors mechanism for this 
purpose).

I've searched a bit on the internet, indeed in the Exim FAQ, but found nothing 
helpful to me. Did I miss something?

If not, any suggestions?

Regards, 


-- 
Mathieu Roy

  +-+
  | General Homepage:   http://yeupou.coleumes.org/ |
  | Computing Homepage: http://alberich.coleumes.org/   |
  | Not a native english speaker:   |
  | http://stock.coleumes.org/doc.php?i=/misc-files/flawed-english  |
  +-+


pgpugnPYLfKc1.pgp
Description: PGP signature
-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Re: [exim] spammers IP ban

2006-02-24 Thread Eric Fox
I do something similar to this.  When I've rejected a message as known
spam, a log entry is posted in maillog.  I then use logsurfer to monitor
maillog for these entries.  Logsurfer parses out the IP and passes it on
to a script that temporarily adds a blocking rule to the firewall, and
comes back a while later to remove the rule.

This could probably also be done from a router  transport combination as
well. I used logsurfer because I was already using it for other purposes.

---
  /\---/\  Eric J Fox
 /  o o  \ Small Business Computer Support
 \.\   /./ in the Phoenix Metropolitan Area
\@/http://www.bsdsystems.com/support/



On Fri, 24 Feb 2006, Mathieu Roy wrote:

 Hello,

 I'm of the admins of Gna! (http://gna.org), a software development platform
 sponsored by the FSF France.

 We have an antispam policy composed of DSNBL checks at SMTP time and
 spamassassin checks afterwards (tagging mails sent to users, redirecting
 spams to a dedicated spam list mails sent to mailing-lists, deleting such
 mails getting score higher to 13).

 I'd like to keep do IP bans for boxes that send us spam. For instance, to do
 such ban if we are in case of deny at SMTP time due to DNSBL or in a case
 of a mail that got a spamassassin score higher than 13.

 This would be a short ban, for say one hour, just to make ineffective the
 spammer/virus that would have to find another @domain to spam at least for
 the next hour, without costing too much in case a legitate user was affected
 by this ban

 Exim is using through xinetd, so xinetd could do the filtering by itself,
 provided we give to him appropriate IPs (drawback: it requires to restart
 xinetd each time we would like to update the list to get no_access taken into
 account; unless we somehow find a way to use the sensors mechanism for this
 purpose).

 I've searched a bit on the internet, indeed in the Exim FAQ, but found nothing
 helpful to me. Did I miss something?

 If not, any suggestions?

 Regards,


 --
 Mathieu Roy

   +-+
   | General Homepage:   http://yeupou.coleumes.org/ |
   | Computing Homepage: http://alberich.coleumes.org/   |
   | Not a native english speaker:   |
   | http://stock.coleumes.org/doc.php?i=/misc-files/flawed-english  |
   +-+


-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/


[exim] Authentication and Relaying

2006-02-24 Thread Christopher Molnar
I have tried to read the docs and find a good example, however I am  
at a loss. I have tried to set up the ability for authorized users to  
relay through our smtp server. Anytime a user tries to connect and  
login and send messages thorugh to a non-local hosted domain we get  
a 501 - Relay Denied. I would appreciate any help someone can give.   
From my config:



acl_check_rcpt:
  accept
hosts = :
accept authenticated = *



  accept
hosts = +relay_from_hosts
accept  authenticated = *

  accept
authenticated = *




begin authenticators

plain_saslauthd_server:
   driver = plaintext
   public_name = PLAIN
   server_condition = ${if saslauthd{{$2}{$3}}{1}{0}}
   server_set_id = $2
   server_prompts = :
   server_advertise_condition = yes
login_saslauthd_server:
   driver = plaintext
   public_name = LOGIN
   server_prompts = Username:: : Password::
   server_condition = ${if saslauthd{{$1}{$2}}{1}{0}}
   server_set_id = $1
   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
   .endif

plain:
  driver = plaintext
  public_name = PLAIN
.ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS
  client_send = ${if !eq{$tls_cipher}{}{\
 ^${extract{1}{::}\
   {${lookup{$host}lsearch*{CONFDIR/ 
passwd.client}{$value}fail}}}\

 ^${extract{2}{::}\
   {${lookup{$host}lsearch*{CONFDIR/ 
passwd.client}{$value}fail}}}\

   }fail}
.else
  client_send = ^${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/ 
passwd.client}{$value}fail}}}^${extract{2}{::}{${lookup

{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}
.endif

login:
  driver = plaintext
  public_name = LOGIN
.ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS
  client_send = ${if and{\
  {!eq{$tls_cipher}{}}\
  {!eq\
  {${lookup{$host}lsearch*{CONFDIR/ 
passwd.client}\

 {$value}fail}}\
  {}}\
 }\
  {}fail}\
 : ${extract{1}{::}\
{${lookup{$host}lsearch*{CONFDIR/ 
passwd.client}{$value}fail}}} \

 : ${extract{2}{::}\
 {${lookup{$host}lsearch*{CONFDIR/passwd.client} 
{$value}fail}}}


.else
  client_send = ${if !eq\
  {${lookup\
{$host}lsearch*{CONFDIR/passwd.client}\
{$value}fail}}\
  {}\
  {}fail}\
 : ${extract{1}{::}\
{${lookup{$host}lsearch*{CONFDIR/ 
passwd.client}{$value}fail}}} \

 : ${extract{2}{::}\
{${lookup{$host}lsearch*{CONFDIR/ 
passwd.client}{$value}fail}}}

.endif


--
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/

## Please use the Wiki with this list - http://www.exim.org/eximwiki/