On-Prem Scanning — tunel, AD/LDAP, vCenter
Gdy ZEUS działa w chmurze, a klient ma środowisko on-premise (np. domenę AD, flotę Windows, vCenter) za firewallem bez portów inbound — łączymy je tunelem reverse-SSH. Studio On-Prem Scanning udostępnia te dane operatorowi.
Topologia
ZEUS (cloud) → 127.0.0.1:9100 → (reverse SSH) → lsn-vm:9100
│
└─→ lsn_probe_agent.py
· Get-LsnForest.ps1 (AD/LDAP)
· Get-LsnInventory.ps1 (sieć)
· Get-LsnPerf.ps1 (WinRM)
· pyVmomi (vCenter), SMB, SQL
- Kierunek: pull. Frontend woła
/api/v1/lsn-onprem/<probe>, backend trafia nalocalhost:9100, tunel przekierowuje do agenta na maszynie klienta. - Brak inbound u klienta — jedyny wymóg to outbound SSH z lsn-vm do ZEUS.
- Agent nasłuchuje tylko na
127.0.0.1— tunel to jedyna droga wejścia.
Probe'y (sondy)
| Probe | Źródło | Co zwraca |
|---|---|---|
/forest | Get-LsnForest.ps1 | las AD: domeny, DC, sites, trusty, grupy uprzywilejowane |
/forest?full | paged LDAP | cała domena: wszyscy users/groups/computers/OU/SPN/GPO/trusty |
/ad-users, /gpos | LDAP | użytkownicy i obiekty GPO |
/inventory | network sweep | ARP + ICMP + banner-grab |
/winrm-perf, /winrm-events | WinRM | perf + Windows Event Log |
/vcenter | pyVmomi | VM-y, hosty, datastore |
/file-shares, /sql-instances | SMB / SQL Browser | udziały i instancje SQL |
Pełny scrape domeny (paged LDAP)
AD ucina pojedynczą odpowiedź na MaxPageSize (domyślnie 1000), więc zwykły
zapytanie cicho obcina dużą domenę. Get-LsnForest.ps1 -Full używa
PageResultRequestControl, by przejść całą domenę stronami:
$page = [System.DirectoryServices.Protocols.PageResultRequestControl]::new(1000)
# ...pętla po stronach aż Cookie.Length == 0 → komplet obiektów
To realizuje wymóg „zescrapuj cały AD i LDAP". ADFS pokrywa osobny probe (federation metadata XML + WinRM moduł ADFS).
Warstwa cache + scheduler
Worker lsn_onprem_warmup_tick (ARQ) co ~4 min pre-grzeje cache probe'ów, więc
studio renderuje < 100 ms. Działa fail-open — błąd tunelu nie psuje auth.
Konfiguracja (skrót)
LSN_ONPREM_ENABLED=1
LSN_ONPREM_HOST=127.0.0.1
LSN_ONPREM_PORT=9100
LSN_ONPREM_TOKEN=<token>
Runbook operatora: scripts/lsn-probe/REVERSE_TUNNEL.md.
Bezpieczeństwo: użytkownik
lsn-tunnelpo stronie ZEUS maForceCommand /bin/falseipermitlisten="9100"— nawet wyciek klucza nie daje shella, tylko jeden pre-autoryzowany reverse-forward. Wszystkie probe'y są read-only.
To zaawansowany temat, ale kluczowy dla wdrożeń hybrydowych — pozwala pokazać klientowi cały las AD i flotę Windows bez otwierania jednego portu inbound.