From 55d084bcfc5b4e1eab287ae0979dbda588e0f4e7 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Sat, 15 Jul 2023 09:53:40 +0200 Subject: [PATCH] config/mail: tweak opensmtpd config --- config/mail.scm | 23 ++++++++++++++--------- hosts/oswald/system.scm | 1 - 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/config/mail.scm b/config/mail.scm index 7d7f28c..6681f8c 100644 --- a/config/mail.scm +++ b/config/mail.scm @@ -6,7 +6,12 @@ #:use-module (services dkim-key) #:export (mail-services)) -(define* (opensmtpd-config #:key interface domain aliases dkim-selector) +(define (key-file domain) + (string-append "/etc/letsencrypt/live/" domain "/privkey.pem")) +(define (cert-file domain) + (string-append "/etc/letsencrypt/live/" domain "/fullchain.pem")) + +(define* (opensmtpd-config #:key domain aliases dkim-selector) (define (format-aliases aliases) (format #f "~:{~a: ~a\n~}\n" (cons* '("MAILER-DAEMON" "postmaster") @@ -21,25 +26,25 @@ smtp max-message-size \"1G\" table aliases file:" (mixed-text-file "aliases" (format-aliases aliases)) " -pki " domain " cert \"/etc/letsencrypt/live/" domain "/fullchain.pem\" -pki " domain " key \"/etc/letsencrypt/live/" domain "/privkey.pem\" +pki " domain " cert \"" (cert-file domain) "\" +pki " domain " key \"" (key-file domain) "\" filter \"dkimsign\" proc-exec \"" (file-append opensmtpd-filter-dkimsign "/libexec/opensmtpd/filter-dkimsign") " -d " domain " -s " dkim-selector " -k /etc/dkim/" domain ".key\" listen on lo port submission mask-src filter \"dkimsign\" -listen on " interface " tls pki " domain " -listen on " interface " port submission tls-require pki " domain " auth mask-src filter \"dkimsign\" +listen on " domain " tls hostname " domain " pki " domain " +listen on " domain " port submission tls-require hostname " domain " pki " domain " auth mask-src filter \"dkimsign\" action \"deliver\" maildir \"%{user.directory}/mail\" alias action \"relay\" relay -match from any for domain \"" domain "\" action \"deliver\" +match from any for domain " domain " action \"deliver\" match from any auth for any action \"relay\" ")) -(define* (mail-services #:key interface domain aliases dkim-selector) +(define* (mail-services #:key domain aliases dkim-selector) (list (service dkim-key-service-type (dkim-key-configuration (domain domain) @@ -47,8 +52,8 @@ match from any auth for any action \"relay\" (service opensmtpd-service-type (opensmtpd-configuration + (shepherd-requirement '(networking)) (config-file - (opensmtpd-config #:interface interface - #:domain domain + (opensmtpd-config #:domain domain #:aliases aliases #:dkim-selector dkim-selector)))))) diff --git a/hosts/oswald/system.scm b/hosts/oswald/system.scm index 329e403..109a4ae 100644 --- a/hosts/oswald/system.scm +++ b/hosts/oswald/system.scm @@ -127,7 +127,6 @@ (services-to-restart '(mcron ntpd smtpd))))) (mail-services - #:interface "eth0" #:domain domain #:aliases (list '("root" "timotej") '("timotej.lazar" "timotej")) #:dkim-selector dkim-selector)