diff --git a/dns/nixos.org.js b/dns/nixos.org.js index cbb7bdad..3d2ed0ba 100644 --- a/dns/nixos.org.js +++ b/dns/nixos.org.js @@ -19,6 +19,7 @@ D("nixos.org", DMARC_BUILDER({ policy: "none", }), + TXT("arc-2025._domainkey", "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwFK4Z4C0D3ea7Avv+oI25PS6WjcOh3A/2URanFtY6+oLpbtFdZi/Z/ou2VPTNcS1QUxw5pSmV4L1fcaVqM+elPHq1GN/38TkpwcZEnSHK5tX0PS5Jae2Q+e68yEZAwNDi5abjXswehuxX/F9R4GXpC/tOEyeHP8xfvRmDUq3mgIgWpfCcvdwQvxp25/umufjqGHdQXuq9/9yfpAL72hUXbOrvQ5hd56U7tv0/llIs5CyaGU76hA4kRXkd+iYUxcITzLjbc3ZRhIDs9b0zv0z2YPYgVgj2GiKL+TdcQ9z5Y5M0H4EGq6/Gn5fUILGRkCaBGvE3s3mY/aYUCvv4v0W9wIDAQAB"), // discourse A("discourse", "195.62.126.31"), diff --git a/non-critical-infra/modules/mailserver/default.nix b/non-critical-infra/modules/mailserver/default.nix index 0f8fd7c7..eebc247a 100644 --- a/non-critical-infra/modules/mailserver/default.nix +++ b/non-critical-infra/modules/mailserver/default.nix @@ -1,5 +1,11 @@ { config, pkgs, ... }: +let + arc = { + selector = "arc-2025"; + }; +in + { imports = [ ./mailing-lists.nix @@ -41,6 +47,27 @@ path = "${config.mailserver.dkimKeyDirectory}/nixos.org.mail.key"; }; + sops.secrets."nixos.org.${arc.selector}.key" = { + format = "binary"; + owner = "rspamd"; + group = "rpsamd"; + mode = "0400"; + # rspamadm dkim_keygen --selector arc-2025 --domain nixos.org --type rsa --bits 2048 + sopsFile = ../../secrets/nixos.org-${arc.selector}-private-key.umbriel; + path = "/var/lib/rspamd/arc/nixos.org.${arc.selector}.key"; + }; + + services.rspamd = { + overrides."arc.conf".text = '' + domain { + nixos.org { + selector = "${arc.selector}"; + allow_username_mismatch = true; + } + } + ''; + }; + services.postfix.config.bounce_template_file = "${pkgs.writeText "bounce-template.cf" '' failure_template = <