|
|
(26 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| = Postfix =
| |
| == 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.
| |
|
| |
| === Lokale Post ===
| |
| Um E-Mails nur an lokale Systembenutzer aus der <tt>/etc/passwd</tt> zu versenden
| |
|
| |
| <tt>/etc/postfix/main.cf</tt>
| |
|
| |
| um die folgende Konfiguration widerzuspiegeln.
| |
|
| |
| Entkommentieren, ändern oder fügen Sie die folgenden Zeilen hinzu:
| |
| myhostname = localhost
| |
| mydomain = localdomain
| |
| mydestination = $myhostname, localhost.$mydomain, localhost
| |
| inet_interfaces = $myhostname, localhost
| |
| mynetworks_style = host
| |
| default_transport = error: outside mail is not deliverable
| |
|
| |
| 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: |
| | # postmap hash:blacklist_incoming |
|
| |
|
| Dann nutzen Sie die <tt>postmap</tt>Befehl zum Erstellen einer Datenbank:
| | Fügen Sie den folgenden Code vor der ersten Zulassungsregel ein |
| # Postmap-Hash: blacklist_incoming
| |
|
| |
|
| Fügen Sie den folgenden Code vor der ersten Zulassungsregel ein <tt>main.cf</tt>:
| | <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. 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 366: |
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]
| |