Postfix Integration · 5 min read · Jan 16, 2026

Integration von amavisd-new in Postfix zur Spam- und Virenprüfung - Seite 2

3 Debian Sarge

Für volatile Pakete wie ClamAV (es gibt sehr oft neue ClamAV-Versionen) existiert das Debian-volatile-Repository (zum Zeitpunkt dieses Schreibens nur für Sarge und Woody). Um sicherzustellen, dass wir das neueste ClamAV-Paket installieren, bearbeiten wir zuerst /etc/apt/sources.list und fügen die folgende Zeile hinzu:

vi /etc/apt/sources.list

| [...] deb http://volatile.debian.net/debian-volatile sarge/volatile main contrib non-free |

Danach aktualisieren wir unsere Paketdatenbank, indem wir Folgendes ausführen:

apt-get update

Dann installieren wir amavisd-new, SpamAssassin und ClamAV zusammen mit ein paar anderen Programmen (hauptsächlich Programme, die amavisd-new benötigt, um Archive zu entpacken, da E-Mails Archive als Anhänge enthalten können):

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip unarj bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop

Sie werden ein paar Fragen gestellt:

Virusdatenbank-Aktualisierungsmethode: <– daemon
Lokale Datenbank-Spiegelseite: <– db.de.clamav.net (Deutschland; wählen Sie den Spiegel, der Ihnen am nächsten ist)
HTTP-Proxy-Informationen (leer lassen, wenn keiner): <– (leer)
Soll clamd nach Updates benachrichtigt werden? <– Ja

Danach müssen wir amavisd-new konfigurieren, indem wir /etc/amavis/amavisd.conf bearbeiten. Dies ist eine sehr lange Datei mit vielen Kommentaren. Die meisten Standardeinstellungen sind in Ordnung, stellen Sie jedoch sicher, dass die @bypass_virus_checks_acl und @bypass_spam_checks_acl auskommentiert sind, da sonst amavisd-new den Anti-Spam/-Virus-Code nicht lädt (in meiner Kopie war die Zeile @bypass_spam_checks_acl aktiv, also musste ich sie auskommentieren):

vi /etc/amavis/amavisd.conf

| [...] # @bypass_virus_checks_acl = qw( . ); # auskommentieren, um den Anti-Virus-Code zu DEAKTIVIEREN [...] # @bypass_spam_checks_acl = qw( . ); # Keine Standardabhängigkeit von spamassassin [...] |

Und dann sollten Sie sich die Spam-Einstellungen und die Aktionen für Spam-/Virus-E-Mails in derselben Datei ansehen. Es ist nicht notwendig, etwas zu ändern, wenn die Standardeinstellungen für Sie in Ordnung sind. Die Datei enthält viele Erklärungen, sodass es nicht notwendig ist, die Einstellungen hier zu erklären:

| [...] $final_virus_destiny = D_DISCARD; # (standardmäßig D_BOUNCE) $final_banned_destiny = D_BOUNCE; # (standardmäßig D_BOUNCE) $final_spam_destiny = D_REJECT; # (standardmäßig D_REJECT) $final_bad_header_destiny = D_PASS; # (standardmäßig D_PASS), D_BOUNCE empfohlen [...] $virus_admin = "postmaster\@$mydomain"; # aufgrund der D_DISCARD-Vorgabe [...] $QUARANTINEDIR = '/var/lib/amavis/virusmails'; #$virus_quarantine_method = "local:virus-%i-%n"; # standard #$spam_quarantine_method = "local:spam-%b-%i-%n"; # standard $virus_quarantine_to = 'virus-quarantine'; # traditionelle lokale Quarantäne $spam_quarantine_to = 'spam-quarantine'; [...] $sa_local_tests_only = 1; # (standard: falsch) #$sa_auto_whitelist = 1; # AWL aktivieren (standard: falsch) # Timeout für SpamAssassin. Dies wird nur verwendet, wenn spamassassin NICHT e# es überschreibt (was es oft tut, wenn sa_local_tests_only nicht wahr ist) $sa_timeout = 30; # Timeout in Sekunden für einen Aufruf an SpamAssassin # (Standard ist 30 Sekunden, undef deaktiviert es) # AWL (automatische Whitelist), erfordert spamassassin 2.44 oder besser # $sa_auto_whitelist = 1; # standardmäßig undef $sa_mail_body_size_limit = 150*1024; # verschwenden Sie keine Zeit mit SA, wenn die Mail größer ist # (weniger als 1% des Spam ist > 64k) # standard: undef, keine Einschränkungen # Standardwerte, können durch spezifischere Abfragen überschrieben werden, z.B. SQL $sa_tag_level_deflt = 4.0; # Spam-Info-Header hinzufügen, wenn auf oder über diesem Niveau $sa_tag2_level_deflt = 6.31; # 'Spam erkannt'-Header auf diesem Niveau hinzufügen $sa_kill_level_deflt = $sa_tag2_level_deflt; # löst spamvermeidende Maßnahmen aus # auf oder über diesem Niveau: zurückweisen/ablehnen/drop, # Quarantäne und Hinzufügen der E-Mail-Adressen-Erweiterung $sa_dsn_cutoff_level = 10; # Spam-Niveau, über dem ein DSN nicht gesendet wird, # was D_BOUNCE effektiv in D_DISCARD umwandelt; # undef deaktiviert diese Funktion und ist eine Vorgabe; $sa_spam_subject_tag = '*SPAM* '; # (standardmäßig undef, deaktiviert) [...] |

Danach führen Sie diese Befehle aus, um den clamav-Benutzer zur amavis-Gruppe hinzuzufügen und amavisd-new und ClamAV neu zu starten:

adduser clamav amavis  
 /etc/init.d/amavis restart  
 /etc/init.d/clamav-daemon restart

Als nächstes müssen wir die Konfigurationsdatei des Freshclam-Daemons bearbeiten (das ist der Daemon, der regelmäßig und automatisch die neuesten Virensignaturen von einem ClamAV-Spiegel abruft), da sie einen kleinen Fehler enthält. Öffnen Sie /etc/clamav/freshclam.conf und ändern Sie die NotifyClamd-Zeile wie unten gezeigt:

vi /etc/clamav/freshclam.conf

| [...] NotifyClamd /etc/clamav/clamd.conf [...] |

Dann starten Sie Freshclam neu (stellen Sie sicher, dass kein anderer Freshclam-Prozess (vielleicht von einer anderen ClamAV-Installation) läuft, da sonst unser Freshclam nicht starten kann):

/etc/init.d/clamav-freshclam restart

Jetzt müssen wir Postfix so konfigurieren, dass eingehende E-Mails über amavisd-new geleitet werden:

postconf -e 'content_filter = amavis:[127.0.0.1]:10024'  
 postconf -e 'receive_override_options = no_address_mappings'

Danach fügen Sie die folgenden Zeilen zu /etc/postfix/master.cf hinzu:

vi /etc/postfix/master.cf

| [...] amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1 |

Dann starten Sie Postfix neu:

/etc/init.d/postfix restart

Führen Sie jetzt

netstat -tap

und Sie sollten sehen, dass Postfix (master) auf Port 25 (smtp) und 10025 und amavisd-new auf Port 10024 lauscht:

server1:~# netstat -tap  
 Aktive Internetverbindungen (Server und etabliert)  
 Proto  Recv-Q  Send-Q  Lokale Adresse           Fremde Adresse          Zustand       PID/Programmname  
 tcp      0      0 localhost.localdo:10024 *:*                     LISTEN     4369/amavisd (maste  
 tcp      0      0 localhost.localdo:10025 *:*                     LISTEN     4895/master  
 tcp      0      0 *:874                   *:*                     LISTEN     1964/rpc.statd  
 tcp      0      0 *:sunrpc                *:*                     LISTEN     1553/portmap  
 tcp      0      0 *:auth                  *:*                     LISTEN     1932/inetd  
 tcp      0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6     0      0 *:imaps                 *:*                     LISTEN     3177/couriertcpd  
 tcp6     0      0 *:pop3s                 *:*                     LISTEN     3094/couriertcpd  
 tcp6     0      0 *:pop3                  *:*                     LISTEN     3038/couriertcpd  
 tcp6     0      0 *:imap2                 *:*                     LISTEN     3129/couriertcpd  
 tcp6     0      0 *:ssh                   *:*                     LISTEN     1943/sshd  
 tcp6     0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6     0    148 localhost:ssh           localhost:4631          ESTABLISHED2052/0

Wenn Sie möchten, können Sie jetzt Razor, Pyzor und DCC zu SpamAssassin hinzufügen, um die Filterleistung zu verbessern. Razor, Pyzor und DCC sind Spamfilter, die ein kollaboratives Filternetzwerk verwenden. Um sie zu installieren, führen Sie aus

apt-get install razor pyzor dcc-client

Jetzt müssen wir SpamAssassin sagen, dass es diese drei Programme verwenden soll. Bearbeiten Sie /etc/spamassassin/local.cf und fügen Sie die folgenden Zeilen hinzu:

vi /etc/spamassassin/local.cf

| [...] # dcc use_dcc 1 dcc_path /usr/bin/dccproc dcc_add_header 1 dcc_dccifd_path /usr/sbin/dccifd #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1 #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |

Starten Sie amavisd-new danach neu:

/etc/init.d/amavis restart

Das war’s schon. Jetzt beobachten Sie Ihr Mail-Log (/var/log/mail.log), um zu sehen, ob amavisd-new ordnungsgemäß funktioniert. amavisd-new wird protokollieren, wann immer es eine Spam- oder Virus-E-Mail findet. Wenn Sie (re)starten, sollte es auch protokollieren, dass es seinen Spam- und Virenscan-Code lädt (wenn nicht, haben Sie wahrscheinlich etwas falsch gemacht).

Um einen Live-Blick auf Ihr Mail-Log zu werfen, können Sie diesen Befehl verwenden:

tail -f /var/log/mail.log

(Drücken Sie CTRL + c, um das Log zu verlassen.)

4 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.