Portál AbcLinuxu, 2. května 2025 05:50
Již z mých minulých zápisů si mohl laskavý čtenář povšimnout, že provozujeme elektronický archív závěrečných prací našich posluchačů. Máme práce, ke kterým jejich autoři dali souhlas se zveřejněním na Internetu a ty jsou v současné době také dostupné (viz má prosba o otestování). Máme ale také práce, ke kterým souhlas dán nebyl – a takové práce nejenomže nemůžeme vystavit na Internetu, ale podle aktuálního výkladu autorského zákoníku je ani nemůžeme dát volně k dispozici studentům v tom smyslu, že by si mohli tato PDFka kopírovat a odnášet domů. Úkol zněl: smí si je pouze prohlížet!
Naštěstí jsem tou dobou objevil technologii NX pro vzdálený přístup k počítači v grafickém režimu vyvíjenou společností NoMachine a volně dostupný klon terminálového serveru na této technologii postavený – FreeNX. Vyčlenil jsem jeden starší server (Pentium III, 384 MB RAM), kde jsem nainstaloval Adobe Reader a FreeNX a vysdílel adresáře se závěrečnými pracemi. Obešel jsem všechny počítače v knihovně přístupné čtenářům a nainstaloval zde originální klienty ze stránek NoMachine. Ve výsledku to funguje tak, že čtenář na počítači v knihovně spustí klienta, ten mu automaticky na serveru spustí prohlížeč Adobe Reader, kde již si může čtenář otevírat a prohlížet dostupné práce v PDF. Nemůže si je však ukládat. Přesněji řečeno může, ale pouze na serveru a k těmto složkám se žádným jiným způsobem nedostane (doufám :)
Zde je asi zapotřebí vysvětlit, jak přihlašování klienta k terminálovému serveru funguje. Veškerá autentizace (a je-li libo tak i celé spojení) probíhá s pomocí ssh; na serveru se vygeneruje dvojice certifikátů, privátní se rozdistribuuje na stanice a veřejný zůstává na serveru. Vtip spočívá v tom, že veřejný klíč obsahuje příkaz – cestu k programu, který se má spustit, pokud spárování klíčů proběhne v pořádku. Tím programem je nxserver – skript pro bash, který obsluhuje další požadavky klienta, tedy zejména ověření uživatelského jména a hesla, přípravu prostředí a spuštění agenta terminálového serveru pod tímto uživatelským jménem. Tím jsem nakousl další dva triky vedoucí k úspěchu – ověření uživatelského jména a hesla může probíhat vůči jiné databázi než při přímém přístupu na server via ssh, náš uživatel ctenar s heslem, které si může kdokoliv šikovnější zjistit z pracovních stanic, tak na serveru nebude ověřen při pokusu přihlásit se jinak než v prostředí nxserveru. No a konečně vhodnou úpravou skriptu nxserver lze docílit toho, že uživatel si vždy spustí jen a pouze prohlížeč Adobe Reader, ať už si v klientovi navolí cokoliv.
Snad není třeba podotýkat, že na serveru nechybí další obvyklé metody zabezpečení jako firewall, povolení přístupu jen z vybraných IP-adres apod.
Aby to fungovalo, uživatel ctenar musí mít právo zápisu ve svém home a ve složce tmp. Kdyby si dal někdo tu práci, může zaplnit přidělené diskové kvóty – inu škodí tím sám sobě.
Nelze také přehlédnout fakt, že dost často nejsou terminálová sezení ukončena korektně, nesmažou se dočasné soubory, některé procesy zůstávají viset v paměti – denně pouštěný skript čistka toto spraví.
Někdo může namítnout, že z uživatelského hlediska toto není zrovna komfortní řešení. Souhlasím, není. Pokud někdo zná něco lepšího, rád se nechám poučit. Stejně tak pokud někdo v mém řešení „nesmíš stáhnout“ vidí nějakou mezírku, budu rád, když si ji nenechá pro sebe.
Já mohu po téměř půl roce provozu konstatovat, že se nám toto řešení osvědčilo; server bez problémů zvládá desítky zároveň připojených uživatelů, kteří možná nejsou s omezeními spokojeni, ale jinak poslušně „pouze prohlížejí“.
Tiskni
Sdílej:
privátní se rozdistribuuje na stanice a veřejný zůstává na serveruOpravdu?
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
Úkol zněl: smí si je pouze prohlížet!Úkol zněl jasně, nesmí projet za žádnou cenu! Nebyl čas se rozmýšlet kdo je kdo. Takže vy jste ho ...? No jasně, dvě dávky!
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.