Postfix Konfiguration · 6 min read · Sep 28, 2025

Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Debian Lenny) - Seite 3

9 Installieren Sie amavisd-new, SpamAssassin und ClamAV

Um amavisd-new, spamassassin und clamav zu installieren, führen Sie den folgenden Befehl aus:

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

Danach müssen wir amavisd-new konfigurieren. Die Konfiguration ist in verschiedene Dateien aufgeteilt, die im Verzeichnis /etc/amavis/conf.d gespeichert sind. Schauen Sie sich jede von ihnen an, um sich mit der Konfiguration vertraut zu machen. Die meisten Einstellungen sind in Ordnung, jedoch müssen wir drei Dateien ändern:

Zuerst müssen wir ClamAV und SpamAssassin in /etc/amavis/conf.d/15-content_filter_mode aktivieren, indem wir die Zeilen @bypass_virus_checks_maps und @bypass_spam_checks_maps einkommentieren:

vi /etc/amavis/conf.d/15-content_filter_mode

Die Datei sollte folgendermaßen aussehen:

| use strict; # Sie können diese Datei ändern, um die SPAM-Prüfung durch spamassassin wieder zu aktivieren # und um die Antivirus-Prüfung wieder zu aktivieren. # # Standardmodus für die Antivirus-Prüfung # Kommentieren Sie die beiden Zeilen unten aus, um es wieder zu aktivieren # @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Standardmodus für die SPAM-Prüfung # Kommentieren Sie die beiden Zeilen unten aus, um es wieder zu aktivieren # @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; # sicherstellen, dass ein definierter Rückgabewert vorhanden ist |

Und dann sollten Sie sich die Spam-Einstellungen und die Aktionen für Spam-/Virus-E-Mails in /etc/amavis/conf.d/20-debian_defaults 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:

vi /etc/amavis/conf.d/20-debian_defaults

| [...] $QUARANTINEDIR = "$MYHOME/virusmails"; $quarantine_subdir_levels = 1; # Quarantäneverzeichnis-Hashing aktivieren $log_recip_templ = undef; # deaktivieren Sie die Protokolleinträge auf Empfängerebene 0 $DO_SYSLOG = 1; # protokollieren über syslogd (bevorzugt) $syslog_ident = 'amavis'; # syslog-Identifikations-Tag, der allen Nachrichten vorangestellt wird $syslog_facility = 'mail'; $syslog_priority = 'debug'; # wechseln Sie zu info, um Debug-Ausgaben usw. zu reduzieren $enable_db = 1; # aktivieren Sie die Verwendung von BerkeleyDB/libdb (SNMP und Nanny) $enable_global_cache = 1; # aktivieren Sie die Verwendung des libdb-basierten Caches, wenn $enable_db=1 $inet_socket_port = 10024; # Standard-Listening-Socket $sa_spam_subject_tag = '*SPAM* '; $sa_tag_level_deflt = 2.0; # fügen Sie Spam-Info-Header hinzu, wenn auf oder über diesem Niveau $sa_tag2_level_deflt = 6.31; # fügen Sie 'Spam erkannt'-Header auf diesem Niveau hinzu $sa_kill_level_deflt = 6.31; # löst Spam-abweisende Maßnahmen aus $sa_dsn_cutoff_level = 10; # Spam-Niveau, über dem ein DSN nicht gesendet wird [...] $final_virus_destiny = D_DISCARD; # (Daten gehen nicht verloren, siehe Virusquarantäne) $final_banned_destiny = D_BOUNCE; # D_REJECT, wenn Frontend-MTA $final_spam_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS; # Falsch-positiv anfällig (für Spam) [...] |

Schließlich bearbeiten Sie /etc/amavis/conf.d/50-user und fügen Sie die Zeile $pax=’pax’; in der Mitte hinzu:

vi /etc/amavis/conf.d/50-user

| use strict; # # Platzieren Sie hier Ihre Konfigurationsanweisungen. Sie überschreiben die in # früheren Dateien. # # Siehe /usr/share/doc/amavisd-new/ für Dokumentation und Beispiele von # den Anweisungen, die Sie in dieser Datei verwenden können # $pax='pax'; #------------ Ändern Sie nichts unterhalb dieser Zeile ------------- 1; # sicherstellen, dass ein definierter Rückgabewert vorhanden ist |

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

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

Jetzt müssen wir Postfix konfigurieren, um eingehende E-Mails durch amavisd-new zu leiten:

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

Fügen Sie danach 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

Jetzt führen Sie

netstat -tap

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

server1:/etc/courier# netstat -tap  
Aktive Internetverbindungen (Server und etabliert)  
Proto  Recv-Q  Send-Q  Lokale Adresse          Fremde Adresse         Zustand       PID/Programmname  
tcp      0      0 localhost.localdoma:800 *:*                     LISTEN      5288/famd  
tcp      0      0 localhost.localdo:10024 *:*                     LISTEN      20746/amavisd (mast  
tcp      0      0 localhost.localdo:10025 *:*                     LISTEN      21718/master  
tcp      0      0 localhost.localdo:mysql *:*                     LISTEN      4559/mysqld  
tcp      0      0 *:58219                 *:*                     LISTEN      1486/rpc.statd  
tcp      0      0 *:sunrpc                *:*                     LISTEN      1475/portmap  
tcp      0      0 *:ssh                   *:*                     LISTEN      1709/sshd  
tcp      0      0 *:smtp                  *:*                     LISTEN      21718/master  
tcp      0    148 server1.example.com:ssh localhost:3389          ESTABLISHED 2055/0  
tcp6     0      0 [::]:imaps              [::]:*                 LISTEN      18254/couriertcpd  
tcp6     0      0 [::]:pop3s              [::]:*                 LISTEN      18282/couriertcpd  
tcp6     0      0 [::]:pop3               [::]:*                 LISTEN      18265/couriertcpd  
tcp6     0      0 [::]:imap2              [::]:*                 LISTEN      18237/couriertcpd  
tcp6     0      0 [::]:www                [::]:*                 LISTEN      4818/apache2  
tcp6     0      0 [::]:ssh                [::]:*                 LISTEN      1709/sshd  
server1:/etc/courier#
 

10 Installieren Sie Razor, Pyzor und DCC und konfigurieren Sie SpamAssassin

Razor, Pyzor und DCC sind Spamfilter, die ein kollaboratives Filternetzwerk verwenden. Um Razor und Pyzor zu installieren, führen Sie aus:

apt-get install razor pyzor

DCC ist in den Debian Lenny-Repositories nicht verfügbar, daher installieren wir es wie folgt:

cd /tmp  
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z  
tar xzvf dcc-dccproc.tar.Z  
cd dcc-dccproc-1.3.102  
./configure --with-uid=amavis  
make  
make install  
chown -R amavis:amavis /var/dcc  
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd

Jetzt müssen wir SpamAssassin mitteilen, dass diese drei Programme verwendet werden sollen. 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/local/bin/dccproc #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |

Dann müssen wir das DCC-Plugin in SpamAssassin aktivieren. Öffnen Sie /etc/spamassassin/v310.pre und kommentieren Sie die Zeile loadplugin Mail::SpamAssassin::Plugin::DCC aus:

vi /etc/spamassassin/v310.pre

| [...] # DCC - führen Sie DCC-Nachrichtenprüfungen durch. # # DCC ist hier deaktiviert, da es nicht Open Source ist. Siehe die DCC # Lizenz für weitere Details. # loadplugin Mail::SpamAssassin::Plugin::DCC [...] |

Sie können Ihre SpamAssassin-Konfiguration überprüfen, indem Sie ausführen:

spamassassin --lint

Es sollten keine Fehler angezeigt werden.

Starten Sie amavisd-new danach neu:

/etc/init.d/amavis restart

Jetzt aktualisieren wir unsere SpamAssassin-Regelsätze wie folgt:

sa-update --no-gpg

(Nun werden wir einen Cron-Job erstellen. Standardmäßig öffnet der Befehl crontab -e den Nano-Editor unter Debian Lenny. Wenn Sie an vi gewöhnt sind, möchten Sie dies möglicherweise ändern:

update-alternatives --config editor

Wählen Sie Ihren bevorzugten Editor:

server1:/tmp/dcc-dccproc-1.3.102# update-alternatives –config editor
Es gibt 4 Alternativen, die `editor’ bereitstellen.
Auswahl Alternative
———————————————–
1 /bin/ed
+ 2 /bin/nano
3 /usr/bin/vim.tiny
4 /usr/bin/vim.nox
Drücken Sie die Eingabetaste, um die Standardauswahl[
] beizubehalten, oder geben Sie die Auswahlnummer ein: <– 4
Verwendung von ‘/usr/bin/vim.nox’, um ‘editor’ bereitzustellen.
server1:/tmp/dcc-dccproc-1.3.102# ) Wir erstellen einen Cron-Job, damit die Regelsätze regelmäßig aktualisiert werden. Führen Sie aus: crontab -e um den Cron-Job-Editor zu öffnen. Erstellen Sie den folgenden Cron-Job: | 23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null | Dies wird die Regelsätze jeden zweiten Tag um 4:23 Uhr aktualisieren. ### 11 Benachrichtigungen über Quota-Überschreitungen Wenn Sie Benachrichtigungen über alle E-Mail-Konten erhalten möchten, die über dem Limit liegen, tun Sie Folgendes: cd /usr/local/sbin/ wget http://puuhis.net/vhcs/quota.txt mv quota.txt quota_notify chmod 755 quota_notify Öffnen Sie /usr/local/sbin/quota_notify und bearbeiten Sie die Variablen oben. Weiter unten in der Datei (gegen Ende) gibt es zwei Zeilen, in denen Sie ein % Zeichen hinzufügen sollten: vi /usr/local/sbin/quota_notify | [...] my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('[email protected]'); my $CONAME = 'Mein Unternehmen'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; [...] print "Subject: WARNING: Ihr Postfach ist $lusers{ $luser}% voll. "; [...] print "Ihr Postfach: $luser ist $lusers{ $luser}% voll. "; [...] | Führen Sie crontab -e aus, um einen Cron-Job für dieses Skript zu erstellen: | 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.