ubermail.ubermail
Übermail
Eine Ansible-Rolle zur Erstellung und Wartung deiner eigenen Mailstack. Hardforked und umstrukturiert von Sovereign.
Einführung
Sovereign (https://github.com/sovereign/sovereign) ist ein großartiges Set von Ansible-Playbooks, das du verwenden kannst, um deine eigene persönliche Cloud (E-Mail, Kalender, Kontakte, Dateien synchronisieren, IRC-Bouncer, VPN und mehr) basierend auf Open-Source-Software zu erstellen und zu pflegen. Während ich Sovereign genutzt habe, hatte ich immer wieder kleine, aber nervige Probleme, die größtenteils auf Fehlkonfigurationen, veraltete Pakete und eine große Wartungsbelastung/Angriffsfläche zurückzuführen waren, da ich eine komplette Cloud bereitstellte. Schließlich benutzte ich (eine gepatchte und redigierte Version von) Sovereign, die sich darauf konzentrierte, nur den Mailstack zu bieten, aber besser (zumindest für mich).
Übermail ist ein Hardfork meiner gepatchten und redigierten Version von Sovereign. Mit Übermail möchte ich
- den Code weiter umstrukturieren, während ich mir gleichzeitig darüber klar werde, "wie" ich das tun will
- mich darauf konzentrieren, nur einen vollständigen Mailstack bereitzustellen
- Ideen von Sovereign und anderen coolen Projekten wie Mailcow oder IRedMail auswählen.
Roadmap
- Von Debian 8 auf Ubuntu 18.04 portiert
- Postgres auf 10 aktualisiert
- postgrey fallen gelassen zugunsten des Graylisting rspamd-Filters
- Solr/Tomcat aktualisiert
- z-push aktualisiert
- Unterstützung für https://github.com/imapsync/imapsync/ hinzugefügt
- Verbesserung der Webmail-Erfahrung (roundcube-Updates, roundcube-Plugins, andere Clients)
- Codebereinigung
- Unterstützung für multidomain autoconfig
- ntp durch crony ersetzt
- Einige Konfigurationen an spezialisierte Rollen delegieren (z. B. ssh, php usw.)
- Sicherheitsprüfung und verschiedene Härtungsmaßnahmen
- Benutzer ohne Ansible erstellen/ändern und diese irgendwo speichern (damit sie nicht überschrieben werden)
Anforderungen
Diese Rolle erfordert derzeit ähnliche DNS-Einträge:
example.com MX mail.example.com
example.com A <deine-ip-adresse>
autoconfig.example.com A <deine-ip-adresse>
mail.example.com A <deine-ip-adresse>
Ein vollständiger DNS-Konfigurationsleitfaden (einschließlich SPF, DKIM, PTR und DMARC) wird für jede virtuelle Domain in /opt/ubermail generiert.
Beispiel-Playbook
###
### Ubermail-Konfiguration
###
mail_rspamd_password: <dein-sehr-langes-zufälliges-passwort-hier>
domain: "ubermail.com"
main_user_name: "admin" # root hier einzustellen wird die gewöhnliche Aufgabe des Google-Authentifikators fehlschlagen, da /home/$user erwartet wird, nicht /root
common_timezone: 'Europe/Prague'
###
### Ubermail-Domains
###
mail_virtual_domains:
- { pk_id: 1, name: "{{ domain }}", rfc2142_destination: "{{ admin_email }}" }
- { pk_id: 2, name: "example.com", rfc2142_destination: "{{ admin_email }}" }
- { pk_id: 3, name: "example.org", rfc2142_destination: "{{ admin_email }}" }
# Wenn {{ rfc2142_destination }} gesetzt ist, werden gemeinsame Postfächer, speziell:
# root@domain, abuse@domain, hostmaster@domain, postmaster@domain, webmaster@domain
# Aliase von {{ rfc2142_destination }}
mail_virtual_users:
# ubermail.com
- { domain_pk_id: 1, domain: "{{ domain }}", account: "{{ main_user_name }}", password: "admins-geheimes-passwort" }
# example.com persönlich
- { domain_pk_id: 2, domain: example.com, account: user1, password: "passwort1" }
- { domain_pk_id: 2, domain: example.com, account: user2, password: "passwort2" }
# example.org persönlich
- { domain_pk_id: 3, domain: example.org, account: looser1, password: "pwdlo1" }
- { domain_pk_id: 3, domain: example.org, account: looser2, password: "pwdlo2" }
mail_virtual_aliases: # pk = Quelle
- { domain_pk_id: 2, source: "[email protected]", destination: "[email protected], [email protected]" }
- { domain_pk_id: 2, source: "[email protected]", destination: "[email protected]" }
mail_virtual_sieves:
- domain: "example.com"
account: user1
rule:
- name: move-beer
cond: 'anyof (header :contains "subject" "beer")'
acts: |
fileinto "INBOX.beer";
Erwartbares Ergebnis
- Ein vollständiger Mailstack mit postfix/dovecot/rspamd/solr/roundcubemail/certbot
- Rspamd bietet Graylisting, Antivirenprogramme, Spamfilterung, dkim
- Überwachung und Sicherheit durch monit, collectd und viele andere Dienstprogramme
- Webmail unter https://mail.example.com/
- Rspamd-Verwaltung unter https://mail.example.com/rspamd/
- Autokonfiguration unter https://autoconfig.example.com/
Tests, Sicherstellung der E-Mail-Zustellung
- Überprüfe DKIM/DMARC/SPF/PTR und mehr unter https://www.mail-tester.com/, um nach DNS-Fehlern zu suchen. Du solltest eine perfekte 10/10 erreichen.
- Prüfe https://whatismyipaddress.com/blacklist-check, ob die IP-Adresse deines Servers nicht auf gängigen Blacklists steht.
- Überprüfe, ob Google deine E-Mails an Gmail-Mailboxen liefert. Selbst ein perfekt verwalteter Mailserver ohne Spam-Verhalten kann bestraft werden. Versuche, dies zu melden unter https://support.google.com/mail/contact/msgdelivery und/oder registriere einen txt-Eintrag für deine Domains unter https://postmaster.google.com. Es lebe unser neuer Herrscher :-/
- Wenn E-Mails weiterhin nicht zugestellt werden, versuche, alle zugewiesenen IPv6-Adressen zu entfernen und/oder den IPv6-Stack auf deinem Server/VPS vollständig zu deaktivieren. Google (und einige andere Anbieter) können stark bestrafen, wenn IPv6 auf einem Mailserver erkannt wird.
- Benötigst du umfassendere Zustellungstests? Melde dich für einen kostenlosen Account unter https://glockapps.com/ an, um Tests bei allen wichtigen Freemail-Anbietern durchzuführen.
Beiträge sind willkommen
Möchtest du einen PR senden? Möchtest du als Entwickler/Release-Ingenieur beitreten? Möchtest du anders helfen? Großartig! Ich freue mich, dich an Bord zu begrüßen.
Hinweise
- Teste deinen (eingehenden) Spamfilter mit https://www.emailsecuritycheck.net/
- Teste deine (ausgehenden) Spam-Wahrscheinlichkeit mit https://www.mail-tester.com/
- Überprüfe Spam-Listen usw.:
Ähnliche Projekte
Übermail ist nicht das Richtige für dich? Hol dir eine Kopie von
Ansible role to deploy a complete mailstack (postfix, dovecot, rspamd). Hardfork of the Sovereign project.
ansible-galaxy install ubermail.ubermail