bae705aa97
- 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
354 lines
15 KiB
Markdown
354 lines
15 KiB
Markdown
# 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 "<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=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.<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:**
|
||
|
||
```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)*
|