Chapter 4 — DNS & Domain Architecture
4.1 Domain and Registrar
sbsdash.com is the sole Platform domain. Registrar-level state is a security control surface in its own right (DNS-01):
- Ownership — the domain is registered to SBS (org-level contact, SBS-controlled email alias — same survivability rationale as the DO account, §2.1). The Build Register carries the domain transfer item ("Transfer SBSDASH.COM") until registrar ownership sits with SBS; interim hosting under the temporary registrar/host is a tracked transitional state.
- Registrar lock —
clientTransferProhibitedenabled; transfer-out requires an authenticated unlock action. Domain-transfer attempts are a high-severity alert. - Registrar MFA — phishing-resistant MFA on the registrar account (IAM-03 applies to every control plane, registrar included; registrar compromise is functionally equivalent to full platform compromise since it permits NS redelegation).
- Renewal — auto-renew enabled, multi-year registration, expiry monitored (an expired domain is an availability and takeover event).
4.2 Authoritative DNS
Zone hosting decision. DigitalOcean DNS does not support DNSSEC signing. Because DNS-01 mandates DNSSEC (§4.5), the authoritative zone is hosted at a DNSSEC-capable provider rather than DigitalOcean DNS. Approved options, in preference order:
- Cloudflare DNS (free tier sufficient) — one-click DNSSEC, DS record handoff to registrar, API for IaC management, native CT/CAA tooling.
- deSEC — DNSSEC-by-default, API-managed, nonprofit.
- Registrar-hosted DNS only if the registrar signs zones and exposes an API.
The zone is managed as code (Chapter 10): records are defined in the IaC repository and applied via provider API; console edits are drift. Nelson Santos is execution owner for zone cutover and NS delegation.
4.3 Record Inventory
Public surface records — all five subdomains resolve to Prod droplet public IPs (§2.2.1):
| Record | Type | Value | TTL | Serves |
|---|---|---|---|---|
sbsdash.com |
A | 107.170.72.145 | 300 (build) → 3600 (steady) | Primary tenant surface |
www.sbsdash.com |
CNAME | sbsdash.com | 3600 | Redirect to apex at proxy |
admin.sbsdash.com |
A | 107.170.72.145 | 300 → 3600 | Administrative console |
clients.sbsdash.com |
A | 107.170.72.145 | 300 → 3600 | Client-facing surface |
monitor.sbsdash.com |
A | 162.243.28.132 | 3600 | Grafana/Prometheus (IdP-gated) |
wiki.sbsdash.com |
A | 167.172.135.88 → NYC2 rebuild IP | 300 until rebuild | BookStack portal |
Notes:
- Tenant surfaces share one A target; host-header routing at the reverse proxy (Chapter 5) separates them. No wildcard record exists —
*.sbsdash.comunresolved by design (FE-family: no unintended surface enumeration; a wildcard would also complicate CT monitoring signal, §4.6). wiki.sbsdash.comTTL held at 300 until the NYC2 rebuild lands its final IP, then raised.- Dev has no records in the public zone (§2.4). Dev access is by IP against the admin allowlist.
- IPv6: AAAA records added only when droplet IPv6 is enabled and firewall rulesets carry mirrored v6 rules — publishing AAAA without v6 firewall parity is a bypass, so the two land together or not at all.
4.4 Mail Posture (DNS-03)
sbsdash.com sends and receives no mail. Null-mail posture, published explicitly so the domain cannot be spoofed as a sender:
| Record | Type | Value |
|---|---|---|
sbsdash.com |
MX | 0 . (null MX, RFC 7505) |
sbsdash.com |
TXT | v=spf1 -all |
_dmarc.sbsdash.com |
TXT | v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:<SBS security alias> |
DMARC aggregate reports route to an SBS security mailbox (existing SBS mail domain, not sbsdash.com) so spoof attempts are observable — this is a MON-02 anomaly input, not merely a static record.
4.5 DNSSEC (DNS-01)
- Zone signed at the DNS provider (ECDSA P-256, algorithm 13 — compact signatures, universal resolver support).
- DS record published at the registrar — signing without registrar DS publication provides no validation path; the chain of trust must be verified end-to-end:
dig +dnssec sbsdash.comreturns AD flag from a validating resolver, and DNSViz shows an unbroken chain. This verification is a named gate in the Build Register. - Key rollovers are provider-automated (CDS/CDNSKEY where the registrar supports it); manual DS changes are change-controlled.
- Failure mode note: DNSSEC misconfiguration causes hard resolution failure, not degraded security — DS/keyset changes are therefore executed with the 300-TTL window and verified before TTL raise.
4.6 Certificate and Registration Surveillance
- CAA (DNS-02):
sbsdash.com CAA 0 issue "letsencrypt.org"plusCAA 0 iodef "mailto:<SBS security alias>". Only Let's Encrypt may issue for the domain (matches ACME design, Chapter 5); any other CA refusing on CAA is the control working. Wildcard issuance intentionally not authorized (issuewildabsent → inheritsissue; acceptable, as no wildcard certs are used). - CT monitoring (DNS-04): subscription against Certificate Transparency logs for
sbsdash.com(Cloudflare CT alerts or crt.sh RSS into the alert pipeline). Any certificate appearing in CT that was not issued by the platform's ACME automation is a high-severity incident (indicates CAA bypass or issuance compromise). - Typosquat monitoring (DNS-05): dnstwist run scheduled (weekly, from
monitor-servers) against a generated permutation set (sbsdash.comhomoglyphs, transpositions, TLD swaps); newly registered lookalikes feed MON-02 alerting. No defensive registrations are made by default; escalation is case-by-case via Alexandra Del Rey (security-compliance routing).
4.7 Change Control and Verification
Zone changes follow the IaC path (Chapter 10) with the same drift rules as firewalls (§3.5). Verification gates: NS delegation correct at registrar; DNSSEC chain validates (AD flag, DNSViz clean); null-MX/SPF/DMARC present; CAA present; all five A/CNAME records resolve to the IPs in §4.3; no wildcard resolves; Dev absent from zone. Controls covered: DNS-01 through DNS-05 complete.