# BUILD-C2 — Partner-/Geo-modell & DNS-designdokument **Datum:** 2026-06-06 **Källa:** BUILD-C1 domäninventering + affärsregler (Erik, låst) **Status:** Design — INGA mutationer genomförda **Nästa steg:** C3-skript är förberett men ej kört — kräver explict godkännande --- ## 0. Principfastlägganden (gäller alla klasser) | Princip | Beslut | |---------|--------| | **Anti-spoofing** | DMARC `p=reject` på ALLA domäner utan aktiv MX/mailflöde. På aktiva maildomäner kvarstår `p=none` tills DKIM verifierats i produktion. | | **Single point of failure** | Mailu på mail.wavult.com är enda MX-infra — acceptabel för nuvarande skala men dokumenterat som framtida risk. | | **Ingen mail utan ägare** | Övriga marknadsdomäner ska INTE ta emot mail som hamnar i Wavults brevlåda utan att någon ansvarar. | | **Ingenting destruktivt utan verifiering** | MX-borttagning på döda domäner och zone-konsolidering kräver explicit Erik-godkännande och record-jämförelse. | | **DMARC-skärpning på aktiva maildomäner** | `aamos.systems`, `landvex.com`, `quixzoom.com`, `wavult.com`, `aamos.ai` — dessa får INTE höjas till `p=reject` förrän DKIM-signaturer verifierats i praktiken (se flagga nedan). | --- ## 1. EU/USA-domäner (38 domäner i EU/Global-klassen) ### 1.1 Designbeslut: Fullständiga brevlådor vs. catch-all-redirect **Rekommendation:** Hub-and-spoke — fulla brevlådor ENBART på primärdomäner (.com + aamos.systems), catch-all-redirect på alla landssuffix. **Motivering:** - Att ge alla 38 EU-domäner fulla brevlådor skapar omöjlig förvaltningsbörda (38 × N alias = hundratals poster). - Catch-all på landssuffix → vidarebefordring till primärdomänens brevlåda är branschstandard för europeiska marknadssatsningar. - Mailu stödjer catch-all och alias utan extra licens. - DMARC `p=reject` på landssuffix skyddar mot spoofing utan att aktivera mailmottagning. ### 1.2 Tre-nivåmodell ``` NIVÅ 1 — Primärdomäner (full mail + roll-routing): landvex.com → fulla brevlådor + roll-alias (ceo/cfo/coo/cto/cmo/info/support) quixzoom.com → fulla brevlådor + roll-alias aamos.systems → fulla brevlådor + roll-routing (redan live, vår plattform) aamos.ai → redirect-alias → aamos.systems (eller egna brevlådor om varumärket kräver det) wavult.com → fulla brevlådor (holding/group-level: ceo@wavult.com etc.) NIVÅ 2 — EU-landsdomäner (MX → mail.wavult.com + catch-all → primär): landvex.{se,eu,de,fr,nl,es,it,fi,ch,co.uk,be,dk} landvex.{net,org} landvex-gov.eu, landvex-intelligence.eu, landvex-infrastructure.eu landvex-systems.com, landvex-secure.com quixzoom.{eu,nl,de,fr,es,it,fi,ch,co.uk,be,dk} quixzoom.{net,org} wavult.se NIVÅ 3 — Utan MX, DMARC reject (defensivt skydd): Övriga marknadsdomäner (klass 2 nedan) Döda domäner (efter verifiering) ``` ### 1.3 Roll-alias-modell för primärdomäner Baseras på befintlig aamos.systems-modell. Replikera på landvex.com, quixzoom.com, wavult.com: | Alias | → Person/roll | |-------|--------------| | `ceo@[domän]` | → CEO (roll-baserat, person-agnostiskt) | | `cfo@[domän]` | → CFO | | `coo@[domän]` | → COO | | `cto@[domän]` | → CTO | | `cmo@[domän]` | → CTO (Leon borta, ruttad till CTO enligt befintlig config) | | `info@[domän]` | → info-brevlåda eller catch-all | | `support@[domän]` | → support-kö | **OBS:** Roll-routingkonfiguration sker i Mailu (admin-UI), inte i DNS. DNS behöver bara MX-post + SPF + DKIM + DMARC. ### 1.4 DNS-poster per EU-domän (Nivå 2-mall) ```dns ; Catch-all via MX → mail.wavult.com @ IN MX 10 mail.wavult.com. ; SPF — tillåt Mailu-servern + Google (om G Workspace används som backup) @ IN TXT "v=spf1 mx a:mail.wavult.com ~all" ; DKIM — kopieras från aamos.systems (samma Mailu-instans, samma selector) ; Selector: mail (eller wavult — verifiera i Mailu-admin) mail._domainkey IN TXT "" ; DMARC — p=none initialt, skärps till quarantine/reject efter DKIM-verifiering _dmarc IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@aamos.systems; ruf=mailto:dmarc@aamos.systems; fo=1" ``` ### 1.5 DMARC-skärpningsplan (aktiva maildomäner) > ⚠️ **KRITISK FLAGGA:** Höj INTE till `p=reject` på `aamos.systems`, `landvex.com`, `quixzoom.com`, `wavult.com`, `aamos.ai` förrän: > 1. DKIM-signaturer verifierats via `mail-tester.com` eller `dmarcian.com` > 2. DMARC-rapporter (rua) analyserats i minst 2 veckor > 3. Inga legitima sändare saknas i SPF/DKIM **Rekommenderad skärpningssekvens:** 1. Aktivera DMARC `p=none` + rua-rapportering → vänta 2 veckor 2. Granska rapporter, åtgärda avvikelser 3. Höj till `p=quarantine; pct=10` → vänta 1 vecka 4. Höj till `p=quarantine; pct=100` → vänta 1 vecka 5. Höj till `p=reject` **Landssuffix (Nivå 2) som saknar aktiv MX idag** kan sättas direkt till `p=reject` eftersom inga legitima avsändare existerar. --- ## 2. Övriga marknader — Partner-domäner (13 domäner) ### 2.1 Domänlista | Domän | Marknad | |-------|---------| | landvex.mx | Mexico 🇲🇽 | | landvex.lat | LATAM 🌎 | | landvex.asia | Asien 🌏 | | landvex.in | Indien 🇮🇳 | | landvex.jp | Japan 🇯🇵 | | landvex.co | Colombia/.co global 🌍 | | quixzoom.mx | Mexico 🇲🇽 | | quixzoom.lat | LATAM 🌎 | | quixzoom.in | Indien 🇮🇳 | | quixzoom.jp | Japan 🇯🇵 | | quixzoom.asia | Asien 🌏 | | quixzoom.co | Colombia/.co global 🌍 | | *(landvex.tech, quixzoom.tech — se nedan)* | | ### 2.2 Rekommendation: Alternativ (a) — Ingen MX + DMARC reject **Rekommenderar alternativ (a): Ingen MX + DMARC reject** **Motivering:** | Aspekt | Alt (a): Ingen MX + reject | Alt (b): Partner@ vidarebefordrar | |--------|---------------------------|-----------------------------------| | **Spoofingskydd** | ✅ Maximalt — ingen mail accepteras | ⚠️ Partial — MX öppnar attackyta | | **Partner-kommunikation** | ✅ Sker via primärdomän (partner@landvex.com) tills lokal partner aktiveras | ❌ Förvirrar — vem äger inkorgen? | | **Underhåll** | ✅ Noll — set-and-forget | ❌ Kräver vidarebefordring per domän | | **Signalering** | ✅ Tydlig: "Denna marknad är inte aktiv" | ❌ Tvetydigt — halvt aktiv | | **GDPR/ansvar** | ✅ Ingen data samlas in på partnermarknaden | ⚠️ Risk om ingen äger inkorgen | | **Partneraktivering** | ✅ DNS-ändring när partner aktiveras | Samma | **Slutsats:** Alternativ (a) är renare, säkrare och kräver noll löpande underhåll. När en lokal partner aktiveras lägger vi till MX + SPF + DKIM + DMARC för den specifika domänen. ### 2.3 DNS-poster för partnerdomäner (ingen MX) ```dns ; Ingen MX-post = ingen mailmottagning ; SPF — explicita neka (inga auktoriserade avsändare) @ IN TXT "v=spf1 -all" ; DMARC — omedelbart reject (inga legitima avsändare finns) _dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@aamos.systems" ; Ingen DKIM-post behövs (inga avsändare att signera) ``` ### 2.4 Oklar klassificering: .tech och .co **landvex.tech / quixzoom.tech:** - Generiska TLDs utan tydlig marknadstillhörighet - Om de används som tech/developer-domäner → klassas som EU (Nivå 2) - Om de inte används aktivt → partnermodell (ingen MX + reject) - **Fråga till Erik:** Används .tech aktivt? Om inte → avveckla eller partnermodell **landvex.co / quixzoom.co:** - .co används globalt men är Colombias ccTLD - Om de är Colombia-specifika → partnermodell (lokal partner) - Om de är globala backup-domäner → EU Nivå 2 - **Fråga till Erik:** Är .co globalt defensiv registrering eller Colombia-specifik? --- ## 3. Döda varumärken — Avvecklingsdesign ### 3.1 Domäner | Domän | MX-status | Zone ID | |-------|-----------|---------| | corpfitt.com | ✅ AKTIV MX (mail.wavult.com) | Z03586003P55GRO87T6M3 | | hypbit.com | ✅ AKTIV MX (mail.wavult.com) | Z06944491GZGBRKHYNYSK | | pixdrift.com | ❌ Ingen MX | Z06885272CR0QX3ZHVMTK | ### 3.2 Avvecklingssekvens (corpfitt.com och hypbit.com) > ⚠️ **Kräver Erik-godkännande innan genomförande** **Steg 1 — Verifiera att ingen aktiv korrespondens pågår:** - Kontrollera Mailu-loggar: finns det inkommande mail till corpfitt.com / hypbit.com de senaste 90 dagarna? - Finns det aktiva konton/alias i Mailu för dessa domäner? - Om JA → parkera brevlådorna, informera berörda mottagare, sätt bounce-meddelande **Steg 2 — Säker avveckling (efter verifiering):** ```dns ; Ta bort MX-posten ; (Radera MX 10 mail.wavult.com.) ; Lägg till SPF-avvisning @ IN TXT "v=spf1 -all" ; Lägg till DMARC reject _dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@aamos.systems" ``` **Steg 3 — Framtida val (Erik-beslut):** - **Behåll zone** med DMARC reject → defensivt skydd mot domain squatting (rekommenderat om varumärket kan återupptas) - **Radera zone** → frigjord domän kan registreras av annan (permanent avveckling) ### 3.3 pixdrift.com (ingen MX) Pixdrift har redan ingen MX. Enda åtgärden: ```dns ; Om det saknas — lägg till SPF och DMARC @ IN TXT "v=spf1 -all" _dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@aamos.systems" ``` Kräver ingen erikgodkänd MX-borttagning — kan implementeras direkt. --- ## 4. Okända domäner — Öppna frågor till Erik > ⚠️ **Inget destruktivt föreslås** för dessa domäner. Inga DNS-förändringar tills produktstatus klarlagts. ### 4.1 Öppna frågor | Domän | Zone ID | Fråga | |-------|---------|-------| | `aakira.ai` | Z03635911UUILKCUZ19T4 | Vad är Aakira? Aktiv produkt, planerad, eller död? Ska den kopplas till Wavult-arkitekturen? | | `apifly.com` | Z0446278GDE5PNAOQP0O | Apifly — aktiv produkt? Har den egna kunder/användare? Ska MX aktiveras? | | `apifly.se` | Z10396092LJCJ3FH4V8GA | Komplement till apifly.com — samma frågeställning | | `apbxp.cloud` | Z06961913786CYDDS7661 | Okänt varumärke och syfte. Är det ett internt verktyg, en dead-end registrering, eller aktiv produkt? | | `prexo.co` | Z02639111HPSKSMSUDUU | Okänt varumärke. .co-TLD — är det Colombia-marknad eller global? | ### 4.2 Rekommendation i väntan på svar Tills Erik svarar: **vidta inga åtgärder**. Dessa domäner har ingen aktiv MX (utom möjligen aakira.ai — verifiera). Ingen spoofing-risk utan aktiv MX, men kontrollera om DMARC-poster saknas. **Om DMARC saknas på dessa domäner** (verifiera med `dig TXT _dmarc.`) kan en `p=none`-post läggas till som neutral åtgärd — samlar data utan att blockera. --- ## 5. Duplikatzoner — Konsolideringsdesign ### 5.1 Fyra duplikatpar | Domän | Zone A | Zone B | |-------|--------|--------| | `landvex.ch` | Z060292760R1ZY0PQH3V | Z00716462L6XS9QZX1HHS | | `quixzoom.co.uk` | Z035263432T28MD24XUIG | Z06391212CQRAVQ1FMNHV | | `aamos.ai` | Z0992155TZTAVTB9DKU | Z10021043NUR85M9WUOQM | | `wavult.com` | Z03332778KCOYPM9OBKP | Z02946821NE63OOAKDTKA | ### 5.2 Konsolideringsprotokoll (INNAN borttagning) > ⚠️ **ALDRIG radera zone utan att först jämföra record-sets** **Algoritm för att avgöra vilken zone som är aktiv:** ```bash # Steg 1: Lista records i BÅDA zones aws route53 list-resource-record-sets --hosted-zone-id ZONE_A --output json > zone_a_records.json aws route53 list-resource-record-sets --hosted-zone-id ZONE_B --output json > zone_b_records.json # Steg 2: Jämför antal records # Zone med FLER records är troligen den aktiva # Steg 3: Kontrollera NS-poster mot externa DNS # Vilken zones NS-poster matchar vad registraren delegerar till? dig NS landvex.ch +short # Jämför med: aws route53 list-resource-record-sets --hosted-zone-id ZONE_A | grep -A5 '"NS"' aws route53 list-resource-record-sets --hosted-zone-id ZONE_B | grep -A5 '"NS"' # Steg 4: Den zone vars NS-poster matchar registrarens delegering ÄR den aktiva # Den andra är en "phantom zone" — radera den # Steg 5: Migrera eventuella unika records från phantom → aktiv zone # Steg 6: Radera phantom zone ``` ### 5.3 Speciellt fall: wavult.com och aamos.ai (har aktiv MX) För `wavult.com` och `aamos.ai` som har aktiv MX och mail-trafik: - Extra försiktighet — MX-avbrott orsakar mail-bounces - Verifiera NS-delegation INNAN borttagning - Genomför under lågtrafiktid ### 5.4 Förväntad situation Sannolikt scenario: En zone är "äkta" (NS-poster delegerade av registraren), den andra är en gammal kopia från en migration som aldrig städades upp. Records i den falska zonen påverkar ingenting (DNS resolver hittar aldrig till den), men de kan förvirra. --- ## 6. Intern infrastruktur (wavult.local, git.wavult.com) | Domän | Hantering | |-------|-----------| | `wavult.local` | Privat Route53-zone — vidta ingen åtgärd, behåll | | `git.wavult.com` | Intern Git-host — behåll, lägg till DMARC om det saknas: `p=reject` (inga legitima avsändare) | --- ## 7. Beslutsmatris — sammanfattning per domänklass | Klass | MX | SPF | DKIM | DMARC | Ansvarig | |-------|----|-----|------|-------|----------| | **Primärdomäner (Niv. 1)** | mail.wavult.com | `mx a:mail.wavult.com ~all` | Mailu-selector | `p=none` → skärps efter DKIM-verifiering | Wavult-teamet | | **EU-landsdomäner (Niv. 2)** | mail.wavult.com | `mx a:mail.wavult.com ~all` | Kopiera från primär | `p=none` → `p=reject` (kan skärpas direkt när MX aktiverats + DKIM verifierats) | Wavult-teamet | | **Partnerdomäner (Niv. 3)** | **Ingen** | `v=spf1 -all` | Ingen | `p=reject` (omedelbart) | Wavult äger, lokal partner aktiverar vid behov | | **Döda domäner** | **Ta bort** (efter verifiering) | `v=spf1 -all` | Ingen | `p=reject` | Erik-godkännande krävs | | **Okända domäner** | Ingen åtgärd | Ingen åtgärd | Ingen åtgärd | `p=none` (neutral, valfritt) | Erik-beslut krävs | | **Duplikatzoner** | Record-jämförelse → radera phantom | — | — | — | Erik-godkännande + verifiering | | **Intern infra** | Behåll som är | `v=spf1 -all` (inga externa sändare) | Ingen | `p=reject` | Wavult-teamet | --- ## 8. Öppna frågor — krävs Eriks input 1. **corpfitt.com + hypbit.com:** Pågår aktiv korrespondens? Ska MX stängas av? 2. **aakira.ai:** Produkt, projekt eller dead-end? 3. **apifly.com + apifly.se:** Aktiv produkt? 4. **apbxp.cloud + prexo.co:** Vad är detta? 5. **landvex.tech + quixzoom.tech:** Används de? Avveckla eller EU Nivå 2? 6. **landvex.co + quixzoom.co:** Global defensiv eller Colombia-specifik? 7. **Duplikatzoner:** Godkänn konsolideringsprotokoll (NS-verifiering → radering) 8. **wavult.com:** Ska det vara en "group-level" maildomän med ceo@wavult.com etc., eller räcker aamos.systems? 9. **DMARC-skärpning på aktiva maildomäner:** Har DKIM verifierats i praktiken (mail-tester.com)? --- ## 9. Implementationsordning (när beslut är tagna) **Fas 1 — Säker (kan göras omgående, ingen destruktiv åtgärd):** - Lägg till DMARC `p=none` på alla EU-landsdomäner som saknar det (Nivå 2) - Lägg till DMARC `p=reject` + SPF `-all` på partnerdomäner (Nivå 3) - Lägg till DMARC `p=reject` + SPF `-all` på pixdrift.com (har redan ingen MX) **Fas 2 — Med Eriks godkännande:** - MX-borttagning på corpfitt.com + hypbit.com (efter Mailu-loggkontroll) - Duplikatzon-konsolidering (efter NS-verifiering) **Fas 3 — DMARC-skärpning (aktiverade maildomäner):** - Kör DMARC-rapport-analys 2 veckor → skärp stegvis till reject **Fas 4 — Okända domäner:** - Väntar på Eriks input --- *Design av OpenClaw subagent BUILD-C2 | 2026-06-06 | Inga mutationer gjorda — read-only* *Implementationsskript: /home/bernt/.openclaw/workspace/build/c3-apply-dns.sh (förberett, ej kört)*