Archiv

Artikel Tagged ‘amavis’

Amavisd-new auf einem zentralen Server für mehrere Postfix-Instanzen

21. March 2015 TheMaster Keine Kommentare

Da ich gerade selbst lange suchen musste, hier ein Kurzhowto wie man eine zentrale Amavis-Instanz für mehrere Postfix-Server verwenden  kann:

1) Amavis so konfigurieren, dass es nicht nur auf 127.0.0.1 lauscht:

@inet_acl = qw(127/8 ::1 192.168.0/24);  # adjust the list as appropriate
$inet_socket_bind = undef;

Damit wird eingestellt, dass amavis auf jeder Netzwerkkarte lauscht (inet_socket_bind) und in der acl wird definiert, dass nur lokale Clients auf der selben Maschine (127/8) oder Clients aus dem Netzwerk 192.168.0.0/24 Anfragen stellen dürfen

2) Amavis so konfigurieren, dass es die Antworten (Responses, Notifys) und eMails nach prüfung (Forward) an den anfragenden Mailserver zurückschickt:

$forward_method = ’smtp:*:*’;
$notify_method = $forward_method;

Die Antwort wird an den anfragenen Mailserver (*) geschickt und automatisch auf einen Port höher als die Anfrage kam. Wurde amavis also über den port 10024 angesprochen, kontaktiert er den anfragenden Server auf dem port 10025. Hier kann man auch fest den port 10025 einstellen, ob dies Sinnvoll ist, kann man drüber streiten.

3) Postfix beibringen, dass es auch aus dem Netzwerk Antworten auf Port 10025 annimmt:

In der master.conf eintragen:

192.168.0.55: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,192.168.0.0/24
-o strict_rfc821_envelopes=yes
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_bin_address=127.0.0.1

Wichtig ist hier, dass die fettmarkierten IP-Adressen korrigiert werden. Oben die eigene IP-Adresse auf der Amavis den Server kontaktiert, unten das Netzwerk aus dem es überhaupt Antworten annehmen kann, danur mynetworks zugelassen ist (s. Zeile drüber).

Es ist sinnvoll, dass die interne Kommunikation über ein eigenes – nicht öffentliches – Netzwerk geschieht, daher hier im Beispiel auch eine IP-Adresse aus einem privaten Netz (192.168.0.0/24

4) Postfix noch erklären, auf welchen Amavis er zugreifen soll

In der Main.conf noch hinterlegen:

content_filter = smtp-amavis:[192.168.0.22]:10024

Die IP-Adresse ist die des Amavis-Servers.

KategorienHowTo Tags: , , , ,

Postfix / Courier-IMAP / Amavis / Procmail – Einsortierung von Spamemails in Unterordner

5. March 2012 TheMaster Keine Kommentare

Da es scheinbar hierzu wenig Ergebnisse bei Google hierzu gibt, hier mal ein paar Tipps dazu, wie man bei obiger Konfiguration unter Beachtung des Mailquotas mittels deliverquota eMails sicher zustellen kann.

In der Postfix main.cf wird procmail als mailbox_command eingetragen:

mailbox_command = procmail -a “$EXTENSION”

Ebenso ist Amavis als smtp_proxy eingetragen:

smtpd_proxy_filter=127.0.0.1:10024

Damit sind schonmal die besten Voraussetzungen geschaffen um die eMails auf Spam / Viren zu prüfen mittels Amavis. Amavis-Konfiguration erfolgt wie gewollt um die Stufen der Spamerkennung einzustellen.

Wichtig ist die Datei /etc/procmailrc, die die Ausführung von procmail steuert, so dass die eMails an deliverquota übergeben werden. Nachfgolgend eine Beispielhafte procmailrc:

DROPPRIVS=yes
LOGFILE=/var/log/procmail
SHELL=/bin/sh
DEFAULT=$HOME/Maildir/

Die Grundkonfiguration von procmail

# All mail tagged as spam (eg. with a score higher than the set threshold)
# is moved to “probably-spam”.
:0:
* ^X-Spam-Status: Yes
$HOME/Maildir/.Spam/

Hiermit werden eMails, die von Amavis mit der Headerzeile X-Spam-Status: Yes versehen werden in den Unterordner Spam im IMAP verschoben.

:0w
|/usr/bin/deliverquota -w 90 $HOME/Maildir

Dies übergibt die nicht als Spam erkannten eMails an deliverquoa mit dem Parameter, dass ab 90% Quota-Auslastung eine Warnung an das Postfach zugestellt werden soll. Wichtig ist, hier dass es mit :o w und nicht mit :o fw eingeleitet wird, da sonst bei jeder eMail die reinkommt 2 eMails im Postfach laden.  Einmal die komplette eMail und einmal eine komplett leere. Mehr hierzu am Ende des Beitrages.

# Work around procmail bug: any output on stderr will cause the “F” in “From”
# to be dropped.  This will re-add it.
:0 H
* ! ^From[ ]
* ^rom[ ]
{
LOG=”*** Dropped F off From_ header! Fixing up. ”

:0 fhw
| sed -e ’s/^rom /From /’
}

INCLUDERC=$HOME/.procmailrc

Wer möchte kann im Homedirectory des Users nochmal eine seperate .procmailrc abspeichern, welche weitere Konfigurationen vornimmt.

EOF

Um auf das Problem der doppelte eMail zurückzukommen. Dieses Problem scheinen viele Administratoren zu haben, die eine solche Konfiguration aufsetzen wollen. Wenn hier als Parameter noch ein “f” eingegeben wird, wie z.B. :o fw, so sieht procmail den Anruf als Filter an, übergibt also die komplette eMail an deliverquota und arbeitet mit der Rückgabe weiter. Dies ist jedoch nichts, also stellt procmail eine leere Datei an das Postfach zu, welches dann wiederum zu einer scheinbar leeren eMail ohne Header führt.