34
Privater Mailserver? Aber sicher! Mit Postfix & Co zum sicheren privaten Mailserver Patrick Lesky, Wolfgang Berger Grazer Linuxtage 2018

Privater Mailserver? Aber sicher! Mit Postfix & Co zum

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Privater Mailserver? Aber sicher!Mit Postfix & Co zum sicheren privaten Mailserver

Patrick Lesky, Wolfgang BergerGrazer Linuxtage 2018

Die Vortragenden

Patrick [email protected]

Wolfgang [email protected]

Agenda

- Motivation und grundsätzliche Überlegungen

- Das klassische E-Mail-Konzept

- Die moderne Groupware-Lösung

- Sicherheit und Spam-Schutz

Motivation

CC0 by geralt @ pixabay.com

CC BY 3.0 by Electronic Frontier Foundation (EFF)

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

Klassisch oder Groupware

||

Das klassische E-Mail-Konzept

CC BY-SA 1.0 by George Shuklin @ wikipedia.com

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

Roundcube Weboberfläche

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

Kopano WebApp

Photo by Jason Blackeye on Unsplash

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}

...

Rspamd Weboberfläche

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

Fragen?

All Circle Icons licensed under GNU GPL - © Elegant Themes

Feedbackmöglichkeit

https://glt18-programm.linuxtage.at