Postfix Konfiguration · 8 min read · Jan 17, 2026
Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Ubuntu 12.04 LTS) - 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 paxDanach müssen wir amavisd-new konfigurieren. Die Konfiguration ist in verschiedene Dateien aufgeteilt, die sich im Verzeichnis /etc/amavis/conf.d befinden. 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_modeDie 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 # Bitte beachten Sie, dass die Antivirus-Prüfung standardmäßig DEAKTIVIERT ist. # Wenn Sie sie aktivieren möchten, kommentieren Sie bitte die folgenden Zeilen ein: @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Standardmodus für die SPAM-Prüfung # Bitte beachten Sie, dass die Anti-Spam-Prüfung standardmäßig DEAKTIVIERT ist. # Wenn Sie sie aktivieren möchten, kommentieren Sie bitte die folgenden Zeilen ein: @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; # über syslogd protokollieren (bevorzugt) $syslog_ident = 'amavis'; # syslog-Identifikations-Tag, der allen Nachrichten vorangestellt wird $syslog_facility = 'mail'; $syslog_priority = 'debug'; # auf info umschalten, um Debug-Ausgaben usw. zu reduzieren $enable_db = 1; # Verwendung von BerkeleyDB/libdb aktivieren (SNMP und Nanny) $enable_global_cache = 1; # Verwendung des libdb-basierten Caches aktivieren, wenn $enable_db=1 $inet_socket_port = 10024; # Standard-Listening-Socket $sa_spam_subject_tag = '*SPAM* '; $sa_tag_level_deflt = 2.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 = 6.31; # löst Spam-abweisende Maßnahmen aus $sa_dsn_cutoff_level = 10; # Spam-Niveau, über dem kein DSN gesendet wird [...] $final_virus_destiny = D_DISCARD; # (Daten gehen nicht verloren, siehe Virusquarantäne) $final_banned_destiny = D_BOUNCE; # D_REJECT, wenn Front-End-MTA $final_spam_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS; # Falsch-positive 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 unter 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 um amavisd-new und ClamAV neu zu starten:
adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-freshclam restart
/etc/init.d/clamav-daemon 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’
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 |
Dann starten Sie Postfix neu:
/etc/init.d/postfix restartJetzt führen Sie
netstat -tapund Sie sollten sehen, dass Postfix (master) auf Port 25 (smtp) und 10025 lauscht und amavisd-new auf Port 10024:
root@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.localdo:10025 : LISTEN 25911/master
tcp 0 0 localhost.localdo:mysql : LISTEN 3895/mysqld
tcp 0 0 :http : LISTEN 4845/apache2
tcp 0 0 :ssh : LISTEN 649/sshd
tcp 0 0 :smtp : LISTEN 25911/master
tcp 0 0 localhost.localdo:10024 : LISTEN 24534/amavisd (mast
tcp 0 52 server1.example.com:ssh 192.168.0.199:4745 ESTABLISHED 847/0
tcp6 0 0 [::]:pop3 [::]: LISTEN 20989/couriertcpd
tcp6 0 0 [::]:imap2 [::]: LISTEN 20921/couriertcpd
tcp6 0 0 [::]:ssh [::]: LISTEN 649/sshd
tcp6 0 0 [::]:smtp [::]: LISTEN 25911/master
tcp6 0 0 [::]:imaps [::]: LISTEN 20958/couriertcpd
tcp6 0 0 [::]:pop3s [::]:* LISTEN 21026/couriertcpd
root@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 Ubuntu 12.04-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.142
./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 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/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 1Dann 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 ein:
vi /etc/spamassassin/v310.pre| [...] # DCC - führen Sie DCC-Nachrichtentests 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 --lintEs sollten keine Fehler angezeigt werden.
Jetzt gibt es einen kleinen Fehler im amavisd-new-Init-Skript. Öffnen Sie /etc/init.d/amavis…
vi /etc/init.d/amavis… und kommentieren Sie die Zeile STOP=”–stop –quiet –pidfile $PIDFILE –name ${DAEMONNAME}” aus und fügen Sie stattdessen STOP=”–stop –quiet –pidfile $PIDFILE” hinzu:
| [...] set -e START="--start --quiet --pidfile $PIDFILE --name ${DAEMONNAME} --startas ${DAEMON}" #STOP="--stop --quiet --pidfile $PIDFILE --name ${DAEMONNAME}" STOP="--stop --quiet --pidfile $PIDFILE" PARAMS= check_noncompatible_upgrade() [...] |
Starten Sie amavisd-new danach neu:
/etc/init.d/amavis restartJetzt aktualisieren wir unsere SpamAssassin-Regelsätze wie folgt:
sa-update --no-gpgWir erstellen einen Cron-Job, damit die Regelsätze regelmäßig aktualisiert werden. Führen Sie aus:
crontab -eum 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 bei Quota-Überschreitung
Wenn Sie Benachrichtigungen über alle E-Mail-Konten erhalten möchten, die über dem Limit liegen, erstellen Sie die Datei /usr/local/sbin/quota_notify:
cd /usr/local/sbin/
vi quota_notify
| #!/usr/bin/perl -w # Autor <[email protected]> # # Dieses Skript geht davon aus, dass virtual_mailbox_base in der main.cf-Datei von postfix definiert ist. Dieses Verzeichnis wird angenommen, dass es Verzeichnisse enthält, die selbst die Maildirs Ihrer virtuellen Benutzer enthalten. # Zum Beispiel: # # -----------/ # | # | # home/vmail/domains/ # | | # | | # example.com/ foo.com/ # | # | # ----------------- # | | | # | | | # user1/ user2/ user3/ # | # | # maildirsize # use strict; 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; #get virtual mailbox base from postfix config open(PCF, "< $POSTFIX_CF") or die $!; my $mboxBase; while ( |
Stellen Sie sicher, dass Sie die Variablen oben anpassen (insbesondere die [email protected] E-Mail-Adresse).
Wir müssen die Datei ausführbar machen:
chmod 755 quota_notify Führen Sie aus
crontab -eum einen Cron-Job für dieses Skript zu erstellen:
| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.