|
|
(31 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)].
| |
|
| |
| Aliase (Weiterleitungen) werden in <tt>/etc/postfix/aliases</tt> definiert
| |
|
| |
| So sollten zum Beispiel alle an root gerichteten Nachrichten an ein anderes Konto weitergeleitet werden, da E-Mails nicht als root gelesen werden sollten.
| |
|
| |
| Kommentieren Sie die folgende Zeile aus und ändern Sie sie <tt>''you''</tt> auf ein echtes Konto.
| |
| root: you
| |
| Sobald die Bearbeitung gespeichert wurde, muss der Postalias-Befehl ausgeführt werden:
| |
| postalias /etc/postfix/aliase
| |
|
| |
| Für spätere Änderungen kann ''newaliases'' verwendet werden.
| |
| newaliases
| |
|
| |
| '''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. 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 383: |
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]
| |