--- type: client name: peaceful-spirit display_name: Peaceful Spirit Therapeutic Massage last_compiled: 2026-06-04 compiled_by: GURU-5070/claude-main sources: - clients/peaceful-spirit/session-logs/2026-05-10-recovered-setup-radius-authentication-for-vpn-access.md - clients/peaceful-spirit/session-logs/2026-05-10-session.md - clients/peaceful-spirit/session-logs/2026-05-11-session.md - clients/peaceful-spirit/session-logs/2026-05-22-session.md - clients/peaceful-spirit/session-logs/2026-05-27-session.md - clients/peaceful-spirit/session-logs/2026-06-04-session.md - clients/peaceful-spirit/server.sops.yaml (vault) - clients/peaceful-spirit/vpn.sops.yaml (vault) backlinks: - projects/gururmm --- # Peaceful Spirit Therapeutic Massage Massage therapy practice with at least two sites: Country Club (primary, all work performed here) and a Northwest (NW) site. On-premises Windows Server 2016 Essentials domain environment. Domain-joined workstations for Mara (owner/operator) and other staff. L2TP/IPsec VPN fully deployed to all known machines as of 2026-05-27. Site-wide VPN outage occurred 2026-06-04 due to UDR Ultra reboot dropping VPN port-forward — resolved same day by re-adding UDP 500/4500 -> 192.168.0.2 in UniFi controller. --- ## Profile - **Contract type:** Break-fix / project [unverified — no contract details found in session logs] - **Key contacts:** - Mara — primary point of contact; owner/operator; personal Microsoft account `mara.concordia@gmail.com` (OneDrive). Domain user: `mara` (password reset to SpiritWalk26! on 2026-05-22, PasswordNeverExpires=true). - Bridgette — staff member with home computer (BridgettePSHomeComputer); domain user `BridgetteSH`. No contact details captured. - **Billing rate:** [unverified — not documented in session logs] - **Syncro customer ID:** `278525` (Peaceful Spirit Massage) — note the Syncro business name is "Peaceful Spirit Massage", not "...Therapeutic Massage", so a name search on "peaceful spirit" does not match; use the ID. - **Active tickets:** #32271 — "Bug - IKEv2 VPN drops and does not auto-reconnect" (the IKEv2-drops → L2TP-rebuild lineage) --- ## Infrastructure ### Servers & Services | Host | IP | Role | OS | Notes | |---|---|---|---|---| | PST-SERVER | 192.168.0.2 | DC, DNS, RRAS (L2TP/IPsec VPN), NPS, Enterprise Root CA (AD CS) | Windows Server 2016 Essentials (build 14393) | GuruRMM agent ID: `87293069-33b6-45e8-a68f-6811216cdb96` (v0.6.52, confirmed 2026-06-04; prior ID `6b6106a7-8515-4b6b-857d-0dc6ede53f35` is retired/re-enrolled). Win32-OpenSSH installed 2026-05-11 (`C:\Program Files\OpenSSH\OpenSSH-Win64\`). Machine cert: `DB71981ABE4CBA1DE96FEEEAF178F6259663B543` (CN=PST-SERVER.PEACEFULSPIRIT.local, valid 5/9/2027). 30-day uptime confirmed 2026-06-04 (no reboot during VPN outage). | | UCG-PST-CC | 192.168.0.10 (LAN) / 98.190.129.150 (WAN) | UniFi Cloud Gateway Ultra (UDR Ultra) — perimeter router + DNAT for VPN | UniFi OS 5.1.15, kernel 5.4.213-ui-ipq5322 (aarch64) | SSH: `root@192.168.0.10` via key `~/.ssh/pst-cc-ucg` (password-auth is keyboard-interactive; password: vault). WAN SSH (98.190.129.150:22) is NOT accessible remotely — timed out from all tested sources; LAN SSH reachable via PST-SERVER jump. UCG VPN (strongSwan/xl2tpd) abandoned 2026-05-22 in favor of RRAS on PST-SERVER. DNAT persistence: `/data/on_boot.d/10-vpn-portforward.sh`. NOTE: Rebooted 2026-06-04 03:59 and dropped the VPN port-forward (see Known Issues). Port-forward re-added in UniFi controller by Mike 2026-06-04. UniFi OS 5.1.15 stores port-forward rules in a migrated schema — legacy Mongo collections read 0; use the controller UI as authoritative. | **Note:** An NW (Northwest) site exists with a separate UCG that previously had an OpenVPN server at 64.139.88.249:1194 (TCP). No further NW site details are documented. ### Domain & Identity - **Domain:** PEACEFULSPIRIT.local - **Domain admins:** `sysadmin` (password: vault) — this is the domain admin account. `pst-admin` is a domain user (not domain admin) with VPN dial-in permission. - **AD domain SID base:** S-1-5-21-1105246401-3156558273-4088333098 - **CA:** PEACEFULSPIRIT-PST-SERVER-CA — Enterprise Root CA on PST-SERVER. Thumbprint: 56DAF43C60F246BF2C80A671EE9812C727D8C298 (valid to 3/8/2061). - **VPN-eligible users (WseRemoteAccessUsers, SID ...-1113):** Domain Admins (group), PSTAdmin, pst-admin, LMT, Mara, BridgetteSH (added 2026-05-27). NPS network policy grants VPN by group membership in WseRemoteAccessUsers — `msNPAllowDialin=TRUE` alone is not sufficient. - **OneDrive:** pst-admin uses personal OneDrive (mara.concordia@gmail.com, cid: 25f0851177ceabfd). Per-machine OneDrive (v26.063.0405.0002) deployed to Maras-HP-Laptop on 2026-05-11 via `/allusers` install. - **Email / M365:** [unverified — no M365 tenant found; practice likely uses personal or third-party email] ### Network - **WAN IP:** 98.190.129.150 (Country Club site, UCG) - **LAN subnet:** 192.168.0.0/24 - **DNS / DC:** 192.168.0.2 (PST-SERVER) - **VPN (current — L2TP/IPsec):** - Endpoint: PST-SERVER RRAS at 192.168.0.2, exposed via UCG DNAT (UDP 500, 4500, ESP) - PSK: vault (`clients/peaceful-spirit/vpn.sops.yaml`) - Auth: MSCHAPv2. Mara's machines connect as shared user `pst-admin`; BridgettePSHomeComputer connects as `BridgetteSH` via SSO (no stored shared credential). - NPS RADIUS shared secret for client UCG-PST-CC (192.168.0.10): in vault (`clients/peaceful-spirit/server.sops.yaml`) - IP pool: 192.168.0.240+ (observed: .241, .243, .248, .249 during testing) - VPN profile name on clients: "Peaceful Spirit VPN" (AllUserConnection, split tunnel, 192.168.0.0/24 route, NRPT for .peacefulspirit.local → 192.168.0.2) - PST-SERVER registry: `AssumeUDPEncapsulationContextOnSendRule=2` (PolicyAgent), `DefaultPSK` set in L2TP parameters - UCG persistence: `/data/on_boot.d/10-vpn-portforward.sh` - **GPO:** "Block New Outlook" — GUID {577028AF-0901-4BDF-A283-CD1156F313D9}, linked to domain root. Disables new Outlook experience across all domain machines. ### Client Workstations | Machine | Role | GuruRMM Agent ID | Notes | |---|---|---|---| | MaraHomeNew | Mara's home desktop | `e9645594-6d7c-4c97-8cb4-920cb5d06c8e` (v0.6.52, confirmed 2026-06-04; prior ID `c778b6a3-c646-4454-a065-8c8bdcb1578e` retired) | Domain-joined. VPN working (confirmed via rasdial 2026-05-11; IPsec link established 2026-06-04 post-fix). Machine cert installed (D067E07B, CN=MaraHomeNew.PEACEFULSPIRIT.local, valid to 5/10/2027). Connects as pst-admin. | | Maras-HP-Laptop | Mara's HP laptop | `13cb3629-5043-4bd6-b977-6968eeccf804` | Domain-joined. VPN deployed 2026-05-22 (PSK set on-site by Mike). OneDrive per-machine deployed 2026-05-11. pst-admin profile wiped and rebuilt 2026-05-11. Connects as pst-admin. | | PST-SURFACE | Surface device | `4a993b61-59b3-42f4-bdb5-d4362941f7d6` | Domain-joined. VPN deployed 2026-05-22 (PSK set on-site by Mike). Connects as pst-admin. | | BridgettePSHomeComputer | Bridgette's home PC | `01160fc8-4c2e-4e47-a591-e4e0f9ba5ea7` (v0.6.49, re-enrolled 2026-06-04; old UUID `074141d7-bd96-49ff-8f64-edf31159c00b` is dead/offline) | Domain-joined. VPN deployed remotely 2026-05-27 via GuruRMM `user_session`. Connects as BridgetteSH (SSO). Logon scheduled task `Connect Peaceful Spirit VPN` auto-connects ~20s after sign-in. NAT-T key was missing — set and rebooted 2026-05-27. Got VPN IP 192.168.0.242 after 2026-06-04 port-forward fix (event 20224 link established). | --- ## GuruRMM Enrollment - **Client name in RMM:** Peaceful Spirit - **Client ID:** `00015eae-50e5-4102-93fa-ab0fdb135c08` - **Site name:** Country Club - **Site ID:** `7b32983d-982a-4a5c-af07-45a23453f589` **Enrolled agents:** | Host | Agent ID | Enrolled | Last Known Status | |---|---|---|---| | PST-SERVER | `87293069-33b6-45e8-a68f-6811216cdb96` (v0.6.52) | [re-enrolled; prior `6b6106a7...` retired] | Active — confirmed 2026-06-04 | | MaraHomeNew | `e9645594-6d7c-4c97-8cb4-920cb5d06c8e` (v0.6.52) | [re-enrolled; prior `c778b6a3...` retired] | Active — confirmed 2026-06-04 | | Maras-HP-Laptop | `13cb3629-5043-4bd6-b977-6968eeccf804` | [unverified date] | — | | PST-SURFACE | `4a993b61-59b3-42f4-bdb5-d4362941f7d6` | [unverified date] | — | | BridgettePSHomeComputer | `01160fc8-4c2e-4e47-a591-e4e0f9ba5ea7` (v0.6.49) | Re-enrolled 2026-06-04 (old `074141d7...` dead/offline) | Active — confirmed 2026-06-04 | --- ## Access - **PST-SERVER SSH:** `ssh -i ~/.ssh/id_ed25519 sysadmin@192.168.0.2` — requires OpenVPN or L2TP VPN to Country Club site active. Win32-OpenSSH at `C:\Program Files\OpenSSH\OpenSSH-Win64\`. SCP paths use Unix format (`/C:/path/to/file`). - **UCG SSH (LAN only):** `ssh -i ~/.ssh/pst-cc-ucg root@192.168.0.10` — UCG requires keyboard-interactive auth (paramiko with a kb_handler, or an interactive terminal; plink with `-pw` fails). WAN IP (98.190.129.150) SSH is NOT accessible remotely from any tested location. Requires VPN to LAN, on-site, or UCG cloud portal (unifi.ui.com). - **GuruRMM (external):** https://rmm.azcomputerguru.com - **Vault paths:** - `clients/peaceful-spirit/server.sops.yaml` — PST-SERVER credentials (sysadmin) and UCG details (root, keyboard-interactive); raw secrets live in the vault entry, not here. Created during the 2026-05-10 recovered session. - `clients/peaceful-spirit/vpn.sops.yaml` — VPN PSK (z5zkNBds2V9eIkdey09Zm6Khil3DAZs8, confirmed 2026-06-04 matches server), pst-admin credentials, network details. [WARNING] VAULT DRIFT: vault lists pst-admin password as `24Hearts$` but wiki records a reset to `SpiritWalk26!` on 2026-05-22 — needs reconciliation (verify with Mara, update whichever is stale). --- ## Patterns & Known Issues - **Set-VpnConnection -L2tpPsk cannot run via RMM (SYSTEM context).** Windows enforces interactive mode for PSK registration. An admin must run this command manually on each machine in an interactive session. This is a one-time setup step per machine. Exception: the `user_session` command context in GuruRMM (added post-2026-05-22) does allow it — validated on BridgettePSHomeComputer 2026-05-27. - **NRPT instead of VPN DNS suffix push.** `Add-VpnConnectionTriggerDnsConfiguration` fails for AllUserConnection profiles. Use `Add-DnsClientNrptRule -Namespace ".peacefulspirit.local" -NameServers "192.168.0.2"` instead. - **cmdkey as SYSTEM for pre-login credential persistence.** Machine credential store entries (cmdkey in SYSTEM context) are available at the Windows login screen; per-user cmdkey entries are not. - **Stale hosts file.** During 2026-05-22 on-site, MaraHomeNew (and likely other machines) had a stale hosts entry mapping PST-SERVER to 72.194.62.5 (Mara's router's bogus DNS response). This caused name resolution failures even with VPN up. A GuruRMM cleanup script was deployed; verify no residual entries if name resolution issues recur. The hosts-file path encoding bug (`driverstc` artifact) means the cleanup script may not have fully run on all machines. - **UDR Ultra reboot can silently drop the VPN port-forward (site-wide outage risk).** Confirmed 2026-06-04: the UDR Ultra (UCG-PST-CC) rebooted at 03:59 and came back without the UDP 500/4500 -> 192.168.0.2 port-forward, taking the entire site VPN offline with error 789 (IKE packets silently dropped at the edge). The `/data/on_boot.d/10-vpn-portforward.sh` persistence script was present but the UniFi OS 5.1.15 controller schema migration appears to have superseded it. **After any site-wide error 789, check the UDR port-forward in the UniFi controller FIRST** — IPsec auditing on the server (zero IKE events) is the confirmatory test. Long-term open items: (1) verify the re-added rule persists across a deliberate reboot (possible firmware bug or uncommitted rule), (2) add a DDNS hostname so the hardcoded 98.190.129.150 in client profiles is not a single point of failure for a Cox WAN-IP change. - **UCG iptables DNAT required — UniFi Traffic Rules are firewall-allow only, NOT DNAT.** Port-forward rules must be managed via the UniFi controller UI; `/data/on_boot.d/10-vpn-portforward.sh` is a legacy CLI fallback and may not persist reliably on UniFi OS 5.1.15+ (see above). Always verify iptables live after a reboot. - **UCG SSH unreachable from office WAN.** All remote UCG administration must go through GuruRMM (for PST-SERVER) or the UniFi cloud portal (for UCG itself). LAN SSH (192.168.0.10) requires keyboard-interactive auth — password auth via plink fails; use paramiko with kb_handler or interactive terminal. - **GuruRMM PowerShell invocation quirk.** Running `command_type: powershell` fails on PST machines with "-OutputEncoding is not recognized." Use `command_type: cmd` and call `powershell.exe` explicitly within the script body. - **Machine cert template (PEACEFULSPIRIT-PST-SERVER-CA / Machine template).** `msPKI-Certificate-Name-Flag` was changed from `0x18000000` to `0x1` (ENROLLEE_SUPPLIES_SUBJECT) on 2026-05-11. This is a domain-wide template change. New machine certs will use the CSR Subject/SAN rather than the submitting machine's AD DNS identity. RRAS UserAuthProtocolAccepted now includes Certificate (added 2026-05-11). - **OneDrive KFM on WSE folder-redirected profiles.** Machines formerly managed by Windows Server Essentials had WSE-specific non-standard GUID variants in User Shell Folders (different from standard Known Folder GUIDs). Direct HKU writes alone do not clear the shell's internal known folder policy state — `SHSetKnownFolderPath` must be called with `flags=0` (not 0x4000) in user session context. If KFM still fails after registry cleanup, wipe the profile and redeploy with per-machine OneDrive (`/allusers`). - **pst-admin vs sysadmin distinction.** `pst-admin` is a domain user (in WseRemoteAccessUsers, VPN-eligible). `sysadmin` is domain admin. Many early session failures were caused by using pst-admin credentials for domain admin operations. - **NPS grants VPN by WseRemoteAccessUsers group membership, not msNPAllowDialin alone.** The NPS network policy condition is SID-based (WseRemoteAccessUsers, `...-1113`). A user with `msNPAllowDialin=TRUE` but not in the group will get error 812 (policy denial). Both attributes are required. - **cmdkey credential not used by rasdial for PPP auth.** The machine-store cmdkey entry (target = server address) is NOT consulted for PPP authentication. No-arg `rasdial` calls send the wrong principal (SYSTEM → error 691; logged-in user without explicit credential → error 812). For non-interactive auto-connect, use the logon scheduled task approach (BridgetteSH) or the AllUserConnection cmdkey path (pst-admin machines). - **NAT-T registry key required on all client machines.** `AssumeUDPEncapsulationContextOnSendRule=2` under `HKLM:\SYSTEM\CurrentControlSet\Services\PolicyAgent` must be set AND the machine must be rebooted (IPsec caches at boot). BridgettePSHomeComputer was missing this key; error 809 until rebooted after setting it. Verify this key is present before troubleshooting any future VPN error 809. --- ## Active Work As of 2026-06-04 session end: - **VPN rollout: COMPLETE.** All four machines (MaraHomeNew, Maras-HP-Laptop, PST-SURFACE, BridgettePSHomeComputer) have working L2TP/IPsec VPN. 2026-06-04 site-wide outage (UDR reboot) confirmed resolved: Bridgette connected (192.168.0.242), Mara IPsec established. - **[OPEN] UDR port-forward reboot-persistence test:** Confirm the re-added UDP 500/4500 -> 192.168.0.2 rule survives a deliberate UDR reboot. The prior rule vanished on the 2026-06-04 03:59 reboot — may be a firmware bug or an uncommitted rule. If it doesn't persist, re-examine `/data/on_boot.d/10-vpn-portforward.sh` or escalate to UniFi. - **[OPEN] DDNS for VPN endpoint:** Client profiles hardcode 98.190.129.150 (Cox WAN). A DDNS hostname would prevent a site-wide VPN breakage on a Cox IP change. Deferred — low urgency but document path. - **[OPEN] Vault drift — pst-admin password:** `vpn.sops.yaml` lists `24Hearts$`; wiki records reset to `SpiritWalk26!` on 2026-05-22. Reconcile: verify current password with Mara, update vault to match. - **[OPEN] Syncro ticket #32271 update:** Resolution + 1hr warranty labor for 2026-06-04 outage (per session log, in progress at session end). - **Parity decision deferred:** Mara's 3 machines connect as shared `pst-admin`; BridgetteSH connects as her own domain account via SSO. Consider aligning all to per-user auth (cleaner audit trail) or aligning Bridgette to `pst-admin`. - **Pre-login VPN verification:** Confirmed working on MaraHomeNew via rasdial. Maras-HP-Laptop and PST-SURFACE need verification at the Windows login screen specifically. - **Hosts file cleanup verification:** The GuruRMM cleanup script had a path encoding bug (`driverstc` instead of `drivers\etc`) — DNS was flushed but hosts entries may not have been removed on all machines. Verify if name resolution issues recur. - **PST-SERVER temp file cleanup:** `C:\ProgramData\`: gen_certs.ps1, fix_acl.ps1, acl_result.txt, verify_acl.ps1, acl_verify.txt, and all *.inf, *.req, *.cer, *.pfx files. Also remove temporary firewall rules TEMP-CertEnroll-RPC (TCP 135) and TEMP-CertEnroll-DCOM (TCP 49152-65535). - **Machine cert VPN path (IKEv2) — deferred.** Machine certs were generated for MaraHomeNew (D067E07B), Maras-HP-Laptop (4CADDE8F, CA RequestId 66), and PST-SURFACE (197FF22A, CA RequestId 67) and PFXs (password: PstVpn2026!) were created. This IKEv2 machine-cert approach was superseded by the L2TP/RRAS decision on 2026-05-22. The certs and PFXs remain on PST-SERVER and DESKTOP-0O8A1RL — determine if IKEv2 path should be completed, abandoned, or the certs revoked. - **Auto-connect task on BridgettePSHomeComputer:** Validated via `Start-ScheduledTask`; Bridgette fully connected 2026-06-04 (logon-task path confirmed end-to-end during outage resolution). --- ## History Highlights | Date | Event | |---|---| | 2026-05-10 | GuruRMM agent installed on PST-SERVER. UCG-PST-CC reconfigured for IKEv2 in prior (unlogged) session. IKEv2 error 812 diagnosed — NPS rejecting nonexistent user `apst-admin` (typo in stored credential). NPS order-0 test policy (PST-VPN-Test) added. Credential Manager corrected on DESKTOP-0O8A1RL. | | 2026-05-10 | GuruRMM agents enrolled on MaraHomeNew, Maras-HP-Laptop, PST-SURFACE. AllUserConnection IKEv2 "Peaceful Spirit VPN" profiles deployed to all three Mara machines. | | 2026-05-11 AM | PST-VPN-Test NPS policy removed. AutoEnroll ACL on Machine cert template fixed (Domain Computers, sysadmin scheduled task). Catch-22 identified: machine cert enrollment requires LAN access which requires a cert. OpenVPN on MaraHomeNew chosen as bootstrap path. | | 2026-05-11 PM | Machine cert auth working on MaraHomeNew. Win32-OpenSSH installed on PST-SERVER. msPKI-Certificate-Name-Flag changed to 0x1 (ENROLLEE_SUPPLIES_SUBJECT). RRAS UserAuthProtocolAccepted updated to include Certificate. PFX certs generated for Maras-HP-Laptop and PST-SURFACE. | | 2026-05-11 PM | Maras-HP-Laptop: OneDrive KFM "Capabilities: 0x101" error troubleshooting. WSE non-standard GUID variants in User Shell Folders identified and corrected. Shell Folders cache directly updated via SYSTEM/HKU. SHSetKnownFolderPath flags=0x4000 bug identified (root cause of all prior script failures). | | 2026-05-11 Evening | pst-admin profile on Maras-HP-Laptop wiped entirely (WMI). Per-machine OneDrive deployed. "Block New Outlook" GPO created and linked to domain root. | | 2026-05-22 | L2TP/IPsec VPN successfully deployed to MaraHomeNew, Maras-HP-Laptop, PST-SURFACE during on-site visit at Mara's house. UCG-hosted strongSwan/xl2tpd abandoned; RRAS on PST-SERVER became the VPN endpoint. UCG DNAT rules created for UDP 500/4500/ESP. Stale hosts file entries removed. pst-admin and mara passwords reset to SpiritWalk26!. BridgettePSHomeComputer offline — VPN pending. | | 2026-05-27 | BridgettePSHomeComputer VPN deployed fully remotely via GuruRMM `user_session` context (no on-site visit). L2TP PSK set remotely. BridgetteSH added to WseRemoteAccessUsers and granted msNPAllowDialin. Logon scheduled task created for auto-connect. VPN rollout complete across all four machines. | | 2026-06-01 | Crashed 2026-05-10 session transcript (9700a3c6) recovered by the auto-reconstructor. Primary-source log saved as `clients/peaceful-spirit/session-logs/2026-05-10-recovered-setup-radius-authentication-for-vpn-access.md`, cross-linked with the manual `2026-05-10-session.md`. Covers UCG SSH key generation, paramiko tunneling, RADIUS/NPS extraction, and vault `server.sops.yaml` creation. | | 2026-06-04 | Site-wide VPN outage: UDR Ultra (UCG-PST-CC) rebooted at 03:59 and returned without UDP 500/4500 -> 192.168.0.2 port-forward. All clients failed RAS error 789 (IPsec pre-auth, zero IKE packets reaching server). RRAS/PST-SERVER confirmed healthy (30-day uptime, services up, PSK correct). Root cause isolated to missing DNAT rule via IPsec auditing (zero IKE events on live dial). Mike re-added port-forward in UniFi controller. Bridgette connected (192.168.0.242, event 20224); Mara IPsec established. BridgettePSHomeComputer re-enrolled in GuruRMM (new UUID 01160fc8, old 074141d7 dead). PST-SERVER agent UUID confirmed 87293069; MaraHomeNew agent UUID confirmed e9645594. | --- ## Backlinks - [[projects/gururmm]] — PST-SERVER, MaraHomeNew, Maras-HP-Laptop, PST-SURFACE, BridgettePSHomeComputer enrolled (site: Country Club)