X-Git-Url: https://git.openstreetmap.org./dns.git/blobdiff_plain/3ae1b9ced56bf0d061f7c63ce79d1ce4a3c90e50..3a37a3d7ae434d4191da1c7cad049bc5878ed075:/src/osmfoundation.js diff --git a/src/osmfoundation.js b/src/osmfoundation.js index 4e3c624..89e71e0 100644 --- a/src/osmfoundation.js +++ b/src/osmfoundation.js @@ -13,13 +13,11 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), ], }), - // Let google handle email + // Let mailbox.org handle email - MX("@", 1, "aspmx.l.google.com.", TTL("1h")), - MX("@", 5, "alt1.aspmx.l.google.com.", TTL("1h")), - MX("@", 5, "alt2.aspmx.l.google.com.", TTL("1h")), - MX("@", 10, "alt3.aspmx.l.google.com.", TTL("1h")), - MX("@", 10, "alt4.aspmx.l.google.com.", TTL("1h")), + MX("@", 10, "mxext1.mailbox.org."), + MX("@", 10, "mxext2.mailbox.org."), + MX("@", 20, "mxext3.mailbox.org."), // Handle mail for the join subdomain ourselves @@ -31,11 +29,30 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), label: "@", parts: [ "v=spf1", - "include:_spf.google.com", // Google GSuite - "ip4:212.110.172.32", // shenron ipv4 - "ip6:2001:41c9:1:400::32", // shenron ipv6 - "ip4:184.104.226.98", // fafnir ipv4 - "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "include:mailbox.org", // mailbox.org + "include:_spf.google.com", // Google GSuite + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "-all" + ] + }), + + SPF_BUILDER({ + label: "wiki", + parts: [ + "v=spf1", + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external "-all" ] }), @@ -43,11 +60,30 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), // Apple Business Manager verification TXT("@", "apple-domain-verification=ZzBG2msRtUDehTMW"), + // Mailbox.org registration verification + TXT("d00f46a3fde45d06c53f3cd5b21f213ea384e7f5", "4a229bebe41606a1f7d909507846729a73998c31"), + + // Publish DMARC report-only policy + + DMARC_BUILDER({ + policy: "none", + rua: [ + "mailto:openstreetmap-d@dmarc.report-uri.com" + ], + failureOptions: 1 + }), + // DKIM keys TXT("google._domainkey", "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJmTBAkYRCocCCNtVsdRNMlQel8kNfjPYJpjEm7woEgZh9yZeDzxImtz+u73oUF4+7bXzrNYbP946WNQIwAba1J69he8L1qfPBJLd3Z/fgmuaGdWcxpDno2EY4cQ8PrzvI6Vfm+6YAFANl8w09CIg41ykdlzH4iUJXD35k3SIl3wIDAQAB"), TXT("20201112._domainkey", "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz4OyJc77mpW5djxVfZm18HcmJHQLpo7B2Z8Og8byICjDiG91Tpkv5ws3xIbMsi/tVA6p5L76uL0TGKlo4ayewYvJUTC22+hBWARUuWA0DgeMwBpW/dNUOJHBABCTouolvXLKRTPTefA177Y5jYbD7ZeJAR4ZnFbZX6spimXCT66AyhqCBSrOCXYXFm3ons5ANkkQBNZ/jMYczYs9T1ijNEbBNTJmLO+whOrYLyGd3iZ9X9iOmuNFBCgXp0tsN//FBsOyTl559/XY25r3GZhiKXMbrZ1IJewqJlG0+hN1y9qwWGgq5YpZPt5YJ1KGjIrcFX59/PhNQX4khPOaD5g7ZQIDAQAB", AUTOSPLIT), + // https://kb.mailbox.org/en/private/custom-domains/spf-dkim-and-dmarc-how-to-improve-spam-reputation-and-avoid-bounces + CNAME("MBO0001._domainkey", "MBO0001._domainkey.mailbox.org."), + CNAME("MBO0002._domainkey", "MBO0002._domainkey.mailbox.org."), + CNAME("MBO0003._domainkey", "MBO0003._domainkey.mailbox.org."), + CNAME("MBO0004._domainkey", "MBO0004._domainkey.mailbox.org."), + // Google postmaster tools verification CNAME("uaqn4jv2xaoe", "gv-jun5dginqysxph.dv.googlehosted.com."), @@ -60,23 +96,55 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), CNAME("calendar", "ghs.googlehosted.com."), CNAME("sites", "ghs.googlehosted.com."), + // Aliases for mailbox.org services + + CNAME("autoconfig", "mailbox.org."), + SRV("_hkps._tcp", 1, 1, 443, "pgp.mailbox.org."), + // Main web server and it's aliases A("@", RIDLEY_IPV4), A("www", RIDLEY_IPV4), A("wiki", RIDLEY_IPV4), A("blog", RIDLEY_IPV4), + + A("staging.blog", FUME_IPV4), + AAAA("staging.blog", FUME_IPV6), + A("crm", RIDLEY_IPV4), A("join", RIDLEY_IPV4), + A("support", RIDLEY_IPV4), + A("supporting", RIDLEY_IPV4), + A("donate", RIDLEY_IPV4), + A("board", RIDLEY_IPV4), A("dwg", RIDLEY_IPV4), A("mwg", RIDLEY_IPV4), - A("operations", RIDLEY_IPV4), + A("operations", NAGA_IPV4), + AAAA("operations", NAGA_IPV6), + + // HTTPS / SVCB records + HTTPS("www", 1, ".", "alpn=h2"), + HTTPS("wiki", 1, ".", "alpn=h2"), + HTTPS("blog", 1, ".", "alpn=h2"), + HTTPS("staging.blog", 1, ".", "alpn=h2"), + HTTPS("crm", 1, ".", "alpn=h2"), + HTTPS("join", 1, ".", "alpn=h2"), + HTTPS("support", 1, ".", "alpn=h2"), + HTTPS("supporting", 1, ".", "alpn=h2"), + HTTPS("donate", 1, ".", "alpn=h2"), + HTTPS("board", 1, ".", "alpn=h2"), + HTTPS("dwg", 1, ".", "alpn=h2"), + HTTPS("mwg", 1, ".", "alpn=h2"), + HTTPS("operations", 1, ".", "alpn=h2"), // Nextcloud instance CNAME("files", "nextcloud-openstreetmapfoundation.cloud68.systems."), - A("hardware", IDRIS_IPV4) + A("hardware", IDRIS_IPV4), + + // HTTPS / SVCB records + HTTPS("hardware", 1, ".", "alpn=h2") );