[Postfixbuch-users] Amavis als smtpd-proxy, timeout warning und doppelte Mails

Steffen Mutter steffen at gnuher.de
Do Aug 21 13:27:58 CEST 2008


On Thu, 21 Aug 2008 08:07:20 +0200
Peer Heinlein <p.heinlein at heinlein-support.de> wrote:

> Am Donnerstag, 21. August 2008 schrieb Kai Fürstenberg:

> Ist irrelevant, da Du smtpd_proxy_filter benutzt,

Und das bei einer 'virtuellen' Maschine.

> > ist ein vServer, von daher werden die Angaben wohl nicht allzuviel
> > bringen :-(
> 
> Eben. Und damit ist die Diskussion halbwegs beendet.

Wieso? Jetzt fängt es an interessant zu werden :-)
 
> Ein VServer, wo man weder vernünfitg CPU noch Speicher hat, der zudem 
> vermutlich durch dies und das noch viel verliert und sich am Ende vor 
> allem noch Platten-I/O mit anderen Maschinen teilt -- ist halt eben
> nur ein VServer.

Auf dem man, wenn man diesen dümmlichen amavis-dämon in die Flasche
zurückstopft aus die er kam, sicher auch schmerzfrei Mails empfangen
kann.

> > Vielleicht schraube ich das wieder runter auf 2-4. Die Belastung ist
> > allerdings in den letzten Tagen gleichgeblieben.
 
> Du mußt Dir das zu dem Zeitpunkt ansehen, wo die Probleme auftreten.
> Es ist müßige Spekulation, das zu einem anderen Zeitpunkt zu machen,
> zumal Du aufgrund des VServers ja noch nicht mal sicherstellen
> kannst, ob die Maschine zu einem bestimmten Zeitpunkt nun entspannt
> war, oder nicht.

Jo, hier kommt mein Vorschlag:
1. Wofür brauchst Du den AmavisD ?
Ich nehme einmal an, für den Spamassassin und einen Virenscanner.
2. Wenn das der Fall ist, könnte ich ja (bei Interesse) mal meine
master.cf hier rausrücken, denn das funktioniert bei mir so:
Postfix schickt die eintreffenden Mails erst einmal an den ClamD und
fungiert selbst als Proxy, kommen die zurück, schickt er sie an den
Spamassassin.
Hierbei ist bei meiner Config zu beachten, dass bei mir kein SPAM
weggeworfen wird, sondern nur geflaggt wird, die Mailuser sollen das
selbst so handhaben, wie sie es wollen, aber das tut hier ja nix zur
Sache.

Hier die master.cf.
Die Proxy-Fiter für den clamd und den Spamassassin kommen ziemlich am
Anfang, wer braucht da noch den AmavisD, wenn das Postfix alleine kann?
Das connection-count limit kann man ja nach Bedarf anpassen, bei der
virtuellen Kiste vielleicht mal auf 3 stellen.

/etc/postfix/master.cf:
#
# Postfix master process configuration file.  For details on the format
# of the file, see the Postfix master(5) manual page.
#
#
==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100) #
==========================================================================
smtp      inet  n       -       n       -       20      smtpd -o
smtpd_proxy_filter=127.0.0.1:10026 -o
smtpd_client_connection_count_limit=10 127.0.0.1:10025 inet n  -
n       -       -       smtpd -o
smtpd_authorized_xforward_hosts=127.0.0.1 -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o smtpd_data_restrictions=
        -o mynetworks=127.0.0.1
        -o receive_override_options=no_unknown_recipient_checks
        -o content_filter=spamassassin
#submission inet n      -       -       -       -       smtpd
#       -o smtpd_etrn_restrictions=reject
#       -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps    inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_enforce_tls=yes
#submission inet n      -       -       -       -       smtpd
#  -o smtpd_etrn_restrictions=reject
#  -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628      inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       -       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       -       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX
loops relay     unix  -       -       -       -       -       smtp
        -o fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
                              
/etc/clamsmtpd.conf:
#
------------------------------------------------------------------------------
#                        SAMPLE CLAMSMTPD CONFIG FILE #
------------------------------------------------------------------------------
# # - Comments are a line that starts with a #
# - All the options are found below with their defaults commented out


# The address to send scanned mail to.
# This option is required unless TransparentProxy is enabled
OutAddress: 127.0.0.1:10025

# The maximum number of connection allowed at once.
# Be sure that clamd can also handle this many connections
MaxConnections: 64

# Amount of time (in seconds) to wait on network IO
TimeOut: 180

# Address to listen on (defaults to all local addresses on port 10025)
Listen: 127.0.0.1:10026

# The address clamd is listening on
ClamAddress: /var/run/clamav/clamd.ctl

# A header to add to all scanned email
Header: X-AV-Checked: ClamAV using ClamSMTP

# Directory for temporary files
TempDirectory: /var/spool/clamsmtp

# PidFile: location of PID file
PidFile: /var/run/clamsmtp/clamsmtpd.pid

# Whether or not to bounce email (default is to silently drop)
Bounce: on

# Whether or not to keep virus files
Quarantine: off

# Enable transparent proxy support
TransparentProxy: off

# User to run as
User: clamsmtp

# Virus actions: There's an option to run a script every time a
# virus is found. Read the man page for clamsmtpd.conf for details.

Auch hier kann man von 64 maximalen Verbindungen mal ordentlich
runterschrauben, mit 4 bist Du da sicher sicher (mein Server ist halt
ein Quadcore 64bit mit 6GB RAM und 1TB Mirrorraid) 

und zum Schluß noch den Spamassassin:
# This is the right place to customize your installation of
SpamAssassin. #
# See 'perldoc Mail::SpamAssassin::Conf' for details of what can be
# tweaked.
#
# Only a small subset of options are listed below
#
###########################################################################

#   Add *****SPAM***** to the Subject header of spam e-mails
#
rewrite_header Subject ***SPAM***


#   Save spam messages as a message/rfc822 MIME attachment instead of
#   modifying the original message (0: off, 2: use text/plain instead)
#
report_safe 0


#   Set which networks or hosts are considered 'trusted' by your mail
#   server (i.e. not spammers)
#
# trusted_networks 212.17.35.


#   Set file-locking method (flock is not safe over NFS, but is faster)
#
lock_method flock


#   Set the threshold at which a message is considered spam (default:
5.0) #
required_score 3.0


#   Use Bayesian classifier (default: 1)
#
use_bayes 1


#   Bayesian classifier auto-learning (default: 1)
#
bayes_auto_learn 1


#   Set headers which may provide inappropriate cues to the Bayesian
#   classifier
#
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status

#   Set locales
ok_locales all


Mich persönlich hat der AmavisD ziemlich schnell angenervt, darum habe
ich ihn weggeworfen, weil man ihn bei Postfix für alles, was ein MX so
bei mir zu tun bekommt, nicht wirklich braucht.
Nur meine Meinung, aber da kann man ja sicher drüber diskutieren :-)

Grüße aus dem irgendwo im Urlaub,
Steffen



Mehr Informationen über die Mailingliste Postfixbuch-users