mailserver: Add DKIM
This commit is contained in:
parent
a3030f5dbd
commit
0d3ec89038
|
@ -87,6 +87,14 @@ in
|
||||||
spam = {
|
spam = {
|
||||||
enable = (lib.mkEnableOption "spam filtering") // { default = true; };
|
enable = (lib.mkEnableOption "spam filtering") // { default = true; };
|
||||||
};
|
};
|
||||||
|
dkim = {
|
||||||
|
enable = (lib.mkEnableOption "DKIM signing") // { default = true; };
|
||||||
|
selector = lib.mkOption {
|
||||||
|
type = str;
|
||||||
|
description = "DKIM Selector to use";
|
||||||
|
default = "mail";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
@ -244,6 +252,9 @@ in
|
||||||
tls_preempt_cipherlist = "no";
|
tls_preempt_cipherlist = "no";
|
||||||
|
|
||||||
smtpd_tls_dh1024_param_file = config.security.dhparams.params.postfix.path;
|
smtpd_tls_dh1024_param_file = config.security.dhparams.params.postfix.path;
|
||||||
|
|
||||||
|
smtpd_milters = lib.mkIf cfg.dkim.enable (lib.singleton "unix:/run/opendkim/opendkim.sock");
|
||||||
|
non_smtpd_milters = lib.mkIf cfg.dkim.enable (lib.singleton "unix:/run/opendkim/opendkim.sock");
|
||||||
};
|
};
|
||||||
|
|
||||||
submissionOptions = {
|
submissionOptions = {
|
||||||
|
@ -410,5 +421,37 @@ in
|
||||||
port = 6379;
|
port = 6379;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# DKIM
|
||||||
|
services.opendkim = lib.mkIf cfg.dkim.enable {
|
||||||
|
enable = true;
|
||||||
|
selector = cfg.dkim.selector;
|
||||||
|
domains = "csl:${lib.concatStringsSep "," cfg.domains}";
|
||||||
|
configFile = pkgs.writeText "opendkim.conf" ''
|
||||||
|
UMask 0002
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
systemd.services.opendkim = lib.mkIf cfg.dkim.enable {
|
||||||
|
# changed to use larger key size
|
||||||
|
preStart =
|
||||||
|
let
|
||||||
|
inherit (config.services.opendkim) keyPath selector;
|
||||||
|
in
|
||||||
|
lib.mkForce ''
|
||||||
|
cd "${keyPath}"
|
||||||
|
if ! test -f ${selector}.private; then
|
||||||
|
${pkgs.opendkim}/bin/opendkim-genkey \
|
||||||
|
-s ${selector} \
|
||||||
|
-d all-domains-generic-key \
|
||||||
|
-b 4096
|
||||||
|
echo "Generated OpenDKIM key! Please update your DNS settings:\n"
|
||||||
|
echo "-------------------------------------------------------------"
|
||||||
|
cat ${selector}.txt
|
||||||
|
echo "-------------------------------------------------------------"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.postfix.extraGroups = lib.mkIf cfg.dkim.enable (lib.singleton config.users.users.opendkim.group);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue