- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
15 KiB
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=rejectpå 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)
; 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 "<DKIM-pubkey från Mailu — hämta via admin>"
; 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=rejectpåaamos.systems,landvex.com,quixzoom.com,wavult.com,aamos.aiförrän:
- DKIM-signaturer verifierats via
mail-tester.comellerdmarcian.com- DMARC-rapporter (rua) analyserats i minst 2 veckor
- Inga legitima sändare saknas i SPF/DKIM
Rekommenderad skärpningssekvens:
- Aktivera DMARC
p=none+ rua-rapportering → vänta 2 veckor - Granska rapporter, åtgärda avvikelser
- Höj till
p=quarantine; pct=10→ vänta 1 vecka - Höj till
p=quarantine; pct=100→ vänta 1 vecka - 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)
; 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):
; 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:
; 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.<domain>) 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:
# 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
- corpfitt.com + hypbit.com: Pågår aktiv korrespondens? Ska MX stängas av?
- aakira.ai: Produkt, projekt eller dead-end?
- apifly.com + apifly.se: Aktiv produkt?
- apbxp.cloud + prexo.co: Vad är detta?
- landvex.tech + quixzoom.tech: Används de? Avveckla eller EU Nivå 2?
- landvex.co + quixzoom.co: Global defensiv eller Colombia-specifik?
- Duplikatzoner: Godkänn konsolideringsprotokoll (NS-verifiering → radering)
- wavult.com: Ska det vara en "group-level" maildomän med ceo@wavult.com etc., eller räcker aamos.systems?
- 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=nonepå alla EU-landsdomäner som saknar det (Nivå 2) - Lägg till DMARC
p=reject+ SPF-allpå partnerdomäner (Nivå 3) - Lägg till DMARC
p=reject+ SPF-allpå 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)