robertdebock.postfix
Ansible-Rolle Postfix
Installieren und konfigurieren Sie Postfix auf Ihrem System.
GitHub | GitLab | Downloads | Version |
---|---|---|---|
Beispiel-Playbook
Dieses Beispiel stammt aus molecule/default/converge.yml
und wird bei jedem Push, Pull Request und Release getestet.
---
- name: Konvergenz
hosts: alle
become: true
gather_facts: true
roles:
- role: robertdebock.postfix
# postfix_relayhost: "[relay.example.com]"
postfix_myhostname: "smtp.example.com"
postfix_mydomain: "example.com"
postfix_myorigin: "example.com"
postfix_mynetworks:
- 127.0.0.0/8
- 192.168.0.0/16
postfix_aliases:
- name: root
destination: [email protected]
# Ziggo-Einstellungen: ("email-address" und "email-password" sind Platzhalter)
postfix_relayhost: "[smtp.ziggo.nl]:587"
postfix_smtp_sasl_auth_enable: true
postfix_smtp_sasl_password_map: "/etc/postfix/relay_pass"
postfix_smtp_sasl_security_options: ""
postfix_smtp_tls_wrappermode: false
postfix_smtp_tls_security_level: may
postfix_smtp_sasl_password_map_content: |
[smtp.ziggo.nl]:587 email-address:email-password
Die Maschine muss vorbereitet werden. In CI erfolgt dies mit molecule/default/prepare.yml
:
---
- name: Vorbereiten
hosts: alle
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
- role: robertdebock.core_dependencies
Siehe auch eine vollständige Erklärung und Beispiel zur Verwendung dieser Rollen.
Rollenvariablen
Die Standardwerte für die Variablen sind in defaults/main.yml
festgelegt:
---
# Standardeinstellungen für Postfix
# Diese Einstellungen sind in Postfix erforderlich.
postfix_myhostname: "{{ ansible_fqdn }}"
postfix_mydomain: "{{ ansible_domain | default('localdomain', true) }}"
postfix_myorigin: "{{ ansible_domain | default('localdomain', true) }}"
# Um auf öffentlichen Schnittstellen "zuhören" zu können, setzen Sie inet_interfaces auf etwas wie
# "all" oder den Namen der Schnittstelle, wie "eth0".
postfix_inet_interfaces: "loopback-only"
# Aktivieren Sie IPv4 und IPv6, falls unterstützt - wenn nur IPv4, auf ipv4 setzen
postfix_inet_protocols: all
# Setzen Sie ein Banner
postfix_banner: "$myhostname ESMTP $mail_name"
# Das Ziel bestimmt, für welche Mails Postfix akzeptieren soll.
postfix_mydestination: $mydomain, $myhostname, localhost.$mydomain, localhost
# Um E-Mails von anderen Maschinen zu akzeptieren, setzen Sie mynetworks auf etwas wie
# "- 192.168.0.0/24".
postfix_mynetworks:
- 127.0.0.0/8
# Diese Einstellungen ändern die Rolle des Postfix-Servers zu einem Relay-Host.
# postfix_relay_domains: "$mydestination"
# Wenn Sie E-Mails an einen anderen zentralen Relay-Server weiterleiten möchten, setzen Sie relayhost.
# Verwenden Sie Klammern, um zum A-Record des Relayhost zu senden.
# postfix_relayhost: "[relay.example.com]"
# Setzen Sie die Einschränkungen für den Empfang von Mails.
postfix_smtpd_recipient_restrictions:
- permit_mynetworks
- permit_sasl_authenticated
- reject_unauth_destination
- reject_invalid_hostname
- reject_non_fqdn_hostname
- reject_non_fqdn_sender
- reject_non_fqdn_recipient
- reject_unknown_sender_domain
- reject_unknown_recipient_domain
- reject_rbl_client sbl.spamhaus.org
- reject_rbl_client cbl.abuseat.org
- reject_rbl_client dul.dnsbl.sorbs.net
- permit
postfix_smtpd_sender_restrictions:
- reject_unknown_sender_domain
# Das Standard-SMTP-TLS-Sicherheitsniveau für den Postfix-SMTP-Client
# Gültige Werte sind: dane, encrypt, fingerprint, may, none, secure, verify
postfix_smtp_tls_security_level: none
# Um SpamAssassin zu aktivieren, stellen Sie sicher, dass SpamAssassin installiert ist,
# (Hinweis: role: robertdebock.spamassassin) und setzen Sie diese beiden Variablen:
# postfix_spamassassin: enabled
# postfix_spamassassin_user: spamd
# Um ClamAV zu aktivieren, stellen Sie sicher, dass ClamAV installiert ist,
# (Hinweis: role: robertdebock.clamav) und setzen Sie diese Variable:
# postfix_clamav: enabled
# Sie können hier Aliase konfigurieren. Typischerweise ist das Umleiten von `root` ein guter Plan.
# postfix_aliases:
# - name: root
# destination: [email protected]
# Sie können hier Senderzugriffssteuerungen konfigurieren.
# postfix_sender_access:
# - domain: gooddomain.com
# action: OK
# - domain: baddomain.com
# action: REJECT
# Sie können hier Empfängerzugriffssteuerungen konfigurieren.
# postfix_recipient_access:
# - domain: gooddomain.com
# action: OK
# - domain: baddomain.com
# action: REJECT
# Sie können hier SSL/TLS-Versionen deaktivieren.
# postfix_tls_protocols: '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1'
# Sie können hier eine transport_maps Jinja2-Vorlage bereitstellen
# postfix_transport_maps_template: /path/to/transport.j2
# Sie können hier eine header_checks Jinja2-Vorlage bereitstellen
# postfix_header_checks_template: /path/to/header_checks.j2
# Ob den lokalen Biff-Dienst verwenden oder nicht.
# postfix_biff: true
# Bei lokal eingereichter Mail die Zeichenkette ".$mydomain" an Adressen anhängen, die keine ".domain" Informationen haben
# postfix_append_dot_mydomain: false
# Die Alias-Datenbanken, die für die lokale(8)-Zustellung verwendet werden
# postfix_alias_maps: "hash:/etc/aliases"
# Ein Präfix, das der virtual(8)-Zustellagent allen Pfadnamens Ergebnissen aus $virtual_mailbox_maps Tabellenabfragen voranstellt.
# postfix_virtual_mailbox_base: /var/mail
# Optionale Nachschlagetabellen mit allen gültigen Adressen in den Domains, die `$virtual_mailbox_domains` entsprechen.
# postfix_virtual_mailbox_maps: mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
# Postfix ist das endgültige Ziel für die angegebene Liste von Domains; Mail wird über den $virtual_transport Zustelltransport zugestellt
# postfix_virtual_mailbox_domains: "$virtual_mailbox_maps"
# Postfix ist das endgültige Ziel für die angegebene Liste von virtuellen Alias-Domains, das sind Domains, für die alle Adressen in andere lokale oder entfernte Domains umgeleitet werden.
# postfix_virtual_alias_domains: "$virtual_alias_maps"
# Optionale Nachschlagetabellen, die bestimmte E-Mail-Adressen oder Domains an andere lokale oder entfernte Adressen aliasieren.
# postix_virtual_alias_maps: "$virtual_maps"
# Nachschlagetabellen mit der Benutzer-ID pro Empfänger, die der virtual(8)-Zustellagent beim Schreiben in das Postfach des Empfängers verwendet.
# postfix_virtual_uid_maps: "static:2000"
# Nachschlagetabellen mit der Gruppen-ID pro Empfänger zur virtuellen(8) Zustellung.
# postfix_virtual_gid_maps: "static:2000"
# Aktivieren Sie die SASL-Authentifizierung im Postfix-SMTP-Server.
# postfix_smtpd_sasl_auth_enable: true
# Der Name des lokalen SASL-Authentifizierungsbereichs des Postfix-SMTP-Servers.
# postfix_smtpd_sasl_local_domain: $myhostname
# Postfix-SMTP-Server-SASL-Sicherheitsoptionen; seit Postfix 2.3 hängt die Liste der verfügbaren Funktionen von der SASL-Serverimplementierung ab, die mit smtpd_sasl_type ausgewählt wird.
# postfix_smtpd_sasl_security_options: noanonymous
# Melden Sie den SASL-authentifizierten Benutzernamen im smtpd(8) Received-Nachrichthdr.
# postfix_smtpd_sasl_authenticated_header: true
# Aktivieren Sie die Interoperabilität mit entfernten SMTP-Clients, die eine veraltete Version des AUTH-Befehls implementieren (RFC 4954).
# postfix_broken_sasl_auth_clients: false
# Eine Datei mit (PEM-Format) CA-Zertifikaten von Root-CA, die vertrauenswürdig sind, um entweder entfernte SMTP-Client-Zertifikate oder Zwischen-CA-Zertifikate zu signieren.
# postfix_smtpd_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Datei mit dem RSA-Zertifikat des Postfix-SMTP-Servers im PEM-Format.
# postfix_smtpd_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Lokale Datei mit dem RSA-Zertifikat des Postfix-SMTP-Servers im PEM-Format, die auf das Ziel-Host kopiert werden soll.
# postfix_smtpd_tls_cert_file_source: ./certs/cert.pem
# Datei mit dem RSA-Privatschlüssel des Postfix-SMTP-Servers im PEM-Format.
# postfix_smtpd_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem
# Lokale Datei mit dem RSA-Privatschlüssel des Postfix-SMTP-Servers im PEM-Format, die auf das Ziel-Host kopiert werden soll.
# postfix_smtpd_tls_key_file_source: ./certs/privkey.pem
# Fordern Sie den Postfix-SMTP-Server auf, empfangene Nachrichtenheader zu erzeugen, die Informationen über das verwendete Protokoll und die verwendete Verschlüsselung sowie den CommonName des entfernten SMTP-Clients und den CommonName des Zertifikatsausstellers enthalten.
# postfix_smtpd_tls_received_header: true
# Das Standard-SMTP-TLS-Sicherheitsniveau für den Postfix-SMTP-Client; wenn ein nicht leerer Wert angegeben wird, überschreibt dies die veralteten Parameter smtp_use_tls, smtp_enforce_tls und smtp_tls_enforce_peername.
# postfix_smtpd_tls_security_level: may
# Fragen Sie einen entfernten SMTP-Client nach einem Client-Zertifikat.
# postfix_smtpd_tls_ask_ccert: true
# Aktivieren Sie zusätzliche Protokollierung von TLS-Aktivitäten im Postfix-SMTP-Server.
# postfix_smtpd_tls_loglevel: 1
# Name der Datei mit dem optionalen TLS-Sitzungscache des Postfix-SMTP-Servers.
# postfix_smtpd_tls_session_cache_database: btree:/var/lib/postfix/smtpd_tls_session_cache
# Eine Datei mit CA-Zertifikaten von Root-CA, die vertrauenswürdig sind, um entweder entfernte SMTP-Serverzertifikate oder Zwischen-CA-Zertifikate zu signieren.
# postfix_smtp_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Datei mit dem RSA-Zertifikat des Postfix-SMTP-Clients im PEM-Format.
# postfix_smtp_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Datei mit dem RSA-Privatschlüssel des Postfix-SMTP-Clients im PEM-Format.
# postfix_smtp_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem
# Name der Datei mit dem optionalen TLS-Sitzungscache des Postfix-SMTP-Clients.
# postfix_smtp_tls_session_cache_database: btree:/var/lib/postfix/smtp_tls_session_cache
# Die externe Entropiequelle für den tlsmgr(8) Pseudo-Zufallszahlengenerator (PRNG) Pool im Speicher.
# postfix_tls_random_source: dev:/dev/urandom
# TLS-Protokolle, die vom Postfix-SMTP-Server mit obligatorischer TLS-Verschlüsselung akzeptiert werden.
# postfix_smtpd_tls_mandatory_protocols: TLSv1
# TLS-Protokolle, die der Postfix-SMTP-Client mit obligatorischer TLS-Verschlüsselung verwenden wird.
# postfix_smtp_tls_mandatory_protocols: TLSv1
# Der Standard-Zustelltransport für die genaue Zustellung an Domains, die mit $virtual_mailbox_domains aufgelistet sind.
# postfix_virtual_transport: maildrop1
# Optionale Pfadangabe einer Postfachdatei relativ zum Home-Verzeichnis eines lokalen(8) Benutzers.
# postfix_home_mailbox: Maildir/
# Die maximale Größe in Bytes einer Nachricht, einschließlich Umschlaginformationen.
# postfix_message_size_limit: 10240000
# Fordern Sie, dass ein entfernter SMTP-Client sich mit dem HELO- oder EHLO-Befehl vorstellt, bevor er den MAIL-Befehl oder andere Befehle sendet, die eine EHLO-Verhandlung erfordern.
# postfix_smtpd_helo_required: false
# Die Zeiteinheit, über die die Verbindungsraten von Clients und andere Raten berechnet werden.
# postfix_anvil_rate_time_unit: 60s
# Die maximale Anzahl von Verbindungsversuchen, die ein Client innerhalb einer Zeiteinheit zu diesem Dienst unternehmen darf.
# postfix_smtpd_client_connection_rate_limit: 10
# Wie viele gleichzeitige Verbindungen ein Client zu diesem Dienst unternehmen darf.
# postfix_smtpd_client_connection_count_limit: 10
# Betrachten Sie eine Rücklaufnachricht als nicht zustellbar, wenn die Zustellung mit einem vorübergehenden Fehler fehlschlägt und die Zeit in der Warteschlange die Grenze bounce_queue_lifetime erreicht hat.
# postfix_bounce_queue_lifetime: 5d
# Der Standort der README-Dateien von Postfix, die beschreiben, wie ein spezifisches Postfix-Subsystem oder eine Funktion erstellt, konfiguriert oder betrieben wird.
# postfix_readme_directory: /usr/share/doc/postfix
# Der Standort der HTML-Dateien von Postfix, die beschreiben, wie ein spezifisches Postfix-Subsystem oder eine Funktion erstellt, konfiguriert oder betrieben wird.
# postfix_html_directory: /usr/share/doc/postfix/html
# Sie können den Port ändern, auf dem Postfix hört.
# Postfix verwendet `/etc/services`, um Dienstnamen in Portnummern wie `2525` zuzuordnen.
# Geben Sie also entweder eine Portnummer oder einen Dienstnamen wie `smtp` an.
postfix_smtp_listen_port: smtp
postfix_smtp_sasl_auth_enable: false
postfix_smtp_sasl_password_map: ""
postfix_smtp_sasl_security_options: ""
postfix_smtp_tls_wrappermode: false
postfix_smtp_sasl_password_map_content: ""
Anforderungen
- Pip-Pakete, die in requirements.txt aufgeführt sind.
Zustand der verwendeten Rollen
Die folgenden Rollen werden verwendet, um ein System vorzubereiten. Sie können Ihr System auf andere Weise vorbereiten.
Anforderung | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies |
Kontext
Diese Rolle ist Teil vieler kompatibler Rollen. Schauen Sie sich die Dokumentation dieser Rollen für weitere Informationen an.
Hier ist eine Übersicht über verwandte Rollen:
Kompatibilität
Diese Rolle wurde auf diesen Container-Images getestet:
Container | Tags |
---|---|
EL | 9 |
Debian | alle |
Fedora | alle |
Ubuntu | alle |
Die Mindestversion von Ansible, die erforderlich ist, beträgt 2.12, Tests wurden durchgeführt auf:
- Die vorherige Version.
- Die aktuelle Version.
- Die Entwicklungsversion.
Wenn Sie Probleme finden, registrieren Sie bitte diese in GitHub.
Lizenz
Autoreninformation
Bitte überlegen Sie, mir finanziell zu unterstützen.
Install and configure postfix on your system.
ansible-galaxy install robertdebock.postfix