Távoli asztal (RDP)
Egy RDP-alkalmazás egy Windows-szerver asztalát nyitja meg a felhasználó böngészőjében, Web Accessen át. Ugyanúgy fut, mint egy izolált böngésző: az RDP-kliens egy RBI-hoszton fut, a felhasználó böngészője csak a képet kapja. Hogy egy alkalmazás általában hogyan konfigurálható, az az alkalmazások konfigurálása lapon van.
Mi az RDP-alkalmazás
Az az alkalmazás RDP-cél, amelynek upstreamje rdp://host[:port] (port nélkül a 3389). Ezen felül kell neki:
mode: isolated— RDP-cél csak izoláltan fut;identity: credential, egykind: rdpfiókkal az OpenBaóban: a Windows-fiók, amellyel a munkamenet belép, és annak opcionális tartománya;- vagy
rdp_cert_fingerprints(minden elemsha256:előtaggal) a szerver tanúsítványának rögzítésére, vagyrdp_ignore_cert, amely a tanúsítványt egyáltalán nem ellenőrzi; - az
rdpmodul a licencben.
Egy RDP-célnak nincs HTTP-je: az alkalmazás csak HTTP-re értelmes kulcsait elutasítja, és egy rá hivatkozó
http_rules-bejegyzés miatt a policy nem töltődik be.
Hogyan fut egy munkamenet
- A felhasználó megnyitja az alkalmazást; a
/_isg/rbi/viewoldal a brókerhez kapcsolódik, amely egy RBI-hoszt guacd-jén elindítja az RDP-munkamenetet. - A guacd maga nem éri el a Windows-szervert. Az RDP-kapcsolata az agent kapcsolatán tér vissza a brókerhez, és a
bróker tárcsázza az alkalmazás beállított upstreamjét (
APP_RDP_UPSTREAM_CONNECTEDvagyAPP_RDP_UPSTREAM_FAILED). A 3389-es portot a bróker nyitja, mint minden más célét: a single funnel marad. - A bróker a munkamenet indulásakor kiolvassa a fiókot az OpenBaóból, és átadja a guacd-nek. A felhasználó a jelszót nem látja és nem adja meg.
- A munkamenet egy munkamenet-rekord, mint bármely Web Access-munkamenet,
rdpprotokollal: azisg sessionsaz alkalmazás mellett kiírja a protokollt, a webUI munkamenet-táblája saját RDP-csoportban mutatja, és az RBI-sorai (APP_RBI_SESSION_STARTED,APP_RBI_SESSION_CLOSED) meg az upstream-sorai a rekordhoz kötődnek, így azisg audit --sessionkilistázza őket. - Az RDP-munkamenetnek nincs parancs-naplója: a nyoma a képernyőfelvétel és az audit-napló.
Csatornák
Alapból minden csatorna ki van kapcsolva. Közülük négy a policy.yaml-ban kapcsolható be, alkalmazásonként és
szerepenként, az rdp_channels kulccsal:
clipboard_to_remote— a vágólap a felhasználó gépéről a távoli asztalra, csak a felhasználó kérésére: a nézet Vágólap küldése gombja küldi el a helyi vágólap szövegét (a böngésző egyszer engedélyt kér az olvasásához). Fókuszváltáskor vagy kérés nélkül semmi nem megy át;clipboard_from_remote— a vágólap a távoli asztalról a felhasználó gépére;printer— nyomtatás: a távoli asztal nyomtatója PDF-et készít, amely a felhasználó gépére töltődik le;audio_out— a távoli asztal hangja.
A meghajtók és a mikrofon nem érhetők el. Egy szabály megnevezi az alkalmazásait (apps, kötelező, csak
RDP-alkalmazás), opcionálisan a szerepeket (roles; üresen minden szerep) és a megnyitott csatornákat (allow,
kötelező). Az illeszkedő szabályok összeadódnak; ha egy sem illeszkedik, minden csatorna ki marad:
rdp_channels:
- name: win-ops-clipboard
apps: [APP-2026-000005]
roles: [operator, sysadmin]
allow: [clipboard_to_remote, clipboard_from_remote]
- name: win-sysadmin-print
apps: [APP-2026-000005]
roles: [sysadmin]
allow: [printer, audio_out]
Ha egy szabály nem RDP-célt nevez meg, a policy nem töltődik be, ahogy egy RDP-célt megnevező http_rules-bejegyzés
miatt sem; egy, az apps.yaml-ban nem szereplő alkalmazás csak figyelmeztetés. A csatornák a munkamenet
kapcsolódásakor rögzülnek: az újratöltött policy.yaml a futó RDP-munkamenetet nem változtatja, csak a következő
kapcsolódást.
A csatornákat két helyen érvényesíti az ISG: a guacd csak a megnyitottakat kapja meg, és a bróker tunnelje eldobja egy
kikapcsolt csatorna adatfolyamát. Az APP_RDP_UPSTREAM_CONNECTED felsorolja a munkamenet channels mezőjében a
csatornákat (üres lista, ha mind ki van kapcsolva). Minden vágólap-átvitel és minden nyomtatás egy
APP_RDP_CHANNEL_TRANSFER sor, a végén írva: user, app, app_id, rbi_id, session_id, channel, mimetype,
bytes (az átvitt méret), filename (csak nyomtatásnál) és blocked — egy kikapcsolt csatornán tett próbálkozás is
sor, blocked igaz értékkel. Maga a tartalom soha nem kerül a naplóba. A hangot nem naplózza adatfolyamonként; a
channels mutatja, be volt-e kapcsolva.
Billentyűzet
A nézet a billentyűzetet a távoli asztalnak küldi. Két esetben kell segítség, mert ezeket a böngésző megtartja:
- Teljes képernyő (a nézet gombja, nem az F11): Chromium-alapú böngészőben a nézet ekkor a böngésző-szintű billentyűket is — Alt+Tab, Windows-billentyű, Ctrl+W, Ctrl+T — a távoli asztalnak adja. A hosszan nyomott Esc kilép a teljes képernyőből, és visszaadja őket. Más böngészőben, vagy az F11-gyel indított teljes képernyőn ezek a helyi gépnél maradnak.
- Ctrl+Alt+Del küldése: a Ctrl+Alt+Del-t egyetlen böngésző sem engedi át, ezért a nézet gombja küldi el.
Nézői türelmi idő
Amikor a felhasználó nézete bezárul (bezárja a lapot, megszakad a hálózat), az RDP-munkamenet vár a visszatérésére, és
ha a nézet időben újra megnyílik, ugyanaz a Windows-munkamenet folytatódik. RDP-alkalmazáson a várakozás alapból
60 másodperc, nem az izolált böngésző rbi.yaml-beli viewer_grace_seconds-a. Egy alkalmazás a sajátját az
apps.yaml viewer_grace_seconds kulcsával adhatja meg (30–3600 másodperc), RDP-cél és izolált böngésző egyaránt.
Felvétel, élő nézet és megszakítás
Minden RDP-munkamenetről képfelvétel készül, Guacamole-formátumban, és a webUI-ban a munkamenet lapján játszható
vissza, mint egy izolált böngésző felvétele (APP_RBI_RECORDING_STORED). A felvétel a munkamenet végén jut el a
brókerhez; amíg meg nem érkezik, a munkamenet lapja azt mondja, hogy feldolgozás alatt van.
Egy adminisztrátor, aki munkamenetet zárhat, a /sessions/live címen nézheti a futó RDP-munkamenetet. A nézet csak
olvasható: a néző egere és billentyűzete nem jut el a távoli asztalig (élő RDP-munkameneten ellenőrizve,
2026-11-01-én).
A munkamenet lezárása a munkamenet-táblából a távoli asztalt is befejezi, nagyjából 10 másodpercen belül: a nyitott
nézet a szokásos ellenőrzésekor elolvassa a rekordot, és a felhasználó nézete APP_SESSION_CLOSED sorral, admin_close
okkal ér véget.
Ha a kapcsolat a cél felől szűnik meg — a felhasználó kijelentkezik a Windowsból, megszakad a hálózat, vagy egy másik
kapcsolat átveszi a Windows-munkamenetet —, az ISG-munkamenet is lezárul: a rekord target_closed okkal zárul, az
APP_RDP_UPSTREAM_CLOSED megnevezi, ki bontott (ended_by: a cél, vagy maga az ISG minden olyan zárásnál, amelyet az
ISG végzett), és utána APP_SESSION_CLOSED jön, target_closed okkal. A felhasználó nézete kiírja, hogy a távoli gép
bontotta a kapcsolatot, és nem kínál újracsatlakozás-gombot: az alkalmazást újra meg kell nyitni. A nézet újratöltése
vagy a lapja bezárása nem a cél bontása; a munkamenet megmarad.
Amikor az ISG zár le egy munkamenetet, a Windows-munkamenet szétkapcsolt állapotban megmarad a célgépen, hacsak a célgép nem korlátozza. A célgép előfeltétele a „Set time limit for disconnected sessions” (a szétkapcsolt munkamenet időkorlátja) csoportházirend.
Fiókonként egy élő munkamenet
A Windows egy második, ugyanazzal a fiókkal érkező kapcsolatnak az első asztalát adja, az elsőt pedig bontja. Ezért az ISG egy RDP-alkalmazás egy fiókjára egyszerre egy élő munkamenetet enged, az összes brókeren át:
- Ugyanaz a felhasználó nyitja meg újra (második lap, másik böngésző): az új munkamenet átveszi. A korábbi rekord
supersededokkal zárul (aSESSION_CLOSEDsora a felhasználót nevezi meg zárónak,takeoverúton), az alkalmazás-munkameneteAPP_SESSION_CLOSEDsorral,supersededokkal ér véget, és a nézete kiírja, hogy egy újabb megnyitás átvette. Az új munkamenet csatlakozik. - Másik felhasználó nyitja meg: a megnyitás HTTP 409-cel és egy, a birtokost megnevező oldallal elutasítva — a
fiók, a felhasználó, a munkamenet és hogy mióta.
APP_ACCESS_DENIEDsor íródik,rdp_account_busyokkal,account,holder_userésholder_session_idmezőkkel. Munkamenet-rekord nem nyílik.
Ha két felhasználó ugyanabban a pillanatban két brókeren nyitja meg ugyanazt a fiókot, a korábbi rekord marad, a
későbbi account_busy okkal zárul, ugyanazzal a 409-es oldallal. A munkamenet-rekord megnevezi a fiókját
(isg sessions show, Account:).
reserved_usernames RDP-n
RDP-alkalmazáson a reserved_usernames egyszerű lista azokról az ISG-felhasználónevekről, amelyek nem nyithatják
meg. A Windows-fiókot nem védi: a fiók a tárolt credential, nem a felhasználó neve — ugyanúgy, mint egy
identity: credential HTTP-alkalmazásnál.