abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:33 | Nová verze

    Byla vydána nová verze 14.3 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 14:00 | Upozornění

    CSIRT.CZ upozorňuje, že na základě rozhodnutí federálního soudu ve Spojených státech budou veškeré konverzace uživatelů s ChatGPT uchovávány. Včetně těch smazaných.

    Ladislav Hagara | Komentářů: 1
    dnes 13:44 | Pozvánky

    Ač semestr ve škole právě končí, bastlíři ze studentského klubu Silicon Hill neodpočívají a opět se jako každý měsíc hlásí s pravidelným bastlířským setkáním Virtuální Bastlírna, kde si můžete s ostatními techniky popovídat jako u piva o novinkách, o elektronice, softwaru, vědě, technice obecně, ale také o bizarních tématech, která se za poslední měsíc na internetu vyskytla.

    Z novinek za zmínku stojí Maker Faire, kde Pájeníčko předvedlo … více »
    bkralik | Komentářů: 0
    dnes 04:44 | Zajímavý software

    Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.

    Ladislav Hagara | Komentářů: 0
    dnes 02:00 | IT novinky

    Do 16. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2025 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | IT novinky

    Apple na své vývojářské konferenci WWDC25 (Worldwide Developers Conference, keynote) představil řadu novinek: designový materiál Liquid Glass, iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, visionOS 26, tvOS 26, nové funkce Apple Intelligence, …

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Komunita

    Organizátoři konference LinuxDays 2025, jež proběhne o víkendu 4. a 5. října 2025 v Praze na FIT ČVUT, spustili přihlašování přednášek (do 31. srpna) a sběr námětů na zlepšení.

    Ladislav Hagara | Komentářů: 0
    včera 19:11 | Nová verze

    Po roce byla vydána nová stabilní verze 25.6.0 svobodného multiplatformního multimediálního přehrávače SMPlayer (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | IT novinky

    DNS4EU, tj. evropská infrastruktura služeb DNS založená na vysoce federovaném a distribuovaném ochranném ekosystému, byla spuštěna v testovacím režimu [𝕏]. Na výběr je 5 možností filtrování DNS.

    Ladislav Hagara | Komentářů: 15
    8.6. 22:44 | IT novinky

    Skriptovací programovací jazyk PHP (PHP: Hypertext Preprocessor, původně Personal Home Page) dnes slaví 30 let. Přesně před třiceti lety, 8. června 1995, oznámil Rasmus Lerdorf vydání PHP Tools (Personal Home Page Tools) verze 1.0.

    Ladislav Hagara | Komentářů: 16
    Jaký je váš oblíbený skriptovací jazyk?
     (54%)
     (32%)
     (8%)
     (2%)
     (0%)
     (0%)
     (3%)
    Celkem 238 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Guacamole - HTML5 remote desktop

    19.8.2013 16:30 | Přečteno: 3181× | Výběrový blog | poslední úprava: 19.8.2013 17:23

    V lednu jsem tady zveřejnil příspěvek o tunelování skrz korporátní proxy, samozřejmě takové řešení není zrovna ve shodě s bezpečnostní politikou, ale mít přístup k vlastnímu linuxovému systému se prostě hodí, tak jsem se rozhodl toto řešení "zlegalizovat".

    Jednoduše jsem přestěhoval ssh do web browseru, vlk se nažral a koza zůstala celá. Ale když už tak už, co takhle přístup k plnému Xfce desktopu přes webový prohlížeč. Nakonec, taky je to jen otázka instalace několika balíků a jednoduché konfigurace.

    Hezky od začátku

    Jedná se o kombinaci debian+xfce+xrdp+guacamole+lighttpd (reverzní proxy), a začneme hezky od začátku roztočením nové VM s minimální instalací debianu.

    Nainstalujeme základní balíčky a xfce (a lightdm):

    aptitude install openssh-server vim xfce4 lightdm sudo
    

    Teď stačí zapnout lightdm pomocí "service lightdm start" a přihlásit se do Xfce (lightdm také naskočí po rebootu).

    Osobně mi výchozí vzhled Xfce moc nesedí, takže ještě doinstaluji Greybird téma (které závisí na gtk3-engines-unico a gtk2-engines-murrine) a ikonky elementary.

    aptitude install gtk3-engines-unico gtk2-engines-murrine
    

    Samotné greybird téma je možné stáhnout z http://shimmerproject.org/project/greybird/ a stačí rozbalit tarball do ~/.themes. Obdobně, elementary ikonky stačí rozbalit do ~/.icons. A po té v Xfce v menu "Settings->Appearance" vybrat příslušné téma a ikonky.

    Xrdp

    Teď už je čas na xrdp. Jak už to tak bývá, instalace není o nic složitější než:
    aptitude install xrdp
    

    Můžeme otestovat buď pomocí "xfreerdp adresa_serveru" z linuxu (xfreerdp je v debianu/ubuntu v balíčku freerdp-x11) a nebo pomoci klienta z Windows. Samozřejmě je potřeba si dát pozor, aby připojení někde po cestě neblokoval firewall (tcp port 3389).

    Guacamole

    Další na řade je guacamole (samotná RDP->HTML5 proxy). Guacamole je rozděleno do dvou balíků (guacd: demon, který funguje jako proxy mezi RDP, VNC, SSH apod. a guacamole protokolem, který pak interpretuje javascript běžíci v prohlížeči; guacamole: jednoduchá webová aplikace v javě, která stojí mezi guacd a prohlížečem).
    aptitude install guacd libguac-client-rdp0 guacamole guacamole-tomcat
    

    Co se týka konfigurace guacamole, stačí přidat uživatele, nastavit heslo a povolit připojení k vybraným serverům. K tomu slouží /etc/guacamole/user-mapping.xml - ten by měl vypadat přibližně takto (pozn.: heslo zatím nastavte dočasné na otestování, než v posledním kroku přidáme HTTPS reverzní proxy).

    <user-mapping>
        <!-- documentation: http://guac-dev.org/Configuring%20Guacamole -->
        <authorize username="luv" password="abclinuxu">
            <protocol>rdp</protocol>
            <param name="hostname">localhost</param>
            <param name="port">3389</param>
        </authorize>
    </user-mapping>
    
    Poté je potřeba vyresetovat tomcat.
    service tomcat6 restart
    

    To je vše :-). Teď stačí v prohlížeči otevřít http://server:8080/guacamole ... magic! (Ale pozor, v této staré verzi guacamole se kurzor zobrazuje jako vysloveně miniaturní černá tečka, což je ze začátku dost matoucí).

    Lighttpd (mod_proxy) a https

    Samozřejmě začneme nainstalovánim lighttpd

    aptitude install lighttpd
    

    Vygenerujeme self-signed ssl certifikát

    cd /etc/lighttpd/
    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out key.pem -days 3650 -nodes
    
    V /etc/lighttpd/lighttpd.conf pak stači přidat "mod_proxy" do sekce server.modules a také následující řádky:
    server.port = 443
    ssl.engine = "enable"
    ssl.pemfile = "/etc/lighttpd/key.pem"
    proxy.server  = ( "" => ( ( "host" => "127.0.0.1", "port" => "8080" ) ) )
    
    Ještě můžeme přidat následující rewrite pravidlo, které automaticky přidá "/guacamole/" před vsechny URL (snažší než nastavovat výchozí servlet v tomcatu ;-) ):
    url.rewrite-once = ( "(.*)" => "/guacamole/$1" )
    
    Kompletní lighttpd config pak může vypdat třeba takto:
    server.modules = (
            "mod_compress",
            "mod_proxy",
            "mod_rewrite",
    )
    
    server.port = 443
    ssl.engine = "enable"
    ssl.pemfile = "/etc/lighttpd/key.pem"
    proxy.server  = ( "" => ( ( "host" => "127.0.0.1", "port" => "8080" ) ) )
    
    url.rewrite-once = ( "(.*)" => "/guacamole/$1" )
    
    server.document-root        = "/var/www"
    
    server.errorlog             = "/var/log/lighttpd/error.log"
    server.pid-file             = "/var/run/lighttpd.pid"
    server.username             = "www-data"
    server.groupname            = "www-data"
    
    Nové nastavení můžeme otestovat z prohlížeče na adrese https://server

    Závěrečná čistka

    Také by bylo záhodno, aby se na tomcat nedalo připojit přímo, ale pouze přes reverzní proxy o kterou se nám stará lighttpd. V /etc/tomcat6/server.xml najdeme tag "Connector" a přidáme atribut address="127.0.0.1"
        <Connector address="127.0.0.1" port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   URIEncoding="UTF-8"
                   redirectPort="8443" />
    
    A vyresetujeme tomcat:
    service tomcat6 restart
    
    Ještě bych doporučil změnit heslo v guacamole, když už teď bude všechno chodit přes https. A rovnou můžeme uložit nové heslo v user-mapping.xml jako md5 hash. Nejdříve vygenerujeme md5 hash:
    cat | tr -d '\n' | md5sum
    
    A do tagu authorize přidáme atribut encoding="md5". Nový /etc/guacamole/user-mapping.xml pak může vypadat takto:
    <user-mapping>
        <!-- documentation: http://guac-dev.org/Configuring%20Guacamole -->
        <authorize username="luv" password="a1f0ce24f2a7d1731f768c0b655ca3b5" encoding="md5">
            <protocol>rdp</protocol>
            <param name="hostname">localhost</param>
            <param name="port">3389</param>
        </authorize>
    </user-mapping>
    

    Závěr

    Rozjet remote desktop přístupný přes webový prohlížeč není žádná rocket science, a tak si v příštím díle ukážeme, proč to dělat jednoduše, když to jde složitě ... a budeme patchovat, kompilovat, řesit vlastní deployment xrdp a guacamole, rozchodíme si xrdp a guacamole i se zvukem a také se zbavíme závislosti na šílenosti jménem tomcat.        

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    19.8.2013 18:06 David Jaša | skóre: 44 | blog: Dejvův blog
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    Hm, něčeho podobného by šlo dosáhnout s Xspice + spice-html5. V moderních distribucích bez kompilací. ;-) K testování spice-html5 jsem se nedostal, nicméně podle ohlasů by to chodit mělo.
    19.8.2013 18:26 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    Podle toho "bez kompilaci" hadam, ze reagujes na ten zaver kde zminuju provoz Xrdp s podporou presmerovani zvuku ... pokud je Xspice a spice-html5 primo v distru a fakt to chodi se zvukem bez problemu tak proc ne. Pokud ale neni potreba presmerovani zvuku, tak bych se drzel overeneho a sel do Guacamole, to ostatne bude brzo(?) podporovat i SPICE.
    19.8.2013 19:05 David Jaša | skóre: 44 | blog: Dejvův blog
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    Jo to pardon, spice-html5 zvuk neumí. Jakmile spice jako takový přejde na Opus, mělo by to být v html5 verzi brzy.
    19.8.2013 19:26 dizz | skóre: 21 | blog: Dizzyho_Blog
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    Diky borci, davam do TODO listu s cim si hrat ;-)
    Chuck Norris dohral GNU/Linux... a dvakrat!
    20.8.2013 16:34 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    To si teprv pockej na druhy dil :-)
    20.8.2013 19:21 kyytaM | skóre: 35 | blog: kyytaM | Bratislava
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    A kombinacia XRDP s FreeRDP-WebConnect? :)
    20.8.2013 20:06 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    In particular it relies on the Canvas and the WebSockets feature.
    Neprojde pres korporatni proxy :-)
    20.8.2013 20:23 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    A par dalsich duvodu:
    • Guacamole je overenejsi a ma balicky primo v Debianu
    • aktivni vyvoj a kvalitni dokumentace
    • umi radu ruznych protokolu (a dokonce i presmerovani zvuku)
    Max avatar 20.8.2013 22:39 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    Zajímavé. Osobně mám postavený terminal server na FreeNX, ale už je to relativně mrtvoučká záležitost a hledám něco lepšího. Důležité také je, aby to dobře lítalo na pomalejších lajnách. Zatím spíš jen dělám menší průzkum, každopádně jsem myslel, že spice je k lince mnohem šetrnější, nebo se pletu?
    Zdar Max
    Měl jsem sen ... :(
    20.8.2013 23:56 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    Jo jasne, na tohle Xrdp idealni asi nebude (navic v tom setupu co jsem zde popsal Xrdp pouziva VNC ke komunikaci s X serverem (Xvnc) ).
    27.8.2013 07:47 boar | skóre: 25 | Praha
    Rozbalit Rozbalit vše Re: Guacamole - HTML5 remote desktop
    Zdar Vypada to pekne, ale ja hledam alternativu logmein/teamview ale na vlastnim serveru. potrebuju, aby zakaznik (popripade maminka:-) kliknul na odkaz/stahnul exe/nebo tak ... a ja jsem mel v tu chvili moznost se k nemu pripojit.

    Zasadni problem je, ze zakaznik (i ja) muzeme byt v tu chvili za natem. Jedine co jsem nalezl, je ultravnc single click. http://www.uvnc.com/downloads/single-click.html nicmene je to celkem krkolomne, a pouziva to nejaky nekompatabilni RFB protokol. - nefunguje to na linuxu s kazdym vnc. navic, nejdriv u sebe musim udelat ssh tunel na server s port forwardem a pustit vnc klienta v modu listen, a pak zakaznik muze spusit jakysi exe, (ktery se mimochodem generuje na strankach uvnc).

    Moje predstava je: zakaznik vleze na www.mujserver.nekde/link_pro_remote stahne + spusti exe/stahne + spusti jar ja provedu vncview mujserver:nejakyport a hotovo.

    Nejake tipy ?

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.