PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix: Spamd vor(!) Viren-Scanner ausführen



ThyMaster
20.09.04, 15:35
Hi,

bei mir läuft Postfix 1.x.

Alle eingehenden Mails werden sowohl durch einen Viren-Scanner (amavis + F-Prot) als auch durch einen Spamfilter (spamd/spamassassin) gejagt, bevor sie zugestellt werden.

Da leider auch sehr viele Spam-Mails virenverseucht sind, würde ich gerne erst den Spamfilter und dannden Viren-Scanner über die Mail laufen lassen.

Hintergrund: Bei eindeutigem Spam, werden die Mails sofort nach /dev/null ins Nirvana geschickt und würden damit nicht noch einmal durch den (dann überflüssigen) Virentest laufen.

Leider habe ich in der master.cf von Postfix keine Möglichkeit gesehen, diese Dienste in der Abfolge zu beeinflussen.

Meine Frage:
Geht's trotzdem? Und wenn ja, wie?

Gruß
Falko

Terran Marine
20.09.04, 15:54
Leider habe ich in der master.cf von Postfix keine Möglichkeit gesehen, diese Dienste in der Abfolge zu beeinflussen.


Sollte auf jeden Fall gehen,

master.cf posten und erklären (sofern nicht selbsterklärend), wie der Spamfilter und der Virenscanner ins System eingebunden sind.

Gruß
Terran

ThyMaster
21.09.04, 07:24
Na, das sollte doch kein Problem sein ;)

# ================================================== ========================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (50)
# ================================================== ========================
smtp inet n - y - - smtpd
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628 inet n - n - - qmqpd
pickup fifo n - y 60 1 pickup
cleanup unix n - y - 0 cleanup
qmgr fifo n - y 300 1 qmgr
#qmgr fifo n - n 300 1 nqmgr
#tlsmgr fifo - - n 300 1 tlsmgr
rewrite unix - - y - - trivial-rewrite
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
flush unix n - n 1000? 0 flush
smtp unix - - y - - smtp
showq unix n - y - - showq
error unix - - y - - error
local unix - n n - - local
virtual unix - n y - - virtual
lmtp unix - - y - - lmtp
localhost:10025 inet n - y - - smtpd -o content_filter=
vscan unix - n n - 10 user=vscan argv=/usr/sbin/amavis ${sender} ${recipient}
#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
# The Cyrus deliver program has changed incompatibly.
#
cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -m ${extension} ${user}
flags= user=cyrus argv=/usr/lib/cyrus/bin/deliver -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
vscan unix - n n - 10 pipe
user=vscan argv=/usr/sbin/amavis ${sender} ${recipient}
procmail unix - n n - - pipe
flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient}

Zur Erklärung:
Der Eintrag "vscan" übergibt die Mail an amavis, der wiederum den Virentest durchführt, um die Mail dann an Postfix zur weiteren Bearbeitung zurückgibt.

Genauso verhält es sich mit dem Eintrag "localhost". (dahinter steckt der spamd, Antispam Dienst)

Gruß
Falko

Terran Marine
21.09.04, 13:58
Zur Erklärung:
Der Eintrag "vscan" übergibt die Mail an amavis, der wiederum den Virentest durchführt, um die Mail dann an Postfix zur weiteren Bearbeitung zurückgibt.

Genauso verhält es sich mit dem Eintrag "localhost". (dahinter steckt der spamd, Antispam Dienst)


Poste nochmal deine main.cf, ich gehe mal davon aus, das dein content-filter auf vscan verweist.

Dies musst du im Grunde nur umdrehen, aber poste erstmal, wir kriegen das schon.

Gruß
Terran

ThyMaster
22.09.04, 16:12
So, nu' endlich.

Hier die main.cf
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix

myhostname = my.domain.com
mydestination = $myhostname, localhost.$mydomain, my.domain.com
mynetworks = 1.2.3.4/12, 127.0.0.0/8

in_flow_delay = 1s

default_destination_concurrency_limit = 10

debug_peer_level = 2
debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/sbin/sendmail
mailq_path = /usr/bin/mailq

setgid_group = maildrop

manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES

# Some ISPs do not accept mail from DynIP (like me)
# Use transport to relay only mail to such ISPs (like aol.com)
# -or-
# use relayhost to relay all outgoing mail
#
relayhost = smtp.blabla.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_maps = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical

defer_transports =
disable_dns_lookups = no

mailbox_command = /usr/bin/procmail
home_mailbox = Maildir/

smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtpd_helo_restrictions =
smtpd_banner = $myhostname ESMTP
smtpd_recipient_restrictions = permit_mynetworks,check_relay_domains

strict_rfc821_envelopes = no

content_filter = vscan:
myorigin = my.domain.com


# Activate and define authentification for mail relay server
# (see also sasl_passwd)
#
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =

Gruß
Falko

Terran Marine
22.09.04, 16:31
Der Content-Filter verweist auf vscan, wie genau liefert er die Mail wieder züruck ?

(über localhost:10025, per sendmail-Skript?)

Wie ist der spamd eingebunden, den finde ich nicht in der master.cf

Hinter dem Eintrag localhost:10025 verbirgt sich NICHT der spamd, dahinter verbirgt sich ein smtpd vom postfix selbst, welcher ohne content-filter läuft.
(Ansonsten würde es eine endlos - Schleife geben)

Mailverlauf schematisch :

Mail Internet ->

smtpd postfix TCP/IP Port 25 ->

amavis per pipe (vscan) ->

??? ->

smtp postfix TCP/IP 10025 ->

procmail etc.

---

Also entweder stellt amavis die Mail dem Spamfilter per pipe oder tcp/ip zur Verfügung oder die Spamprüfung ist direkt in amavis eingebunden.

Ich würde eher auf das zweite tippen.

In beiden Fällen ist die Konfigurationsarbeit in amavis notwendig.