Mail relay ????? OFF

Moczik Gabor progzmaster at freemail.hu
Fri Mar 12 20:54:12 CET 2004


Tucsi wrote:
>   Azt kene megoldani hogy a ceges belsohalon levo linuxos
>   fileserverunk mondjuk 5 percenkent letoltene a szolgaltatotol az
>   emaileket spamszurne es az userek onnan tudnak letolteni az

Bocsi, de nincs kedvem maganba irni, es igy mas is latja milyen okos es 
szereny vagyok :-)

Akit nem erdekel: bocs, kicsit hosszu lesz.

Nekem van egy detto erre a celra valo osszeallitasom. Az altalam hasznalt 
programokkal, step-by-step leirom.
Szoval kell neked egy Fetchmail ami leszedi a levelekt, egy exim (MTA) ami 
tovabbitja az user-ek mailboxaba, egy POP3 vagy IMAP szerver (nekem 
Cyrus-IMAP) amire a felhasznalok kapcsolodni tudnak hogy elolvassak a 
leveleiket. Kell meg egy SpamAssassin, ami a spam szurest vegzi. Virus 
kereseshel exiscan, mailscanner, akarmi, ezt nem uzemeltem meg be, errol ne 
is kerdezz. Ja, Debian-t disztribet hasznalok.

Telepitsd fel a programokat! Elotte azert olvasd vegig :-)

A fetchmail-t beallitod hogy system-wide fetchmail daemon-kent fusson. Az 
/etc/fetchmailrc-be ilyen jellegu sorokat irsz:
poll freemail.hu proto POP3 user "progzmaster" pass "freemail_jelszo" to 
"gabesz"
poll freemail.hu proto POP3 user "anyuci" pass "anyu_jelszava" to "anyu"

A progzmaster at freemail.hu-ra erkezo leveleket a 'gabesz' nevu user 
postaladajaba dobalja. Az anyuci at freemail.hu-rol az 'anyu' nevu userebe.

Az eximet beallitod hogy a smarthost-ja legyen a szolgaltato smtp servere, 
vagy direkt internetes SMTP servernek. A spamassassin-hoz ezeket kell beletenni:

TRANSPORTS reszbe (valahova, sorrend nem lenyeg):
-----------------------------------------------------
# Spam Assassin
spamcheck:
     driver = pipe
     command = /usr/sbin/exim -i -oMr spam-scanned -f "${if eq 
{${sender_address}}{} {mailer-daemon} {${sender_address}} }" -- ${local_part}
     transport_filter = /usr/bin/spamc -u ${local_part}
     home_directory = "/tmp"
     current_directory = "/tmp"

     # must use a privileged user to set $received_protocol on the way back in!

     user = mail
     group = mail

     return_path_add = false
     log_output = true
     return_fail_output = true

     prefix =
     suffix =

--------------------------------------------------------------
DIRECTORS reszbe a 'real_local' (!!!) _utan_ (sorrend FONTOS):
--------------------------------------------------------------

# Spam Assassin
# Old router from dman, not needed anymore since we do it in local_scan
spamcheck_director:
     # do not use this director when verifying a local-part at SMTP-time
     no_verify

     # Don't check locally generated mails
     condition = "${if or { {def:h_X-Spam-Status:} {eq 
{$received_protocol}{spam-scanned}} {eq {$received_protocol}{local}} {eq 
{$sender_address_domain}{$qualify_domain}} {eq 
{${lookup{$sender_address}lsearch{/etc/exim/whitelist}{1}{0}}}{1} } } {0}{1} }"

     # Check locally generated mails too
     #condition = "${if or { {def:h_X-Spam-Status:} { 
eq{$received_protocol}{spam-scanned}} } {0}{1} }"

     driver = smartuser
     transport = spamcheck

------
  Ez mehet utana, a spam-ek kidobalasahoz kell.
------

central_filter:
     driver = forwardfile
     file = /etc/exim/central-filter
     pipe_transport = address_pipe
     user = $local_part
     no_verify
     filter
     allow_system_actions
     no_check_local_user


----------------------------------------------------
A cyrus-imahoz:
TRANSPORTS reszbe (valahova, sorrend nem lenyeg):
----------------------------------------------------

local_delivery_cyrus:
   driver = pipe
   command = "/usr/sbin/cyrdeliver $local_part"
   user = $local_part
   group = mail
   return_output
   log_output
   prefix = ""
   suffix = ""

----------------------------------------------------
DIRECTORS reszbe, a legvegere ('procmail' utan):
----------------------------------------------------
# This director matches local user mailboxes.

local_user_cyrus:
   driver = localuser
   transport = local_delivery_cyrus

------------------------------------
Letrehozol egy /etc/exim/central-filter file-t, es beleirod:

if $header_X-Spam-Flag contains "yes" or
    $header_X-Spam-Status contains "yes," or
    $header_X-MailScanner contains "Found to be infected"
then
   pipe "to-mailbox spam"
   finish
endif

-------------
Ez beteszi az user 'spam' nevu folder-ebe a spamnak minositett leveleket. 
Kezzel meg lehet nezni, es ha veletlenul nem spam, akkor elolvashato.

Ehhez kell a 'to-mailbox' nevu script, letrehozod a filet az /sr/local/bin 
alatt, chmod 755, chown root:users, a progi az alabbi:
#!/bin/sh

if [ -z "$1" ]; then
     echo "warning: mailbox not specified"
fi

mailbox=$1

if [ -n "$mailbox" ]; then
     options="-m $mailbox"
fi

sed -ne "2~1p" | /usr/sbin/cyrdeliver -a $LOCAL_PART $options $LOCAL_PART


-------------

Felteszed a Cyrus-IMAP-ot. Elolvasod a manualjat, meg a howto-kat, es az 
alapjan letrehozod a juzerek mailboxait. A juzereknek csinalj egy 'spam' 
nevu foldert az INBOX alatt, de ezt megteheted ugy is, hogy a mukodo 
cyrus-imap szerverre csatlakozol egy geprol, mittomen pl. netscape mail-al, 
es ott 'new folder...'. Ha nem lehet csatlakozni, akkor nem megy a imapd, 
vagy nincs joga az usernek a sajat mailboxahoz (konnyen lehet ilyet csinalni...)

KESZ.

Talan semmit nem hagytam ki. Ha valami kerdes van, irj nyugodtan, nalam ez 
mukodik, kesz konfigot is kuldhetek ha feladtad vagy nem latod at.
Ezt a levelet is ezen a rendszeren keresztul kaptad meg.

-- 
((( Móczik Gábor )))--((( hu <- DOT <- freemail <- AT <- progzmaster )))
((( Debian unstable )))-((( Kernel 2.4.20 )))-((( Celeron466 / 128Mb )))
((( -->  Vigyázat! Ön súlyos közlekedési balesetet szenvedett.   <-- )))
((( -->          Kívánja, hogy a légzsák felfúvódjon?            <-- )))



More information about the Elektro mailing list