Postfix/Extras: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Postfix:Extras nach Postfix/Extras, ohne dabei eine Weiterleitung anzulegen: Textersetzung - „:“ durch „/“
 
(32 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Postfix  =
[https://en.wikipedia.org/wiki/Postfix_(software) Postfix] ist ein [https://wiki.archlinux.org/title/Mail_transfer_agent Mail-Transfer-Agent] , der laut [http://www.postfix.org/ seiner Website]:
versucht, schnell, einfach zu verwalten und sicher zu sein, während es gleichzeitig Sendmail-kompatibel genug ist, um bestehende Benutzer nicht zu verärgern. Daher hat das Äußere einen sendmail-artigen Beigeschmack, aber das Innere ist völlig anders.
Dieser Artikel baut auf dem [https://wiki.archlinux.org/title/Mail_server Mail-Server].  Das Ziel dieses Artikels ist es, Postfix einzurichten und zu erklären, was die grundlegenden Konfigurationsdateien tun. Es gibt Anweisungen zum Einrichten der Bereitstellung nur für lokale Systembenutzer und einen Link zu einer Anleitung für die Bereitstellung durch virtuelle Benutzer.
== Konfiguration  ==
Siehe [http://www.postfix.org/BASIC_CONFIGURATION_README.html Postfix-Basiskonfiguration]. 
Konfigurationsdateien sind unter <tt>/etc/postfix</tt> abgelegt. Die beiden wichtigsten Dateien sind:
* <tt>master.cf</tt>, definiert, welche Postfix-Dienste aktiviert sind und wie sich Clients mit ihnen verbinden, siehe [https://man.archlinux.org/man/master.5 master(5)]
* <tt>main.cf</tt>, die Hauptkonfigurationsdatei, siehe [https://man.archlinux.org/man/postconf.5 postconf(5)]
Konfigurationsänderungen erfordern a <tt>postfix.service</tt> [https://wiki.archlinux.org/title/Reload laden] , um wirksam zu werden.
=== Aliase  ===
Siehe [https://man.archlinux.org/man/postfix/aliases.5 Aliase(5)].
Sie können Aliase (auch als Weiterleitungen bezeichnet) in angeben <tt>/etc/postfix/aliases</tt>.
Sie sollten alle an root einem anderen Konto zuordnen, da es keine gute Idee ist, E-Mails als root zu lesen.
Kommentieren Sie die folgende Zeile aus und ändern Sie sie <tt>you</tt>auf ein echtes Konto.
Wurzel: du
Sobald Sie mit der Bearbeitung fertig sind <tt>/etc/postfix/aliases</tt>Sie müssen den Postalias-Befehl ausführen:
postalias /etc/postfix/aliase
Für spätere Änderungen können Sie verwenden:
neue Aliase
'''Tipp'''
Alternativ können Sie die Datei erstellen <tt>~/.forward</tt>, z.B <tt>/root/.forward</tt>für Wurzel.
* Geben Sie den Benutzer an, an den Root-Mail weitergeleitet werden soll, zB user@localhost.
/root/.forward
Benutzer@lokalerHost
=== Lokale Post  ===
Um E-Mails nur an lokale Systembenutzer (die sich in <tt>/etc/passwd</tt>) aktualisieren <tt>/etc/postfix/main.cf</tt>um die folgende Konfiguration widerzuspiegeln.
* Entkommentieren, ändern oder fügen Sie die folgenden Zeilen hinzu:
meinhostname = lokalerhost
meinedomain = lokaledomain
mydestination = $myhostname, localhost.$mydomain, localhost
inet_interfaces = $myhostname, localhost
mynetworks_style = host
default_transport = Fehler: Externe Post ist nicht zustellbar
Alle anderen Einstellungen können unverändert bleiben.
* Nachdem Sie die obige Konfigurationsdatei eingerichtet haben, möchten Sie vielleicht einige [https://wiki.archlinux.org/title/Postfix#Aliases #Aliasnamen einrichten] und dann [https://wiki.archlinux.org/title/Postfix#Start_Postfix #Postfix starten].
=== Virtuelle Post  ===
Virtuelle Mail ist Mail, die keinem Benutzerkonto zugeordnet ist ( <tt>/etc/passwd</tt>).
Siehe [https://wiki.archlinux.org/title/Virtual_user_mail_system_with_Postfix,_Dovecot_and_Roundcube Mailsystem für virtuelle Benutzer mit Postfix, Dovecot und Roundcube] für eine umfassende Anleitung zur Einrichtung.
=== Konfiguration prüfen  ===
Führen Sie die aus <tt>postfix check</tt>Befehl.
* Es sollte alles ausgeben, was Sie möglicherweise in einer Konfigurationsdatei falsch gemacht haben.
Geben Sie Folgendes ein, um alle Ihre Konfigurationen anzuzeigen <tt>postconf</tt>.
* Um zu sehen, wie Sie sich von den Standardeinstellungen unterscheiden, versuchen Sie es <tt>postconf -n</tt>.
== Postfix starten  ==
'''Hinweis: '''Sie müssen laufen <tt>newaliases</tt>mindestens einmal, damit Postfix ausgeführt wird, auch wenn Sie keine [https://wiki.archlinux.org/title/Postfix#Aliases #Aliases].
[https://wiki.archlinux.org/title/Start/enable Starten/aktivieren Sie] die <tt>postfix.service</tt>.
== TLS  ==
Weitere Informationen finden Sie unter [http://www.postfix.org/TLS_README.html Postfix-TLS-Unterstützung].
=== Sicheres SMTP (Senden)  ===
Standardmäßig sendet Postfix/Sendmail keine verschlüsselten E-Mails an andere SMTP-Server.
* Um TLS zu verwenden, wenn verfügbar, fügen Sie die folgende Zeile hinzu <tt>main.cf</tt>:
; /etc/postfix/main.cf
smtp_tls_security_level = kann
Um erzwingen (und fehlschlägt, wenn der Remoteserver es nicht unterstützt), ändern Sie <tt>may</tt>zu <tt>encrypt</tt>.
* Beachten Sie jedoch, dass dies gegen [https://tools.ietf.org/html/rfc2487 RFC:2487] wenn auf den SMTP-Server öffentlich verwiesen wird.
=== Sicheres SMTP (Empfangen)  ===
'''Warnung: '''Wenn Sie [https://en.wikipedia.org/wiki/TLS TLS] , befolgen [https://weakdh.org/sysadmin.html Sie unbedingt die Anleitung von Weakdh.org] , um FREAK/Logjam zu verhindern.
* Seit Mitte 2015 sind die Standardeinstellungen gegen [https://en.wikipedia.org/wiki/POODLE POODLE].  Weitere Informationen finden Sie unter [https://wiki.archlinux.org/title/Server-side_TLS Serverseitiges TLS].
Standardmäßig akzeptiert Postfix keine sichere E-Mail.
Sie müssen [https://wiki.archlinux.org/title/Obtain_a_certificate ein Zertifikat erwerben].  Verweisen Sie Postfix auf Ihre TLS-Zertifikate, indem Sie die folgenden Zeilen zu hinzufügen <tt>main.cf</tt>:
; /etc/postfix/main.cf
smtpd_tls_security_level = kann
smtpd_use_tls = ja
smtpd_tls_cert_file = /Pfad/zu/cert.pem
smtpd_tls_key_file = /path/to/key.pem
Es gibt zwei Möglichkeiten, sichere E-Mails zu akzeptieren.
* STARTTLS über SMTP (Port 587) und SMTPS (Port 465).
* Letzteres war zuvor veraltet, wurde aber durch [https://tools.ietf.org/html/rfc8314 RFC:8314].
Um STARTTLS über SMTP (Port 587) zu aktivieren, kommentieren Sie die folgenden Zeilen aus <tt>master.cf</tt>:
; /etc/postfix/master.cf
Übermittlung inet n - n - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=verschlüsseln
  -o smtpd_sasl_auth_enable=ja
  -o smtpd_tls_auth_only=ja
  -o smtpd_reject_unlisted_recipient=nein
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,ablehnen
  -o milter_macro_daemon_name=URSPRUNG
Die <tt>smtpd_*_restrictions</tt>Optionen bleiben kommentiert, weil <tt>$mua_*_restrictions</tt>sind standardmäßig nicht in main.cf definiert.
* Wenn Sie sich entscheiden, eine von einzustellen <tt>$mua_*_restrictions</tt>, kommentieren Sie auch diese Zeilen aus.
Um SMTPS (Port 465) zu aktivieren, kommentieren Sie die folgenden Zeilen aus <tt>master.cf</tt>:
/etc/postfix/master.cf
smtps inet n - n - - smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=ja
  -o smtpd_sasl_auth_enable=ja
  -o smtpd_reject_unlisted_recipient=nein
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,ablehnen
  -o milter_macro_daemon_name=URSPRUNG
Die Begründung rund um die <tt>$smtpd_*_restrictions</tt>Linien ist die gleiche wie oben.
== Tipps und Tricks  ==
=== Eingehende E-Mails auf die schwarze Liste setzen  ===
=== Eingehende E-Mails auf die schwarze Liste setzen  ===
Das manuelle Blacklisting eingehender E-Mails nach Absenderadresse ist mit Postfix problemlos möglich.
Das manuelle Blacklisting eingehender E-Mails nach Absenderadresse ist mit Postfix problemlos möglich.


Erstellen und öffnen <tt>/etc/postfix/blacklist_incoming</tt>Datei und E-Mail-Adresse des Absenders anhängen:
<tt>/etc/postfix/blacklist_incoming</tt>
  user@example.com ABLEHNEN
  user@example.com REJECT


Dann nutzen Sie die <tt>postmap</tt>Befehl zum Erstellen einer Datenbank:
Dann nutzen Sie die <tt>postmap</tt> Befehl zum Erstellen einer Datenbank:
  # Postmap-Hash: blacklist_incoming
  # postmap hash:blacklist_incoming


Fügen Sie den folgenden Code vor der ersten Zulassungsregel ein <tt>main.cf</tt>:
Fügen Sie den folgenden Code vor der ersten Zulassungsregel ein  
 
<tt>main.cf</tt>:
  smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/blacklist_incoming
  smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/blacklist_incoming


Endlich [https://wiki.archlinux.org/title/Restart neu starten] <tt>postfix.service</tt>.
Endlich [https://wiki.archlinux.org/title/Restart neu starten] <tt>postfix.service</tt>.


=== Blenden Sie die IP des Absenders und den Benutzeragenten im Received-Header aus  ===
=== IP-Adresse und Benutzeragenten ausblenden  ===
Dies ist vor allem ein Datenschutzproblem, wenn Sie Thunderbird verwenden und eine E-Mail senden.
* im Received-Header des Absenders
* Dies ist vor allem ein Datenschutzproblem, wenn Sie Thunderbird verwenden und eine E-Mail senden
* Der empfangene Header enthält Ihre LAN- und WAN-IP und Informationen über den von Ihnen verwendeten E-Mail-Client. (Originalquelle: [https://askubuntu.com/questions/78163/when-sending-email-with-postfix-how-can-i-hide-the-senders-ip-and-username-in AskUbuntu] ) Wir möchten den Received-Header aus ausgehenden E-Mails entfernen.
* Der empfangene Header enthält Ihre LAN- und WAN-IP und Informationen über den von Ihnen verwendeten E-Mail-Client. (Originalquelle: [https://askubuntu.com/questions/78163/when-sending-email-with-postfix-how-can-i-hide-the-senders-ip-and-username-in AskUbuntu] ) Wir möchten den Received-Header aus ausgehenden E-Mails entfernen.
* Dies kann durch die folgenden Schritte erfolgen:
 
Dies kann durch die folgenden Schritte erfolgen:


Fügen Sie die folgende Zeile hinzu <tt>main.cf</tt>:
Fügen Sie die folgende Zeile hinzu <tt>main.cf</tt>:
smtp_header _checks = regulärer Ausdruck:/etc/postfix/smtp_header_checks
smtp_header _checks = regulärer Ausdruck:/etc/postfix/smtp_header_checks


Erstellen <tt>/etc/postfix/smtp_header_checks</tt>mit diesem Inhalt:
Erstellen <tt>/etc/postfix/smtp_header_checks</tt> mit diesem Inhalt:
  /^Empfangen:. */ IGNORIEREN
  /^Received: .*/     IGNORE
  /^User-Agent:. */ IGNORIEREN
  /^User-Agent: .*/   IGNORE


Zum Schluss [https://wiki.archlinux.org/title/Restart neu starten] <tt>postfix.service</tt>.
Zum Schluss [https://wiki.archlinux.org/title/Restart neu starten] <tt>postfix.service</tt>.
=== Postfix in einem Chroot-Gefängnis  ===
Postfix wird standardmäßig nicht in ein Chroot-Gefängnis gesteckt.
* Die Postfix-Dokumentation [http://www.postfix.org/BASIC_CONFIGURATION_README.html#chroot_setup [1]] liefert Details darüber, wie man ein solches Jail bewerkstelligen kann.
* Die Schritte sind unten beschrieben und basieren auf dem chroot-setup-Skript, das im Postfix-Quellcode bereitgestellt wird.
Gehen Sie zuerst in die <tt>master.cf</tt>Datei im Verzeichnis <tt>/etc/postfix</tt>und ändern Sie alle Chroot-Einträge auf 'yes' (y) mit Ausnahme der Dienste <tt>qmgr</tt>, <tt>proxymap</tt>, <tt>proxywrite</tt>, <tt>local</tt>, und <tt>virtual</tt>
Erstellen Sie zweitens zwei Funktionen, die uns später beim Kopieren von Dateien in das Chroot-Gefängnis helfen (siehe letzter Schritt).
CP="cp -p"
cond_copy() {
  # Dateien nach Muster in $1 finden
  # Falls vorhanden, in Verzeichnis $2 kopieren
  dir=`dirname "$1"`
  pat=`Basisname "$1"`
  lr=`find "$dir" -maxdepth 1 -name "$pat"`
  wenn testen!  -d "$2" ;  dann Ausfahrt 1 ;  fi
  if test "x$lr" != "x" ;  dann $CP $1 "$2" ;  fi
  }
Erstellen Sie als Nächstes die neuen Verzeichnisse für das Gefängnis:
setze -e
Maske 022
POSTFIX_DIR=${POSTFIX_DIR-/var/spool/postfix}
cd ${POSTFIX_DIR}
mkdir -p etc lib usr/lib/zoneinfo
test -d /lib64 && mkdir -p lib64
Suchen Sie die localtime-Datei
lt=/etc/localtime
wenn testen!  -f $lt ;  dann lt=/usr/lib/zoneinfo/localtime ;  fi
wenn testen!  -f $lt ;  dann lt=/usr/share/zoneinfo/localtime ;  fi
wenn testen!  -f $lt ;  then echo "cannot find localtime" ;  Ausgang 1 ;  fi
rm -f etc/Ortszeit
Kopieren Sie localtime und einige andere Systemdateien in die Chroots etc
$CP -f $lt /etc/services /etc/resolv.conf /etc/nsswitch.conf usw
$CP -f /etc/host.conf /etc/hosts /etc/passwd usw
ln -s -f /etc/localtime usr/lib/zoneinfo
Stellen Sie sicher, dass resolv.conf root gehört:
chown root /var/spool/postfix/etc/resolv.conf
Kopieren Sie die erforderlichen Bibliotheken mit der zuvor erstellten Funktion in die Chroot <tt>cond_copy</tt>
cond_copy '/usr/lib/libnss_*.so*' lib
cond_copy '/usr/lib/libresolv.so*' lib
cond_copy '/usr/lib/libdb.so*' lib
Und vergessen Sie nicht, [https://wiki.archlinux.org/title/Reload laden] Postfix
=== DANE (DNSSEC)  ===
==== Ressourceneintrag  ====
'''Warnung'''
Dies ist kein trivialer Abschnitt.
* Seien Sie sich bewusst, dass Sie sicherstellen, dass Sie wissen, was Sie tun.
* Lesen Sie besser [https://dane.sys4.de/common_mistakes Häufige Fehler] vorher [https://wiki.archlinux.org/title/DANE DANE] unterstützt mehrere Arten von Datensätzen, jedoch sind nicht alle für Postfix geeignet.
Zertifikatsverwendung 0 wird nicht unterstützt, 1 wird 3 zugeordnet und 2 ist optional, daher wird empfohlen, einen „3“-Eintrag zu veröffentlichen.
* Mehr zu [https://wiki.archlinux.org/title/DANE#Resource_Record Resource Records].
==== Aufbau  ====
Dieser Artikel oder Abschnitt muss erweitert werden.
Begründung: Was bedeutet tempfail ? (Diskutieren Sie im [https://wiki.archlinux.org/title/Talk:Postfix Talk: Postfix] )
Opportunistic DANE ist folgendermaßen konfiguriert:
; /etc/postfix/main.cf
smtpd_use_tls = ja
smtp_dns_support_level = dnssec
smtp_tls_security_level = Däne
;/etc/postfix/master.cf
dane unix - - n - - smtp
  -o smtp_dns_support_level=dnssec
  -o smtp_tls_security_level=dane
Um domänenspezifische Richtlinien zu verwenden, z.&nbsp;B.
* opportunistisches DANE für example.org und obligatorisches DANE für example.com, verwende so etwas:
; /etc/postfix/main.cf
indexed = ${default_database_type}:${config_directory}/
# TLS-Richtlinie pro Ziel
#
smtp_tls_policy_maps = ${indexed}tls_policy
# default_transport = smtp, aber einige Ziele sind speziell:
#
transport_maps = ${indexed}transport
Transport
example.com-Daten
example.org-Daten
tls_policy
example.com nur für Dänen
'''Hinweis'''
Für global obligatorisches DANE ändern <tt>smtp_tls_security_level</tt>zu <tt>dane-only</tt>.
* Beachten Sie, dass dadurch Postfix tempfail wird (antworten Sie mit a <tt>4.X.X</tt>Fehlercode) auf alle Lieferungen, die überhaupt kein DANE verwenden!
Die vollständige Dokumentation finden Sie [http://www.postfix.org/TLS_README.html#client_tls_dane hier].
== Extras  ==
* [https://wiki.archlinux.org/title/PostfixAdmin PostfixAdmin] — Eine webbasierte Verwaltungsschnittstelle für Postfix.
[http://postfixadmin.sourceforge.net/ http://postfixadmin.sourceforge.net/] || [https://archlinux.org/packages/?name=postfixadmin postfixadmin]
=== Postgrau  ===
Dieser Artikel oder Abschnitt benötigt Sprach-, Wiki-Syntax- oder Stilverbesserungen.
* Siehe [https://wiki.archlinux.org/title/Help:Style Hilfe:Stil] als Referenz.
Grund: Siehe [https://wiki.archlinux.org/title/Help:Style Help:Style] (Diskutieren in [https://wiki.archlinux.org/title/Talk:Postfix Talk:Postfix] )
[https://postgrey.schweikert.ch/ Postgrey] kann verwendet werden, um [https://en.wikipedia.org/wiki/Greylisting_(email) Greylisting] für einen Postfix-Mailserver zu aktivieren.
==== Installation  ====
[https://wiki.archlinux.org/title/Install Installieren Sie] das [https://archlinux.org/packages/?name=postgrey postgrey] -Paket.
* Um es schnell zum Laufen zu bringen, bearbeiten Sie die Postfix-Konfigurationsdatei und fügen Sie diese Zeilen hinzu:
; /etc/postfix/main.cf
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:10030
Dann [https://wiki.archlinux.org/title/Start/enable starten/aktivieren Sie] die <tt>postgrey</tt>Service.
* Laden Sie anschließend die <tt>postfix</tt>Service.
* Jetzt sollte Greylisting aktiviert sein.
==== Aufbau  ====
Konfiguration erfolgt durch [https://wiki.archlinux.org/title/Extend_the_unit Erweiterung der Einheit] <tt>postgrey.service</tt>.
==== Weiße Liste  ====
Um eine automatische Whitelist hinzuzufügen (erfolgreiche Zustellungen werden auf die Whitelist gesetzt und müssen nicht mehr warten), fügen Sie die hinzu <tt>--auto-whitelist-clients=N</tt>Option und ersetzen <tt>N</tt>um eine angemessen kleine Zahl (oder belassen Sie es auf dem Standardwert von 5).
; /etc/systemd/system/postgrey.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/postgrey --inet=127.0.0.1:10030 \
        --pidfile=/run/postgrey/postgrey.pid \
        --group=postgrey --user=postgrey \
        --daemonize \
        --greylist-text="Für %%s Sekunden auf der Greylist" \
        --auto-whitelist-clients
Erstellen Sie die Datei, um zusätzlich zu den Standardclients Ihre eigene Liste mit Whitelist-Clients hinzuzufügen <tt>/etc/postfix/whitelist_clients.local</tt>und geben Sie einen Host oder eine Domäne pro Zeile ein und starten Sie dann neu <tt>postgrey.service</tt>damit die Änderungen wirksam werden.
==== Fehlerbehebung  ====
Wenn Sie angeben <tt>--unix=/path/to/socket</tt>und die Socket-Datei nicht erstellt wird, stellen Sie sicher, dass Sie die Standardeinstellung entfernt haben <tt>--inet=127.0.0.1:10030</tt>aus der Servicedatei.
Eine vollständige Dokumentation möglicher Optionen finden Sie unter <tt>perldoc postgrey</tt>.
=== SpamAssassin  ===
Dieser Abschnitt beschreibt, wie [https://wiki.archlinux.org/title/SpamAssassin Sie SpamAssassin].
==== Eigenständiges generisches SpamAssassin-Setup  ====
'''Hinweis'''
Wenn Sie SpamAssassin und Dovecot Mail Filtering kombinieren möchten, ignorieren Sie die nächsten beiden Zeilen und fahren Sie stattdessen weiter unten fort.
Bearbeiten <tt>/etc/postfix/master.cf</tt>und fügen Sie den Inhaltsfilter unter smtp hinzu.
smtp inet n - n - - smtpd
  -o content_filter=Spamassassin
Fügen Sie außerdem den folgenden Diensteintrag für SpamAssassin hinzu
spamassassin unix - nn - - pipe
  flags=R user=spamd argv=/usr/bin/vendor_perl/spamc -e /usr/bin/sendmail -oi -f ${sender} ${recipient}
Jetzt können Sie [https://wiki.archlinux.org/title/Start starten] und [https://wiki.archlinux.org/title/Enable aktivieren] <tt>spamassassin.service</tt>.
==== SpamAssassin kombiniert mit Dovecot LDA / Sieve (Mailfilterung)  ====
Richten Sie LDA und das Sieve-Plugin wie in [https://wiki.archlinux.org/title/Dovecot#Sieve Dovecot#Sieve].
* Aber ignoriere die letzte Zeile <tt>mailbox_command... </tt>.
Fügen Sie stattdessen ein Rohr hinzu <tt>/etc/postfix/master.cf</tt>:
dovecot unix - nn - - pipe
        flags=DRhu user=vmail:vmail argv=/usr/bin/vendor_perl/spamc -u spamd -e /usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}
Und aktivieren Sie es in <tt>/etc/postfix/main.cf</tt>:
virtual_transport = Taubenschlag
Wenn Sie keine virtuellen Transporte verwenden möchten, können Sie alternativ die verwenden [http://www.postfix.org/postconf.5.html#mailbox_command mailbox_command].  Das läuft mit dem lokalen Benutzer und der lokalen Gruppe, während die Pipe mit dem angegebenen Benutzer unter Verwendung von läuft <tt>user</tt>Einstellung.
mailbox_command = /usr/bin/vendor_perl/spamc -u spamd -e /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$EMPFÄNGER"
==== SpamAssassin kombiniert mit Dovecot LMTP / Sieve  ====
Richten Sie das LMTP und Sieb wie in [https://wiki.archlinux.org/title/Dovecot#Sieve Dovecot#Sieve].
; /etc/dovecot/conf.d/90-plugin.conf
sieve_before = /etc/dovecot/sieve.before.d/
sieve_extensions = +vnd.dovecot.filter
sieve_plugins = sieve_extprogramme
sieve_filter_bin_dir = /etc/dovecot/sieve-filter
sieve_filter_exec_timeout = 120s #dies wird oft für lange laufende Spamassassin-Scans benötigt, Standard ist ansonsten 10s
Erstellen Sie das Verzeichnis und fügen Sie spamassassin als Binärdatei ein, die von dovecot ausgeführt werden kann:
# mkdir /etc/dovecot/sieve-filter
# ln -s /usr/bin/vendor_perl/spamc /etc/dovecot/sieve-filter/spamc
Erstellen Sie eine neue Datei, <tt>/etc/dovecot/sieve.before.d/spamassassin.sieve</tt>was beinhaltet:
require [ "vnd.dovecot.filter"] ;
  filter "spamc" [ "-d", "127.0.0.1", "--no-safe-fallback"] ;
Stellen Sie die Siebregeln zusammen <tt>spamassassin.svbin</tt>:
# cd /etc/dovecot/sieve.before.d
  # sievec spamassassin.sieve
Zum Schluss [https://wiki.archlinux.org/title/Restart neu starten] <tt>dovecot.service</tt>.


=== Regelbasierte Mailverarbeitung  ===
=== Regelbasierte Mailverarbeitung  ===
Mit Richtliniendiensten kann man das Postfix-Verhalten bei der Zustellung von E-Mails leicht anpassen. [https://archlinux.org/packages/?name=postfwd postfwd] und policyd ( [https://aur.archlinux.org/packages/policyd-mysql/ policyd-mysql] AUR , [https://aur.archlinux.org/packages/policyd-pgsql/ policyd-pgsql] AUR oder [https://aur.archlinux.org/packages/policyd-sqlite/ policyd-sqlite] AUR ) stellen dafür Dienste bereit.
Mit Richtliniendiensten kann man das Postfix-Verhalten bei der Zustellung von E-Mails leicht anpassen. '''postfwd''' und '''policyd''' policyd-pgsql oder policyd-sqlite stellen dafür Dienste bereit.
* Damit können Sie zB zeitbewusstes Grey- und Blacklisting von Sendern und Empfängern sowie [https://wiki.archlinux.org/title/SPF SPF] Policy-Checking implementieren.
* Damit können Sie z.B, zeitbewusstes Grey- und Blacklisting von Sendern und Empfängern sowie SPF Policy-Checking implementieren.


Richtliniendienste sind eigenständige Dienste und wie folgt mit Postfix verbunden:
Richtliniendienste sind eigenständige Dienste und wie folgt mit Postfix verbunden:
Zeile 389: Zeile 45:
* Achten Sie darauf, es vor der ersten Erlaubnisanweisung zu platzieren, um alle eingehenden Nachrichten abzufangen.
* Achten Sie darauf, es vor der ersten Erlaubnisanweisung zu platzieren, um alle eingehenden Nachrichten abzufangen.


=== Sender Policy Framework  ===
[[Kategorie:Postfix]]
Um das [https://wiki.archlinux.org/title/Sender_Policy_Framework Sender Policy Framework] mit Postfix zu verwenden, können Sie [https://wiki.archlinux.org/title/Install spf] [https://aur.archlinux.org/packages/python-spf-engine/ -engine] AUR , [https://aur.archlinux.org/packages/python-postfix-policyd-spf/ python-postfix-policyd-spf] AUR oder [https://aur.archlinux.org/packages/postfix-policyd-spf-perl/ postfix-policyd-spf-perl] AUR.
 
==== Mit spf-engine oder python-postfix-policyd-spf  ====
Bearbeiten <tt>/etc/python-policyd-spf/policyd-spf.conf</tt>zu Ihren Bedürfnissen.
* Eine ausführlich kommentierte Version finden Sie unter <tt>/etc/python-policyd-spf/policyd-spf.conf.commented</tt>.
* Achten Sie besonders auf die HELO-Prüfrichtlinie, da die Standardeinstellungen HELO-Fehler strikt ablehnen.
 
In <tt>main.cf</tt>Datei, fügen Sie ein Timeout für die Richtlinie hinzu:
; /etc/postfix/main.cf
policy-spf_time_limit = 3600s
 
Fügen Sie dann einen Transport hinzu
; /etc/postfix/master.cf
policy-spf unix - nn - 0 spawnen
      user=nobody argv=/usr/bin/policyd-spf
 
Zuletzt müssen Sie die Policy zu der hinzufügen <tt>smtpd_recipient_restrictions</tt>.
* Um die Belastung zu minimieren, legte man am Ende der Beschränkungen aber vor <tt>reject_rbl_client</tt>DNSBL-Zeile:
; /etc/postfix/main.cf
smtpd_recipient_restrictions=
    . ..
      permission_sasl_authenticated
      permission_mynetworks
      abgelehnt_unauth_destination
      check_policy_service unix:private/policy-spf
 
Laden Sie nun die neu <tt>postfix</tt>Service.
 
Sie können Ihr Setup wie folgt testen:
; /etc/python-policyd-spf/policyd-spf.conf
defaultSeedOnly = 0
 
==== Mit postfix-policyd-spf-perl  ====
Gehen Sie mit postfix genauso [https://wiki.archlinux.org/title/Postfix#With_spf-engine_or_python-postfix-policyd-spf mit python-postfix-policyd-spf] , jedoch mit den folgenden Unterschieden:
 
Zeitüberschreitung für die Richtlinie <tt>main.cf</tt>Datei:
; /etc/postfix/main.cf
policy_time_limit = 3600
 
Transport:
; /etc/postfix/master.cf
policy unix - nn - 0 spawnen
      user=nobody argv=/usr/lib/postfix/postfix-policyd-spf-perl
 
Fügen Sie die Richtlinie zu der hinzu <tt>smtpd_recipient_restrictions</tt>:
 
'''Warnung'''
angeben <tt>check_policy_service</tt>gemäß <tt>reject_unauth_destination</tt>Andernfalls kann Ihr System zu einem offenen Relais werden.
 
; /etc/postfix/main.cf
smtpd_recipient_restrictions=
    . ..
      abgelehnt_unauth_destination
      check_policy_service unix:private/policy
    . ..
 
=== Sender Rewriting Scheme  ===
Um das [https://wiki.archlinux.org/title/Sender_Rewriting_Scheme Sender Rewriting Scheme] mit Postfix zu verwenden, [https://wiki.archlinux.org/title/Install installieren] [https://aur.archlinux.org/packages/postsrsd/ Sie postsrsd] AUR und passen Sie die Einstellungen an:
 
; /etc/postsrsd/postsrsd
SRS_DOMAIN=ihredomain.tld
SRS_EXCLUDE_DOMAINS=ihreanderedomain.tld,noch.eineanderedomain.tld
SRS_SEPARATOR==
SRS_SECRET=/etc/postsrsd/postsrsd.secret
SRS_FORWARD_PORT=10001
SRS_REVERSE_PORT=10002
RUN_AS=postsrsd
CHROOT=/usr/lib/postsrsd
 
Aktivieren und starten Sie den Daemon und stellen Sie sicher, dass er auch nach dem Neustart ausgeführt wird.
* Konfigurieren Sie dann Postfix entsprechend, indem Sie die folgenden Zeilen anpassen:
 
; /etc/postfix/main.cf
sender_canonical_maps = tcp:localhost:10001
sender_canonical_classes = Umschlag_Absender
receiver_canonical_maps = tcp:localhost:10002
receiver_canonical_classes= Umschlag_Empfänger,Header_Empfänger
 
Starten Sie Postfix neu und starten Sie die Weiterleitung von E-Mails.
 
== Fehlerbehebung  ==
=== Warnung: "Datenbank /etc/postfix/*.db ist älter als Quelldatei. ."  ===
Wenn Sie eine oder beide Warnungen mit [https://wiki.archlinux.org/title/Journalctl journalctl erhalten] :
Warnung: Die Datenbank /etc/postfix/virtual.db ist älter als die Quelldatei /etc/postfix/virtual
Warnung: Die Datenbank /etc/postfix/transport.db ist älter als die Quelldatei /etc/postfix/transport
 
Dann können Sie es mit diesen Befehlen beheben, je nachdem, welche Meldungen Sie erhalten:
postmap /etc/postfix/transport
postmap /etc/postfix/virtual
 
Und [https://wiki.archlinux.org/title/Restart neu starten] <tt>postfix.service</tt>.
 
=== Host- oder Domänenname nicht gefunden. Namensdienstfehler für name=...  ===
Wenn Sie mit journalctl:
Host- oder Domänenname nicht gefunden.  Namensdienstfehler für name=...
 
Es könnte sein, dass Sie Postfix in einem ausführen <tt>chroot</tt>und <tt>/etc/resolv.conf</tt>wird vermisst.
 
Wenn ja, können Sie dies beheben, indem Sie:
mkdir -p /var/spool/postfix/etc
cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf
 
Und [https://wiki.archlinux.org/title/Restart neu starten] <tt>postfix.service</tt>.
 
== Siehe auch  ==
* [http://www.postfix.org/documentation.html Offizielle Dokumentation]
* [https://help.ubuntu.com/community/Postfix Postfix Ubuntu-Dokumentation]
 
Zum Thema passende Artikel
* [https://wiki.archlinux.org/title/Postfix_with_SASL Postfix mit SASL]
* [https://wiki.archlinux.org/title/Virtual_user_mail_system Mailsystem für virtuelle Benutzer]
* [https://wiki.archlinux.org/title/OpenDMARC OpenDMARC]
* [https://wiki.archlinux.org/title/OpenDKIM OpenDKIM]
 
[https://wiki.archlinux.org/title/Category:Mail_server Mail-Server]

Aktuelle Version vom 29. März 2023, 12:17 Uhr

Eingehende E-Mails auf die schwarze Liste setzen

Das manuelle Blacklisting eingehender E-Mails nach Absenderadresse ist mit Postfix problemlos möglich.

/etc/postfix/blacklist_incoming

user@example.com REJECT

Dann nutzen Sie die postmap Befehl zum Erstellen einer Datenbank:

# postmap hash:blacklist_incoming

Fügen Sie den folgenden Code vor der ersten Zulassungsregel ein

main.cf:

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/blacklist_incoming

Endlich neu starten postfix.service.

IP-Adresse und Benutzeragenten ausblenden

  • im Received-Header des Absenders
  • Dies ist vor allem ein Datenschutzproblem, wenn Sie Thunderbird verwenden und eine E-Mail senden
  • Der empfangene Header enthält Ihre LAN- und WAN-IP und Informationen über den von Ihnen verwendeten E-Mail-Client. (Originalquelle: AskUbuntu ) Wir möchten den Received-Header aus ausgehenden E-Mails entfernen.

Dies kann durch die folgenden Schritte erfolgen:

Fügen Sie die folgende Zeile hinzu main.cf:

smtp_header _checks = regulärer Ausdruck:/etc/postfix/smtp_header_checks

Erstellen /etc/postfix/smtp_header_checks mit diesem Inhalt:

/^Received: .*/     IGNORE
/^User-Agent: .*/   IGNORE

Zum Schluss neu starten postfix.service.

Regelbasierte Mailverarbeitung

Mit Richtliniendiensten kann man das Postfix-Verhalten bei der Zustellung von E-Mails leicht anpassen. postfwd und policyd policyd-pgsql oder policyd-sqlite stellen dafür Dienste bereit.

  • Damit können Sie z.B, zeitbewusstes Grey- und Blacklisting von Sendern und Empfängern sowie SPF Policy-Checking implementieren.

Richtliniendienste sind eigenständige Dienste und wie folgt mit Postfix verbunden:

/etc/postfix/main.cf
smtpd_recipient_restrictions =
 . ..
  check_policy_service unix:/run/policyd.sock
  check_policy_service inet:127.0.0.1:10040

Das Platzieren von Richtliniendiensten am Ende der Warteschlange reduziert die Last, da nur legitime E-Mails verarbeitet werden.

  • Achten Sie darauf, es vor der ersten Erlaubnisanweisung zu platzieren, um alle eingehenden Nachrichten abzufangen.