[exim-dev] [Bug 993] New: greylisting implementation

Top Page
Delete this message
Reply to this message
Author: George L Yermulnik
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 993] New: greylisting implementation
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=993
           Summary: greylisting implementation
           Product: Exim
           Version: N/A
          Platform: x86
        OS/Version: FreeBSD
            Status: NEW
          Severity: wishlist
          Priority: medium
         Component: ACLs
        AssignedTo: nigel@???
        ReportedBy: yz@???
                CC: exim-dev@???



Created an attachment (id=391)
--> (http://bugs.exim.org/attachment.cgi?id=391)
greylist implemetation

I've noticed exim has a bunch of different verification methods of incoming
mail such as DKIM, content scanning, SPF, SRS and so on. But it still has no
greylisting implementation, though this type of mail filtering is widely used,
at least here in Ukraine and Russia. My collegue once had made greylist module
that is now used by our ISP company to fight spam among other methods. So we've
decided it could be useful to wide community as a compiled in module. Code is
not pretty enough =) but it's a working example and can become a basis for
exim's implemetation.
For now it's used via dlfunc. It uses the same method of data storing as
callouts, retries and other exim's DBs, so it can be tydied by exim_tidydb once
it has compiled support for this type.
I'm attaching .c source and here's an example of usage in ACLs:

acl_check_rcpt:
  defer   log_message   = greylisted, try again later
          !senders      = : ^root@
          !acl          = acl_grey_list
...


acl_grey_list:

  defer   log_message   = greylisted, try again later
          !hosts        = 127.0.0.1 : +trusted_hosts :\
                          ^(relay|mail|mx|smtp) : *.google.com : *.yahoo.com
          # parameters: <key> <defer-timeout> <allow-timeout>
          # key           -- uniq db key for this sender
          # defer-timeout -- for how long we won't accept new senders with the
same key (seconds)
          # allow-timeout -- for how long we will accept this sender w/o
greylist verification (seconds)
          condition     = ${dlfunc{/usr/local/libexec/vc_grey.so}{greylist} \
                          {$sender_host_address,$sender_address}{240}{604800}}
          message       = Greylisting, please try again later


accept


--
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email