Ole Wolf <[EMAIL PROTECTED]> writes:
>>Well, yes. I just would call this a "domain blacklist" to distinguish
>>it from a simple "blacklist". This domain blacklist only contains
>>domain names such as hotmail.com. etc. The simple blacklist is the
>>TMDA blacklist which contains full addresses (i.e., [EMAIL PROTECTED]).
>
> So we're basically working with two blacklists, that is, one with wildcards,
> and another with specific email addresses?
>
> A TMDA wildcards blacklist, which is comparable to a somewhat flexible
> domain blacklist, could easily be used as a domain blacklist, couldn't it?
Well, sort of. It's just that this thread started with a discussion
about certain domains always being blacklisted (hotmail.com, yahoo.co*,
etc.). I was addressing that specific issue. The domain blacklist
could also have wildcards (e.g., yahoo.co*).
>> Also note that all whitelisted addresses must be accepted. For example,
> this
>> allows me to accept email from [EMAIL PROTECTED], irrespective of
> whether
>> his or her envelope domain and sender domain match.
>
> That's true. I missed that.
>
>> So how 'bout this?
>
> Looks fine!
>
> In my opinion, we should strive to use TMDA lists only, possibly using
> individual users' lists together with system-wide TMDA lists. I'd hate to
> have independent TMDA lists and MTA lists on my system; I'd prefer to have
> the MTA read everything from TMDA and not own any lists itself.
This is a complicated issue, actually. Whose TMDA blacklists and
whitelists should we use? For example, what if a user named "user1"
whitelisted [EMAIL PROTECTED], but another user named "user2"
blacklisted that same person?
This makes the logic more complicated, as a whole. We would have to use
user-specfic whitelists. The pseudo-code would then have to look
something like this (note that both "accept message" and "reject
message" cause all further processing to be skipped).
foreach <user>
if <message> is to <user> and <address> in ( <user's whitelist> )
accept message
endif
endforeach
##########
if <envelope-domain> != <sender-domain>
reject message
else if <envelope-domain> in ( <domain-blacklist> )
reject message
else
(perform system-specific testing, possibly including tests
via the user-specific blacklists)
if testing fails
reject message
else
accept message
endif
endif
In Courier, this problem is simplified somewhat, because it's possible
to run user-specific filtering that allows a message to a given user to
be rejected during the SMTP dialog. This filtering runs under the user
ID of the specific user, and hence, only his or her blacklist and
whitelist needs to be consulted. I need to investigate whether this
processing takes place in Courier before or after the system-wide
filtering that we've been talking about. If it takes place beforehand,
our system-wide filtering could be everything below the "##########"
line, above, and the user-specific processing could be this (in
this case, assume that "accept message" and "reject message" would
cause the global filtering to be bypassed):
if <address> is in my TMDA whitelist
accept message
else if <address> is in my TMDA blacklist
reject message
endif
# at this point, we exit, causing the centralized filtering to
# take place
But if it turns out that Courier runs the central filtering before the
user-specific filtering, this makes the logic more convoluted.
At any rate, this is rather complicated, especially if the MTA does not
allow user-specific message filtering during the SMTP dialog.
--
Lloyd Zusman
[EMAIL PROTECTED]
_____________________________________________
tmda-users mailing list ([EMAIL PROTECTED])
http://tmda.net/lists/listinfo/tmda-users