amavis na gateway

Tomas Stehlik stehlik na oaza-net.cz
Úterý Červenec 31 17:34:39 CEST 2001


Dobry den,

mam postu pro domenu smerovanou na stroj ve vnitrni siti (pres
mailertable). Funguje to ok, ale chtel bych kontrolovat postu Amavisem.
Pro lokalni uzivatele (na gateway) kontroluje bez problemu, horsi je to
pro maily, ktere by se mely predavat na stroj uvnitr.

Podle FAQ k Amavisu jsem upravil mailertable:

domena.cz       procmail:/etc/procmailrcs/virusscan

a obsah /etc/procmailrcs/virusscan:

:0      # forward mail for domain.com
| /usr/sbin/scanmails $1 $2 vnitrnistroj.domena.cz

DNS jsou v poradku, takze by mel mail dorazit. Veskera posta ale konci
ve slozce /var/spool/mail/root a neposila se dale. Jeste jsem zkusil
upravit scanmails podle FAQ >>>

    * find the line "echo No virus found - good >> ${tmpdir}/logfile" in
      /usr/sbin/scanmails and add the following after the line:

      # cut off old domainname from name and add other mailserver+domain
      # user na domain.com --> user na mailserver.domain.com

      OUT=`echo $2 | cut -d "@" -f 1`
      NAME=`echo $OUT@[$3]`

      # the program 'downcase' just translates everything to lower case
      # letters
      # (Memo: (C. Bricart):  may be just: "tr '[:upper:]' '[:lower:]'")

      USER=`/usr/bin/downcase $OUT`

      # If it is a local receipient, then deliver mail directly
      # This part should be changed to gdb-routines
      # as the administrator then has not to change source code to add
      # new users...
      # Note: The distinction for local users depends to my local
      #       configuration and should not be necessary for ordinary
      #       use ...

      if [ "x${deliver}" != "x" ] && [ -x ${deliver} ] ; then
        if [ $USER = "user.local.1" ] ; then
          ${deliver}  -Y -a $1 -d localuser1 <${tmpdir}/receivedmail
        elif [ $USER = "user.local.2" ] ; then
          ${deliver}  -Y -a $1 -d localuser2 <${tmpdir}/receivedmail
        else
          # not local user -> send to other mailserver...
          /usr/sbin/sendmail -f $1 -F$1  $NAME  <${tmpdir}/receivedmail
        fi
      else
        # now proceed with the original script ...
        echo "WARNING! No local delivery program available." | log_error

misto /usr/bin/downcase $OUT jsem pouzil: tr '[:upper:]' '[:lower:]'
$OUT




Chci se zeptat chodi to nekomu? Myslim si, ze to bude nastavenim
scanmails....

Nejsem zadnym odbornikem na procmail, ale slo by udelat aby se
automaticky (jeste pred antivirem) vyhazovali maily s prilohami urcitych
koncovek (.vbs,.js,...) ??


Diky za pomoc


Tomas Stehlik


Další informace o konferenci Sendmail