privater mailserver? aber sicher! mit postfix & co zum
TRANSCRIPT
Privater Mailserver? Aber sicher!Mit Postfix & Co zum sicheren privaten Mailserver
Patrick Lesky, Wolfgang BergerGrazer Linuxtage 2018
Agenda
- Motivation und grundsätzliche Überlegungen
- Das klassische E-Mail-Konzept
- Die moderne Groupware-Lösung
- Sicherheit und Spam-Schutz
Grundsätzliche Überlegungen
CC0 by Finmiki @ pixabay.com CC BY-NC-ND 2.0 by CommScope @ flickr.com
||
Hosting at Home
- Habe ich eine statische IP Adresse?
- Stimmt mein Reverse DNS (PTR) Record mit dem A-Record überein?
- Welche Zuverlässigkeit kann ich gewährleisten?
- Welche Hardware möchte ich einsetzen?
- Daten bleiben in meiner Hoheit!
CC BY 3.0 by Ersay Zesen
Hosting in der Cloud
- VPS kostet monatlich Geld
- In der Regel eine statische IP vorhanden
- Reverse DNS Record kann einfach gesetzt werden
- Hohe Zuverlässigkeit
- Keine Hardware-Investition nötig
- Datensicherheit ist Vertrauenssache
Mail Transfer Agents
- Nimmt die E-Mails entgegen und leitet sie weiter
- SMTP Protokoll
- Herzstück des Mail-Setups
- Software
- Sendmail
- Exim
- Postfix
Mail Delivery Agents
- Stellt die E-Mails an die Nutzerkonten zu
- POP3 oder IMAP Protokoll
- Software
- Cyrus IMAP Server
- Postdrop
- Dovecot
ISPConfig
- Multi Tenant Open Source Administrationsoberfläche für- Mail- Web- Datenbank- DNS- OpenVZ Virtualisierung
- Veröffentlicht unter BSD-2-Clause
https://ispconfig.org
Die moderne Groupware-Lösung
- E-Mails, Kalender, Kontakte, Aufgaben, Notizen
- Einfache Zusammenarbeit mit mehreren Benutzern
- Synchronisation mit mobilen Geräten
- Umfangreiche Webmail-Oberfläche
- Software
- Zimbra
- Kopano (Fork von Zarafa)
Kopano
- Community-Variante ist kostenlos (nightly builds)
- Open Source Alternative zu Microsoft Exchange
- Modularer Aufbau und gute Skalierbarkeit
- Moderne Weboberfläche
- ActiveSync mit Z-Push
- IMAP und POP3 Funktionalität integriert
- S/MIME Support https://kopano.com
Sicherheitsmaßnahmen
- Sichere Infrastruktur
- Spamfilter und Virenscanner
- Nutzen der Sicherheits-Frameworks
- SPF
- DKIM
- DMARC
- Sichere Konfiguration des Mail-Servers
Postfix absichern / Postscreen
- “First layer of defense”
- Vor dem smtpd (SMTP Daemon)
- Abwehr von Spam-Zombies
- Prüfung auf SMTP-Protokoll Ebene
- B: Pregreet test
- B: DNSBL checks (besser Rspamd überlassen), ...
- A: Command pipelining test
- A: Non-SMTP command test, ...
Referenz: http://www.postfix.org/POSTSCREEN_README.html
Postfix absichern / Postscreen Config# master.cf
# ==========================================================================# service type private unpriv chroot wakeup maxproc command + args# (yes) (yes) (no) (never) (100)# ==========================================================================#smtp inet n - y - - smtpdsmtp inet n - y - 1 postscreensmtpd pass - - y - - smtpd#dnsblog unix - - y - 0 dnsblogtlsproxy unix - - y - 0 tlsproxy#submission inet n - y - - smtpd
...
# main.cf
...
# BEFORE 220 GREETING TESTS #
# Time to wait for an client talking first.postscreen_greet_wait = ${stress?{2}:{4}}s
# Reject if greeting tests fail.postscreen_greet_action = enforce
...
Postfix absichern / Access Control
- smtpd_client_restrictions
- smtpd_helo_restrictions
- smtpd_sender_restrictions
- smtpd_relay_restrictions
- smtpd_recipient_restrictions
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname, #reject_unknown_reverse_client_hostname, reject_unauth_pipelining
smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_non_fqdn_recipient, #reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unverified_recipient
Referenz: http://www.postfix.org/SMTPD_ACCESS_README.html
Postfix absichern / TLS
# main.cf
...
# TLS security level# may = Opportunistic TLSsmtpd_tls_security_level = maysmtp_tls_security_level = may
smtpd_tls_protocols = !SSLv2,!SSLv3smtp_tls_protocols = !SSLv2,!SSLv3
smtpd_tls_ciphers = Highsmtp_tls_ciphers = High
smtpd_tls_dh1024_param_file = /etc/postfix/dh.pemsmtpd_tls_eecdh_grade = ultra
...
TLS anbieten, aber nicht “enforcen”
Postfix absichern / Connection Limits
# main.cf
...
# Connection Limits
smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = ${stress?{1}:{20}}
smtpd_client_connection_count_limit = 10
smtpd_client_connection_rate_limit = 60
...
Absicherung Webmail
- HTTPS (Pro-Tipp: Let’s Encrypt)
- TLS Settings und Ciphers
- Reverse Proxy WAF (mod_security)
- HTTP Security Headers
- Starke Passwörter
- Webmail fail2ban Regex schreiben
Sicherheits-Frameworks
- SPF
- Spoofing verhindern
- Validierung, ob der Absender (Host) für die Domain berechtigt ist
- DKIM
- Kryptographische Signaturen
- Validierung mittels Public Key im DNS
- DMARC
- Policies für den Umgang mit DKIM/SPF-Verstößen und Reporting
Sicherheits-Frameworks / DNS Records
- SPF
- @ TXT “v=spf1 ip4:1.2.3.4 mx -all”
- DKIM
- _xyz._domainkey TXT “v=DKIM1; k=rsa; h=sha256; p=MIIBIjAN...; t=s”
- DMARC
- _dmarc TXT “v=DMARC1; p=reject; pct=100;
rua=mailto:[email protected]; ruf=mailto:[email protected]; adkim=r;
aspf=r; fo=1”
DNSSEC
Spamfilter
- AMaViS (amavisd-new) und SpamAssassin
- “Der Klassiker”
- Einfache Integration von Virenscannern
- Pyzor und Razor
- Rspamd
- Moderner Ansatz
- Fokus auf Performance
- Web Interface
Rspamd
- Einfache Integration in Postfix (milter)
- Weboberfläche
- SPF, DKIM, DMARC, ARC
- DNSBL checks
- Greylisting
- Fuzzy hashes
- Phishing checks, ...CC-BY-4.0 by Vsevolod Stakhov (vstakhov) - https://rspamd.com
Alle Features: https://rspamd.com/features.html
Rspamd / Postfix Integration
# main.cf
...
# Default action when a Milter (mail filter)
# application is unavailable or mis-configured
milter_default_action = tempfail
milter_protocol = 6
# Use rspamd via milter protocol
smtpd_milters = inet:localhost:11332
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
...
Virenscanner
https://www.clamav.net/https://www.sophos.com
Sophos AV for Linux: “Free as in free beer”
Sophos und ClamAV sind in AMaViS und Rspamd integrierbar. Rspamd benötigt für Sophos AV SAVDI als Daemon!
Hilfreiche Tools
- https://mxtoolbox.com/
- http://dkimvalidator.com/
- https://emailsecuritygrader.com/
- https://www.mail-tester.com/spf-dkim-check