Radical Server Unit/14.Treffen zu Email

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche

Vortrag von informatom a.k.a. Stefan zu mail-in-the-box & andere Email-Fertiglösungen


Mail Setup von Horst

Am Dienstag 30.05.2017 habe ich kurz über mein Mail-Setup gesprochen. Hier sind noch die versprochenen Infos darüber mit Links.

Ich lasse diese Services auf OpenBSD und FreeBSD laufen, fast alles läuft aber auch unter anderen Systemen wie Linux.

Hardware

Die Network Services (Firewall, Load Balancer und dann auch SMTP/IMAP Services) laufen unter OpenBSD auf mehreren Netgate SG-4860 die von ADI gebaut werden - bestellt bei Voleatech (DE): - ADI-Engineering - Netgate - Voleatech

Ich habe lange überlegt ob ich nicht das orginale Setup mit pfSense verwenden soll, bin mit meiner Entscheidung aber sehr zufrieden.

Die restlichen Services laufen auf FreeBSD unter normalen Intel Xeon Servern von Delta-Computer mit allen Goodies von FreeBSD…

Mail Komponenten

Chess Griffin hat vor einigen Jahren eine schöne Blog-Serie geschrieben die das Standard Setup um Clam und Spam erweitert. Lesenswert.

OpenBSD Base: - smtpd(8) - spamd(8)
- pf(8) - nsd(8)

OpenBSD Ports: - ClamAV - ClamSMTP - SpamAssassin - SpamPD - DKIMproxy - Dovecot

pf(8): Lokale Firewall

Die lokale Firewall pf(8) steuert hier mit Listen welche smtp Verbindungen auf den rechtigen smtp-Server dürfen und welche sich noch mit dem stotternden spamd(8) unterhalten müssen.

#       $OpenBSD: pf.conf,v 1.54 2014/08/23 05:49:42 deraadt Exp $

mail="192.0.2.16"

table <nospamd> persist file "/etc/mail/nospamd"
table <nospamdspf> persist file "/etc/mail/nospamdspf"
table <spamd-white> persist

pass in on egress inet proto tcp to $mail port {imaps submission}
pass in on egress inet proto tcp to $mail port smtp \
                                 rdr-to 127.0.0.1 port spamd
pass in on egress inet proto tcp from <nospamd> to $mail port smtp
pass in on egress inet proto tcp from <nospamdspf> to $mail port smtp
pass in on egress inet proto tcp from <spamd-white> to $mail port smtp

smtpd(8): OpenSMTPD

So sieht die default Konfig von OpenSMTPD aus - ich habe hier in der letzten Zeile nur den Beispiel-Relay eingetragen. Eine solche Konfig haben bei mir die meisten Server, die kein Mail Server sind.

#       $OpenBSD: smtpd.conf,v 1.9 2016/05/03 18:43:45 jung Exp $

# This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.

table aliases file:/etc/mail/aliases

# To accept external mail, replace with: listen on all
#
listen on lo0

# Uncomment the following to accept external mail for domain "example.org"
#
# accept from any for domain "example.org" alias <aliases> deliver to mbox
accept for local alias <aliases> deliver to mbox
accept from local for any relay via mail.example.com


Die Mail Server konfig sieht etwa so aus:

#   $OpenBSD: smtpd.conf,v 1.8 2015/12/21 16:25:44 sunil Exp $

ext_if="192.10.2.16"

pki mail.example.com certificate "/etc/ssl/mail.exmaple.com.crt"
pki mail.example.com key "/etc/ssl/private/mail.example.com.key"
ca  mail.example.com certificate "/etc/ssl/cert.pem"

table office { "10.120.0.0/20", "198.51.100.0/24" }
table aliases db:/etc/mail/aliases.db
table vdomains { "example.com" "example.org" }
table users db:/etc/mail/virtusertable.db
# table creds db:/etc/mail/credentials.db
# table ldapconf ldap:/etc/mail/ldapd.conf

listen on lo0
listen on lo0 port 10026 tag CLAM_IN
listen on lo0 port 10028 tag CLAM_OUT
listen on lo0 port 10036 tag SPAM_IN
listen on lo0 port 10029 tag DKIM_OUT
listen on $ext_if tls pki mail.example.com
listen on $ext_if port submission tls-require pki mail.example.com auth

accept for local alias <aliases> deliver to maildir

accept tagged DKIM_OUT for any relay

accept tagged SPAM_IN for domain <vdomains> virtual <users> \
    deliver to lmtp "/var/dovecot/lmtp"

accept tagged CLAM_IN  for any relay via smtp://127.0.0.1:10035  # to spampd
accept tagged CLAM_OUT for any relay via smtp://127.0.0.1:10030  # to dkimproxy_out

accept from any for domain <vdomains> relay via smtp://127.0.0.1:10025 # in
accept from local for any relay via smtp://127.0.0.1:10027  # out

SOGo: CalDAV, CardDAV und WebUI

Nach langem Suchen habe ich SOGo gefunden. Das läuft bei mir in einem FreeBSD-Kerker und verwendet PostgreSQL, memcached und servisiert über Nginx.

Das SOGo User Interface greift auf Dovecot zu und hat auch für dessen Sieve scripts eine sehr benutzerfreundliche Administration. Die User-Sieve Scripts bleiben trotzdem auch im Home-Dir editierbar, wofür ich sehr dankbar bin.

LDAP

Die Sogo-Dokumentation ist etwas unglücklich in Bezug auf Authentication. Die meisten größeren Setups verwenden sicher LDAP für Authentication, aber das System kommt genauso gut mit einer Datenbank-Tabelle aus (siehe FreeBSD Konfig Template). Ich bin hier etwas sonderbar und habe zu LDAP eine gute Beziehung.

Well-Known

Damit das mit den Clients dann auch klappt, gibt es noch RFC6764 der die Well-Known URI und die Service Name Registration beschreibt.

horst kapfenberger, 1.Jun.2017


Vorstellung der neuen pad-instaz

Kleines Stimmungsbild für die nächsten Themen

  • Vertrauen 10
  • Virualisirung 9
  • Ansible 7
  • Wireshark 7
  • Social media 5
  • yunohost 3