Re: [Exim] How to restrict certain users to local delivery

トップ ページ
このメッセージを削除
このメッセージに返信
著者: Greg Ward
日付:  
To: Rick Byers
CC: exim-users
題目: Re: [Exim] How to restrict certain users to local delivery
On 12 November 2001, Rick Byers said:
> I'm trying to figure out a way to configure exim such that a certain user
> id can only send mail which is delivered locally. Specifically, I'm
> seeing a lot of abuse of CGI scripts to send spam. I'd like to prevent
> the userid that CGI scripts run as from sending mail that will leave my
> network.
>
> Any suggestions on how I could implement this?


You could add a condition to all of your routers that checks the UID of
the user calling exim. Something like this, perhaps, assuming your CGI
scripts all run as UID 123:

lookuphost:
driver = lookuphost
transport = remote_smtp
condition = ${if eq {$caller_uid}{123} {yes}{no}}

Obviously, RTFM on the "condition" option, string expansion, and the
$caller_uid variable. This is completely untested and I've never done
anything like this.

Caveats:
  * this will only affect people who run
      exim sucker@??? < spam.txt
    (or moral equivalent) from their CGI scripts.  Nothing
    is stopping them from connecting to localhost:25 and sending
    the spam that way, or directly to victim.com's MX, or to some
    convenient third-party open relay


  * so, the other half of the solution is a firewall/netfilter:
    you'll have to block your CGI scripts from connecting to
    any TCP port 25 in the universe (including your own!), or they'll
    just send their spam that way.  This most likely means blocking
    *all* processes on your web server from connecting to any
    port 25, unless you have a really fancy firewall that can
    talk to an identd server.  (Do such things even exist?)


Would love to hear the real experts pick holes in this...

        Greg
-- 
Greg Ward - software developer                gward@???
MEMS Exchange                            http://www.mems-exchange.org