Barvna shema: Temna
Trenutno dejavna stran: start » sl » Dokumentacija » Razširitve DokuWikija (WvdS) » Zamenjani paketi in stari ID-ji 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 stran wikija (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 stran wikija (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 oblike zapisa) — 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 Wolfgang van der Stille