Trenutno dejavna stran: start » sl » Interna dokumentacija » Razširitve DokuWikija (WvdS) » Zamenjani paketi in stare oznake strani » wvdsremote — DSL za inventar/povezavo

wvdsremote — DSL za inventar/povezavo

Vtičnik wvdsremote ponuja deklarativno označevanje, s katerim je inventar gostiteljev v celoti definiran v wiki besedilu in izrisan kot enotna, temizirana površina za povezovanje. Poverilnice nikoli niso v označevanju — gostitelj referencira skrivnost trezorja izključno prek ID-ja; vrednost je šifrirano shranjena v vtičniku wkvault in se dešifrira le na strežniški strani.

Dejanska vzpostavitev povezave (prehod brskalnika oziroma izvorni odjemalec) sledi v poznejši fazi razvoja. Trenutno površina izriše kartice s pravilnim stanjem; gumbi so še neaktivni.

Dve vstopni točki

Oblika Namen
Vsebnik <wk:remote> … </wk:remote> Definira skupine in gostitelje (na ravni bloka).
Vrstično {{wk:remote host="id"}} Vdela posamezen gradnik za povezavo za že registriranega gostitelja.

Vsebnik je vir za avtorja: ob shranjevanju strani se njegovi gostitelji prevzamejo v inventar; vrstični gradnik nato razreši ID host.

Vozlišča in atributi (shema v1)

<group>

Atribut Obvezno Privzeto Pomen
label ne „(brez skupine)“ Naslov razdelka
icon ne Razred Font Awesome, vzorec fa-…
collapsed ne false Razdelek na začetku strnjen

Otroci: <host>.

<host>

Atribut Obvezno Privzeto Pomen
id da Stabilna oznaka gostitelja (slug a–z 0–9 -); hkrati vrstična referenca
address da Ciljni naslov (ime gostitelja/IP)
protocol da rdp
ssh
vnc
secret ne¹ ID skrivnosti trezorja (le referenca)
name ne = id Prikazano ime
port ne 3389/22/5900 1–65535 (privzeto glede na protokol)
tier ne protected auto
protected (raven trezorja)
note ne Povezana wiki stran (naslov kartice postane povezava)
icon ne odvisno od protokola Razred Font Awesome
security ne le rdp: any|nla|tls|rdp|vmconnect
ignore-cert ne true Preverjanje potrdila izklopljeno (namerno privzeto za laboratorij)

¹ secret je formalno neobvezen; <access> brez shranjene skrivnosti se izriše kot onemogočen gumb.

Otroci: <access>, <link>, <tag>.

<access>

Atribut Obvezno Pomen
mode da browser
agent
rdp-launch
ssh-launch
clipboard
label ne Napis gumba (privzeto glede na način)

rdp-launch le pri protocol=„rdp“, ssh-launch le pri protocol=„ssh“; agent le pri protocol=„rdp“ ali „ssh“ (VNC teče izključno prek prehoda brskalnika); sicer gumb napake.

Atribut Obvezno Pomen
page da Ciljna wiki stran (le interna)
label ne Besedilo povezave

<tag>

Besedilno vozlišče brez atributa: klasifikacija, izrisana kot čip.

Stanja kartice gostitelja

Stanje Sprožilec Prikaz
unlocked Samodejna raven oziroma trezor odklenjen in berljiv Gumbi dostopa aktivni
locked protected in trezor zaklenjen Gumb „Odkleni trezor“
secret-missing Skrivnost manjka/neznana Gumb onemogočen („skrivnost ni shranjena“)
no-permission Ni pravice branja Gostitelj skrit ali „brez dostopa“ (nastavitev hide_denied)
error-config Obvezna vrednost neveljavna / browser brez prehoda Kartica napake s konkretnim vzrokom
empty Ni vidnih gostiteljev Besedilo praznega stanja

Varnost

  • V shemi ne obstaja atribut password/pass/pwd — takšni atributi se označijo z

opozorilom in nikoli ne obdelajo.

  • Notranji blok se razčlenjuje utrjeno: brez DTD/entitet (DOCTYPE se zavrne), brez

omrežnega dostopa — napadi XML External Entity (XXE) so izključeni.

  • Vsi izpisi so ubežani za HTML; povezave opomb kažejo izključno interno; vrednosti skrivnosti
    • in* ID-ji skrivnosti se nikoli ne pojavijo v izrisanem HTML.

Popoln primer

<wk:remote>
  <group label="Produkcija" icon="fa-server">
    <host id="prod-db01" name="DB Primary" address="198.51.100.10" protocol="rdp"
          port="3389" secret="prod-db01-admin" tier="protected"
          security="nla" note="sl:wiki:runbooks:db-failover">
      <access mode="browser"    label="Brskalnik (RDP)"/>
      <access mode="rdp-launch" label="mstsc"/>
      <link page="sl:wiki:runbooks:db-failover" label="Runbook za izpad"/>
      <tag>kritis</tag><tag>db</tag>
    </host>
    <host id="prod-ssh01" name="Jump Host" address="198.51.100.20" protocol="ssh"
          secret="prod-ssh01-ops" tier="auto">
      <access mode="browser"/>
      <access mode="ssh-launch"/>
    </host>
  </group>
</wk:remote>

Vrstično v runbooku:

{{wk:remote host="prod-db01"}}

Povezovanje

Aktiven gumb dostopa pokliče pooblaščeno končno točko connect (?call=wvdsremote_connect): preverijo se CSRF, članstvo @wvdse in ACL, skrivnost pa se dešifrira iz trezorja na strežniški strani.

  • Brskalnik (mode=browser): strežnik zgradi šifriran, kratkotrajen žeton guacamole-lite

(AES-256-CBC); brskalnik z njim odpre sejo Guacamole prek prehoda. Geslo v golem besedilu nikoli ne potuje proti brskalniku — potuje le nepregleden žeton.

  • Agent (mode=agent): strežnik zgradi overjen žeton (AES-256-GCM); brskalnik ga

POSTa lokalnemu agentu za vbrizgavanje (http://127.0.0.1:<port>/launch — localhost je

  "potencialno zaupanja vreden", zato dosegljiv tudi s strani https). Agent žeton dešifrira,
  preveri TTL + enkratni ''nonce'' ter poverilnice vbrizga izvorno (RDP prek ''cmdkey''→''mstsc''
  z naknadnim brisanjem poverilnice; SSH prek PuTTY). **Brez golega besedila v brskalniku** —
  prikazano kot varnostna značka "vbrizgano (izvorno, lokalni agent)". Pogoj: zagnan
  ''wvdsragent'' ter nastavljena ''agent_url''/''agent_shared_key_path''.
* **Izvorno (''rdp-launch''/''ssh-launch''/''clipboard''):** strežnik dostavi datoteko ''.rdp''
  oziroma URI ''ssh://'' (brez vdelanega gesla) ter geslo za **odložišče**
  (samodejno počiščenje po 30 s). Ta pot namerno izpostavi geslo odjemalcu — prikazano kot
  varnostna značka "odložišče (golo besedilo)".

Operativni pogoj: prehod (guacamole-lite + guacd prek Dockerja, deploy/gateway/), sveženj guacamole-common-js pod vendor/ ter konfiguracijski vrednosti guac_base_url (wss://…) in guac_shared_key_path (zunaj ključka).

Varnostne meje (namerne): žeton guacamole-lite je AES-256-CBC brez MAC (omejitev formata) — kompenzirano s kratkim TTL, strežniškim nonce (prehod zavrne potekle/ponovljene žetone) in vsiljenim razčlenjevanjem JSON. Žeton agenta je nasprotno AES-256-GCM (overjen), enkraten (nonce) in s kratkim TTL; agent se veže izključno na 127.0.0.1. Meja zaupanja poti agenta: lokalni wvdsragent nujno vidi golo besedilo (potrebno za vbrizgavanje) — upravljavčev računalnik je sidro zaupanja; v produkciji je treba binarno datoteko agenta podpisati z Authenticode. Pot clipboard/launch namerno za kratek čas postavi geslo v odložišče. Deljeni ključi (prehod in agent) so surovi (ne DPAPI) zunaj ključka, ker ju mora proces Node oziroma .NET prebrati.

Opombe

  • ID-ji gostiteljev naj bodo globalno enolični; če dve strani definirata isti ID, vnos v

inventarju dobi nazadnje shranjena stran.

  • Vrstični gradnik predpostavlja, da je bil gostitelj predhodno shranjen prek vsebnika.
  • Gnezdeni vsebniki v shemi v1 niso predvideni.

Različičenje

Nabor atributov in vozlišč tvori shemo v1. Nova vozlišča/atributi se dodajajo le aditivno; spremembe, ki lomijo združljivost, dvignejo različico sheme. Ta stran je merodajna referenca.

sl/wiki/dwe/legacy/wvdsremote.txt · Zadnja sprememba: uporabnika 0.0.0.0