pimvh.postfix
Anforderungen
- Ansible installiert:
sudo apt install python3
python3 -m ensurepip --upgrade
pip3 install ansible
- Diese Rolle installiert:
ansible-galaxy install pimvh.postfix
Benötigte Variablen
Überprüfen Sie die Variablen wie in den Standardeinstellungen gezeigt. Eine Beschreibung der Variablen finden Sie in der Argumentbeschreibung in meta/main.yaml. Die an diese Rolle übergebenen Variablen werden zur Laufzeit durch die Argumentbeschreibung validiert.
Beispiel-Playbook
Eine einfache Möglichkeit, diese Rolle auf einem Host auszuführen, ist wie folgt:
- hosts:
- foo
vars:
postfix_ipv4: << Geben Sie hier die IPv4-Adresse des Postfix-Mailservers ein >>
postfix_ipv6: << Geben Sie hier die IPv6-Adresse des Postfix-Mailservers ein >>
postfix_myhostname: "<< Geben Sie hier den Postfix-Domainnamen ein >>"
postfix_mydomain: "<< Geben Sie hier die Postfix-Domain ein, standardmäßig myhostname >>"
postfix_mynetworks:
- 127.0.0.0/8
- "::1/128" # IPv6-Adressen müssen nicht in Klammern gesetzt werden, das wird von Filtern übernommen
# Fügen Sie zusätzliche Netzwerke nach Bedarf hinzu
postfix_virtual_alias_domains: [] # Fügen Sie virtuelle Alias-Domains hinzu, wenn nötig (siehe meta/main.yaml für die Struktur)
postfix_relay_domains: [] # Fügen Sie Relay-Domains hinzu, wenn nötig (siehe defaults/main.yaml für die Struktur)
postfix_aliases: # Fügen Sie Benutzeraliasnamen hinzu, wenn nötig
- user: root
alias: postmaster
# kann auch eine Liste von Benutzern sein
# - users:
# - fred
# - foo
# - bar
# alias: etwas
postfix_virtual_aliases: [] # Fügen Sie virtuelle Aliase hinzu, wenn nötig (siehe meta/main.yaml für die Struktur)
# Wahrscheinlich können Sie den Rest der Variablen überspringen
# postfix_install: true
# postfix_dir: /etc/postfix
# postfix_dkim_enabled: true # DKIM ist standardmäßig aktiviert
# postfix_dkim_keys:
# default:
# mail: "*"
# DKIM-Dateiplatzierung im Dateisystem
# postfix_dkim_keytable: /etc/opendkim/keytable
# postfix_dkim_signingtable: /etc/opendkim/signingtable
# postfix_dkim_trustedhosts: "/etc/opendkim/trustedhosts"
# Der Zertifikatsstandort basiert auf dem Standardplatz von Certbot (Sie können die Rolle pimvh.certbot ausführen, um Zertifikate abzurufen)
# postfix_smtpd_tls_cert_file: "/etc/letsencrypt/live/{{ postfix_mydomain }}/fullchain.pem"
# postfix_smtpd_tls_key_file: "/etc/letsencrypt/live/{{ postfix_mydomain }}/privkey.pem"
roles:
- pimvh.postfix
Sie werden sich wahrscheinlich einige Refaktorisierungen ersparen, wenn Sie Variablen nicht inline festlegen, sondern basierend auf Hosts und/oder Gruppen. Dies hängt jedoch von Ihrem speziellen Anwendungsfall ab. Werfen Sie einen Blick auf die empfohlenen Playbook-Einstellungen von Ansible dafür.
TLDR - Was passiert, wenn ich das ausführe
- Überprüfung, ob alle Variablen korrekt sind
- Installation von Postfix
- Installation und Konfiguration von Amavis
- Installation und Konfiguration von Opendkim
- Installation und Konfiguration von Opendmarc
- Installation und Konfiguration von Dovecot mit Systembenutzern und virtuellem Mailverzeichnis
- Konfiguration von Mailutils (installiert durch die abhängige Rolle)
Was diese Rolle nicht tut
Firewall
Diese Rolle übernimmt keine Firewall-Konfiguration, da Sie wahrscheinlich spezifische Anforderungen dafür haben. Sie möchten wahrscheinlich Ihren IMAP-Port nicht für das gesamte Internet öffnen, wenn es vermeidbar ist. Seien Sie also vorsichtig!
Einrichtung eines Datenbank-Backends
Ich habe noch nicht mit der Konfiguration eines Datenbank-Backends für Postfix begonnen. Wenn Sie interessiert sind, können Sie gerne beitragen.
Fehlersuche
Diese Rolle validiert die übergebenen Variablen. Wenn Sie:
- Probleme mit der Argumentbeschreibung sehen, haben Sie wahrscheinlich einen Fehler beim Übergeben der Variablen an diese Rolle gemacht.
- Probleme beim Ausführen dieses Playbooks haben, zögern Sie nicht, Ihr Problem im Detail zu beschreiben und ein Issue zu eröffnen.
Zukünftige Verbesserungen
Es gibt noch mehrere Dinge, die für diese Rolle verbessert werden können. Folgendes plane ich hinzuzufügen:
- Ein DMARC-Parsing-Tool hinzufügen
- Ein besseres Backend für den Postfix-Server hinzufügen, wie eine Datenbank anstelle des reinen Dateisystems.
Wenn Sie andere Verbesserungen haben, können Sie gerne ein Issue eröffnen.
Quellen
role to configure postfix, with ClamAV, Amavis, DKIM, SPF and DMARC
ansible-galaxy install pimvh.postfix