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 „/“
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=== 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.
=== Lokaler Mailserver ===
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 Mailserver  ===
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>.
== 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.&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]


=== 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 197: 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.