Vzdálený přístup k jinému počítači je velmi důležitá věc, bez které se neobejdeme. Slouží jak ke správě vzdáleného počítače, vzdálené pomoci nebo vzdálénému odstraňování chyb, tak i přímo ke každodenní práci. Někdy může být i použit vzdálený přístup k monitoringu počítače či "šmírování".
Rozeznáváme dva druhy vzdáleného přístupu, "grafický" a "textový".
1. Při "grafickém"" (nebo obrazovém, nevím jak to mám přesně nazvat) vzdáleném přístupu se nám po síti přenášejí nějakým protokolem obrazovka vzdáleného počítače, naše klávesnice a myš, kterými vzdálený počítač ovládáme. Někdy se mohou přenášet i USB zařízení a tiskárny oběma směry, či vzdálený zvuk.

2. Při "textovém"" vzdáleném přístupu vetšinou používáme tzv. terminál. Přenáší se nám naše klávesnice na vzdálený počítač a "textová obrazovka" vzdáleného počítače na náš počítač. Velmi zjednodušeně řečeno.

Vzdálený přístup je v podstatě program, rozdělený na dvě části. Jedna část (server) je na vzdáleném počítači a druhá část (klient) je na našem počítači.
Vzájemná komunikace mezi klientem a serverem je zabezpečena nějakým protokolem (RDP, VNC, ssh, telnet), přenos dat oběma směry se uskutečnuje po síti internet protokolem IPv4 nebo IPv6. footnote:[Pokud nevíte, co to je protokol, podívejte se sem]
Server a klient mohou mít různý operační systém.
Co musím udělat, aby to fungovalo
-
Musí být zabezpečeno síťové spojení mezi klientem (náš počítač, tablet nebo telefon) a serverem (vzdálený počítač). Pokud to z nějakého důvodu nejde, dá se to někdy obejít tak, že použijeme počítač třetí strany (proxy), ke kterému mají přístup jak klient, tak server (Takto třeba funguje TeamViewer nebo AnyDesk).
-
Musíme mít na klientu i serveru nainstalovaný a nakonfigurovaný software, který vzdálený přístup umožnuje.
-
Musím mít na vzdáleném počítači nakonfigurované nějaké uživatele, kterým je povolen vzdálený přístup a musím znát minimálně uživatelské jméno a heslo (někdy je potřeba i něco dalšího, např. při dvoufázovém ověření).
Shrnuto: musím vědět jak se připojit (protokol), potom IP adresu (nebo doménové jméno) stroje, kam se hlásím, uživatele a heslo.
Vzdálený přístup ke strojům se systémem Windows
Remote Desktop Protocol (vzdálená plocha)
Remote desktop protokol se používá jak pro administraci, tak i pro běžnou práci obyčejných uživatelů (třeba účetních nebo obsluhy objednávek). Funguje tak, že pro každého vzdáleně přihlášeného uživatele vytváří jeho vzdálenou obrazovku, klávesnici a myš, a umožňuje třeba přesměrovávat na lokální tiskárnu.
Vzdálená plocha na serveru poslouchá obvykle na TCP portu 3389 a UDP portu 3389. Sám popis RDP protokolu byl částečně zveřejněn Microsoftem.
Podrobné povídání o RDP u Microsoftu v angličtině: Understanding the Remota Desktop Protocol (RDP) (není to moc srozumitelné).
Dále budeme popisovat Windows Server 2019. U neserverových Windows (Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10) je vzdálená plocha omezená, většinou umožňuje jenom přihlásit Administrátora nebo jednoho uživatele současně. U serverů je počet současně přihlášených uživatelů omezen nakoupenými CAL licencemi. Bez licencí jenom Administrátor a 3 uživatelé současně.
Nejprve si nastavíme server. Všechny ukázky jsou z ostrého, zalicencovaného (50 CAL licencí per device) a aktivovaného Windows Server 2019.
Nastavení služby Vzdálená plocha na serveru
Musíme zajistit automatické spouštění služby "Vzdálená plocha" po startu serveru. Dělá se to ze Správy počítače → Služby

Nebo se to dá udělat ze Správce serveru → Přidat Role a funkce

Já celý proces ukázat nemohu, protože na serveru to mám již udělané.
| Toto není všechno. Mikrosoft chce za všechno peníze, takže musíme koupit CAL licence pro každého uživatele, který se bude vzdáleně přihlašovat (stojí asi 500 Kč). Licence se kupují většinou po 50 ks per device, nebo po 10 per user. Na serveru musíme tyto licence zapsat a aktivovat a ještě nastavit licenční server, jinak nám po 90 dnech přestane čerstvě nainstalovaný server přihlašovat vzdálené uživatele. Použité licence se dají za menší peníz koupit u winkey.cz (to není reklama). |
Instalace licencí vzdálené plochy
Po zakoupení CAL licencí od Microsoftu nebo odjinud je musíme nainstalovat. Spustíme si průvodle licencováním vzdálené plochy. Dělá se to opět pomocí Správce Serveru → Nástroje → Správce licencování vzdálené plochy.
Celý postup je takový, že obdržíme po zakoupení licencí klíč, který vypadá nějak takto: K95QT-MYPK4-HKVPD-P4JBY-K79VQ (není to ostrý klíč), který je potřeba pomocí Správce licencování zadat a zaktivovat.
Potom je třeba ještě spustit licenční server.
Pokud všechno dopadne dobře, tak máme server zalicencovaný. Můžeme se o tom přesvědčit pomocí Diagnostiky licencování vzdálené plochy

Z obrázku je vidět, že mám nakoupeno padesát CAL licencí Per Device (to znamená, že je možné se přihlásit z 50 různých zařízení), 16 licencí je vyčerpáno a ještě 34 volných licencí je k dispozici. [1] [2]
Celé licencování se nemusí dělat hned po instalaci serveru, ale je možné ho udělat během 90 dní. Po tuto dobu bude vzdálená ploch fungovat bez licencí.
Konkrétně ukázat to nemohu, protože to mám hotové a určitě by se mi to rozbilo, kdybych to dělal znovu. Omlouvám se.
Řešení problému s licencováním vzdálené plochy, na který jsem narazil
Narazil jsem na problém, že licencování vzdálené plochy nechtělo chodit, přestože jsem měl licence řádně zakoupené, nastavené a zaktivované pomocí průvodce. Problémy byly dva.
-
špatná hodnota v registru
-
server nemohl najít licenční server
Je-li zapnuto licencování musí být v registru hodnoty:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\
PerUser šestnáctkově 4 nebo PerDevice šestnáctkově 2
Já jsem tam měl od průvodce nastavenou hodnotu 5.

[3]. Editor registru je nebezpečná hračka.
Po opravě to stejně nechtělo chodit, diagnostika licencování hlásila, že nemůže najít licenční server.
Takto jsem to opravil:
gpedit.msc
Konfigurace počítače → Šablony pro správu → Součásti systému Windows → Služba Vzdálená plocha → Hostitel relací vzdálené plochy → Správa licencí → Použít určené licenční severy služba Vzdálená plocha: Povoleno Používané licenční servery "127.0.0.1" a ještě Nastavit licenční režim Vzdálená plocha: Povoleno Podle zařízení
Tučně napsané byl hlavní problém, pole Používané licenční servery nebylo vyplněno.



Přidání uživatele vzdálené plochy
Dále musíme přidal uživatele, kteří se mohou vzdáleně připojit a zařadit je do skupiny "Remote Desktop Users"
Jednoduchý a rychlý postup z příkazové řádky (spustíme cmd.exe jako Administrator)
net user uzivatel1 dlouheheslo. /add /active:yes (1)
net localgroup "Remote Desktop Users" uzivatel1 /add (2)
| 1 | Přidám lokálního uživatele, nastavím mu heslo a řeknu, že je aktivní |
| 2 | Nově vytvořeného uživatele přidám do skupiny "Remote Desktop Users" |
net user admin dlouhehesloneniveslo. /add /active:yes (1)
net localgroup "Remote Desktop Users" admin /add (2)
net localgroup "Administrators" admin /add (3)
| 1 | Přidám lokálního uživatele, nastavím mu heslo a řeknu, že je aktivní |
| 2 | Nově vytvořeného uživatele přidám do skupiny "Remote Desktop Users" |
| 3 | Udělám z admina skutečného Administrátora tak, že ho přidám do skupiny "Administrators" |
Zdlouhavý a složitý postup klikáním myší
Obrázkový postup je šílenost:





To není všechno, musíme nově přidaného uživatele zařadit do skupiny "Remote Desktop Users"







A teď se jdeme vyvětrat, protože to byl nadlidský výkon, už nikdy více. Naštěstí máme s uživatelem hotovo.
Tady krásně vidíte, že příkazový řádek je velmi dobrý nástroj.
net user cernak.jiri hesloneniveslo /add /active:yes
net user hlavackova.eliska hesloneniveslo /add /active:yes
net user hrzan.ondrej hesloneniveslo /add /active:yes
net user chudy.marek hesloneniveslo /add /active:yes
net user jakoubek.david hesloneniveslo /add /active:yes
net user jezek.jan hesloneniveslo /add /active:yes
net user jilek.petr hesloneniveslo /add /active:yes
net user john.tomas hesloneniveslo /add /active:yes
net user kaplan.martin hesloneniveslo /add /active:yes
net user kouba.dalimil hesloneniveslo /add /active:yes
net user martinkova.nela hesloneniveslo /add /active:yes
net user nyvltova.michaela hesloneniveslo /add /active:yes
net user plocek.martin hesloneniveslo /add /active:yes
net user pospisil.jan hesloneniveslo /add /active:yes
net user potockova.nikola hesloneniveslo /add /active:yes
net user solawa.kordian.adam hesloneniveslo /add /active:yes
net user suchanek.adam hesloneniveslo /add /active:yes
net user sabata.jan hesloneniveslo /add /active:yes
net user sebesta.jakub hesloneniveslo /add /active:yes
net user subrt.stepan hesloneniveslo /add /active:yes
net user tran.nam.pham hesloneniveslo /add /active:yes
net localgroup "Remote Desktop Users" cernak.jiri /add
net localgroup "Remote Desktop Users" hlavackova.eliska /add
net localgroup "Remote Desktop Users" hrzan.ondrej /add
net localgroup "Remote Desktop Users" chudy.marek /add
net localgroup "Remote Desktop Users" jakoubek.david /add
net localgroup "Remote Desktop Users" jezek.jan /add
net localgroup "Remote Desktop Users" jilek.petr /add
net localgroup "Remote Desktop Users" john.tomas /add
net localgroup "Remote Desktop Users" kaplan.martin /add
net localgroup "Remote Desktop Users" kouba.dalimil /add
net localgroup "Remote Desktop Users" martinkova.nela /add
net localgroup "Remote Desktop Users" nyvltova.michaela /add
net localgroup "Remote Desktop Users" plocek.martin /add
net localgroup "Remote Desktop Users" pospisil.jan /add
net localgroup "Remote Desktop Users" potockova.nikola /add
net localgroup "Remote Desktop Users" solawa.kordian.adam /add
net localgroup "Remote Desktop Users" suchanek.adam /add
net localgroup "Remote Desktop Users" sabata.jan /add
net localgroup "Remote Desktop Users" sebesta.jakub /add
net localgroup "Remote Desktop Users" subrt.stepan /add
net localgroup "Remote Desktop Users" tran.nam.pham /add
Server máme hotov. Jdeme ukázat, jak se to používá na klientovi.
Pokud by nám nechtělo vzdálené připojení z klientů fungovat, je potřeba zkontrolovat, zda jsou povolená příchozí spojení na TCP port 3398 ve firewallu.
Připojení klienta
Windows klient pro vzdálenou plochu se jmenuje mstsc.exe. Dá se spustit přímo, nebo můžeme použít hledání a napsat "Vzdálená plocha" a spustit.
V úvodním přihlašovacím dialogu vyplníme do políčka Počítač IP adresu nebo jméno hosta, rozlikneme možnosti a vyplníme uživatele.



Problém je ten, že certifikát, který je nastaven na serveru neověřila žádná důvěryhodná certifikační autorita. Neznamená to, že by spojení se serverem bylo nešifrované. Klidně můžeme zaškrtnout Tento dotaz na připojení k tomuto počítači nezobrazovat a stisknout tlačítko Ano. [6]
Pokud nám někdo nepřestřihnul ethernetový drát (nebo wifi bezdrát), tak jsme vzdáleně na serveru.

Připojení z Linuxu na Windows Server
Tady je to hodně jednoduché, nainstalujeme si třeba freerdp
sudo apt install freerdp2-x11
Načítají se seznamy balíků… Hotovo
Vytváří se strom závislostí
Načítají se stavové informace… Hotovo
freerdp2-x11 je již nejnovější verze (2.2.0+dfsg1-0ubuntu0.20.04.4). (1)
Následující balíky byly nainstalovány automaticky a již nejsou potřeba:
linux-headers-5.4.0-156 linux-headers-5.4.0-156-generic linux-image-5.4.0-156-generic linux-modules-5.4.0-156-generic linux-modules-extra-5.4.0-156-generic
Pro jejich odstranění použijte „sudo apt autoremove“.
0 aktualizováno, 0 nově instalováno, 0 k odstranění a 33 neaktualizováno.
| 1 | Již to mám dávno nainstalované, tak se nic nebude dít. |
Freerdp je aplikace s otevřeným zdrojovým kódem a je portována na různé další platformy (OpenBSD, FreeBSD, MacOS, Android apod.)
Připojení na Windows lze zrelizovat přímo z příkazové řádky, ale lepší je si udělat jednoduchý skriptík a zařadit si ho do /home/uzivatel/bin
#!/bin/bash
xfreerdp /u:jirka /v:192.168.120.197 /p:hesloneniveslo. /w:1600 /h:1200 /cert-ignore (1)
| 1 | /u: je uživatel; /v: je jméno hosta nebo IP adresa; /p: heslo; /w:1600 znamená šířka obrazovky /h:1200 je výška obrazovky; /cert-ignore je důležité kvůli nepodepsanému certifikátu (pokud tuto volbu nemáte, tak to při každém připojení prudí) |
jirka@jirka-Precision-T3610:~/myblack$ wsrva.sh (1)
[23:47:33:291] [195852:195853] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state (2)
[23:47:33:291] [195852:195853] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[23:47:33:291] [195852:195853] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[23:47:33:291] [195852:195853] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[23:47:33:624] [195852:195853] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[23:47:33:627] [195852:195853] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[23:47:33:627] [195852:195853] [INFO][com.freerdp.core] - freerdp_tcp_connect:freerdp_set_last_error_ex resetting error state
[23:47:35:948] [195852:195853] [INFO][com.freerdp.gdi] - Local framebuffer format PIXEL_FORMAT_BGRX32
[23:47:35:948] [195852:195853] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[23:47:35:998] [195852:195853] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[23:47:35:999] [195852:195853] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[23:47:35:392] [195852:195853] [INFO][com.freerdp.core] - rdp_set_error_info:freerdp_set_last_error_ex resetting error state
| 1 | Spuštení skriptu |
| 2 | Toto už jsou jenom hlášení o připojení |

Poznámka na konec: Je rozdíl mezi odpojením a odhlášením. Odpojení se dělá křížkem, odhlášení z menu Start. Odpojení jenom přeruší spojení se serverem, všechna práce zůstane rozdělána a je možné později pokračovat (pokud mezitím někdo nerestartuje server). Odhlášení ukončí veškerou rozdělanou práci a odhlásí uživatele. Většinou to bývá tak, že se každý jednotlivý uživatel může vzdáleně přihlásit jenom jednou. Přihlásí-li se stejný uživatel podruhé, první spojení zamrzne a chcípne.

Úkol na dnešní hodinu.
Dostali jste papírek s vaším uživatelským jménem a heslem. IP adresu Windows Serveru napíšu na tabuli.
Připojíte se a budeme testovat, co server vydrží. Zaplácneme dvě mouchy jednou ránou.
Vy se něco prakticky naučíte a já zjistím, zda se server při velkém náporu zřítí, nebo to ustojí. Mám totiž pocit, že není úplně v kondici.
Aktualizace: Trapas s tím, že jsem se nemohl dostat na konzoli Windows Serveru a zjistit jakou má IP adresu spočíval v tom, že jsem zapomenul vypnout startování síťového rozhraní enp7s0. Takto to prostě na Gentoo Linuxu fungovat nemůže. Na hypervisoru (fyzický počítač, nosič virtuálních strojů) musí být aktivní pouze bridge br0 a potom virtuální stroj dostane od DHCP korektně IP adresu. 10 minut po vašem odchodu ze třídy jsem to opravit. Tady se v praxi projevil jeden nepříjemný Murphyho zákon: Předvádíte-li zákazníkovi vlastní software, určitě vyskočí chyba. Vyskočila. [7]
IP adresa Windows Serveru 2019 je 10.1.1.184. (IP adresa hypervisoru Gentoo Linuxu je 10.1.1.15).
Domácí úkol č.1
Zopakovat si instalaci Windows Serveru do virtuálního stroje VMVare Workstation nebo HyperV. Příští hodinu si uděláme praktický test nastavení vzdálené plochy a připojení k ní, jestli nám v tom nezabrání jiný Murphyho zákon ovšem :-)
VNC (Virtual Desktop Computing)
VNC je protokol, který přenáší zobrazení na monitoru ze vzdáleného počítače na lokální a umožňuje sdílet klávesnici a myš vzdáleného počítače.
Funguje velmi dobře při vzdálené správě. Uživatel vzdáleného počítače (pokud u počítače zrovna sedí), tak vidí co admin na jeho počítači dělá, může se s ním i přetahovat o klávesnici a myš.
VNC je v podstatě sdílená obrazovka, klávesnice a myš, na rozdíl od RDP, které vytváří pro každé jednotlivé sezení (session) virtuální obrazovku, klávesnici a myš.
Na vzdálený počítač se admin nemusí nijak "přihlašovat", avšak vzdálené přihlášení pro autorizované adminy je možné zabezpečit různým způsobem, nejčasteji heslem.
VNC se často používá i pro správu virtuálních počítačů, které běží na nějaké virtualizační platformě (KVM, Proxmox, apod.) a žádný fyzický monitor nemají.
VNC standardně poslouchá na TCP portech 5900 až 5906. Samotná komunikace mezi serverem a klientem většinou zabezpečená nebývá, proto je vhodné VNC používat pro lokální sítě nebo přes zabezpečený VPN tunel (OpenVPN, wireguard apod.).
VNC je platformově nezávislé, lze propojovat stroje s nejrůznější architekturou a operačním systémem.
TeamViewer
Tohle používám velmi vyjmečně, jenom když není zbytí. Ale je to poměrně populární a rošířená aplikace. Na rovinu řeknu, že to nemám rád, protože nevím pořádně, jak to funguje a jaká data to sbírá a kam je posílá. Navíc to chce běžet pořád jako služba a poměrně dost to zatěžuje počítač.
TeamViewer funguje na Windows, MacOS, Linuxu, ChromeOS, Raspberry Pi, Androidu a iOS.

Asi nejjednodušší způsob použití je stáhnout si TeamViewer QuickSupport a spustit ho. Pro Windows se program jmenuje TeamViewerQS.exe pro Linux teamviewer_sq.tar.gz (tohle je archiv, který je nutno rozbalit a spustit program teamviewer)
Žádám o pomoc z Linuxu kolegovi, co má Windows
Linux

Spouštím teamviewer.

Musím zatelefonovat kolegovi a říct mu ID 926 852 366 a heslo: gw8mhjfg

Windows
Kolega spouští TeamViewerQS.exe a přijímá licenční podmínky,

potom zadává ID 926 852 366, které jsem mu řekl. Nemůže se ke mně připojit.

Nefunguje to. Konec příběhu.
Zkusíme to obráceně, spojíme se z Linuxu na Windows, nepoužiji však na Linuxu Quick Support verzi, ale plnou verzi, kterou mám nainstalovanou zdřívějška.
Z Linuxu na Windows 10
Budu pracovat v terminálu (TeamViewer jde naklikat z menu, ale služba teamviewerd ne, protože ji mám standardně vypnutou)
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ service teamviewerd start (1)
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ teamviewer (2)
Init... (3)
CheckCPU: SSE2 support: yes
Checking setup...
Launching TeamViewer ...
Launching TeamViewer GUI ...
| 1 | Spuštění služby příkazem service |
| 2 | Spuštení plné verze TeamViewer frontendu |
| 3 | Jeho hlášky |



Tady se to podařilo.
Řešil jsem kdysi problém s nějakou paní a jejím poštovním klientem, nechtělo jí to číst zprávy, které byly na mém poštovním serveru. Přihlásil jsem se, ale po minutě mě to vykoplo, že nemám licenci, či co (hoši od TeamVieweru nejsou tak bezplatní, jak se tváří. No nečím se musí živit). Tak volám zpětně paní a ta mi řekla, že s tím měla dříve také problémy.
Nakonec jsme to vyřešili pomocí AnyDesk, který funguje lépe.
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ teamviewer
Init...
CheckCPU: SSE2 support: yes
Checking setup...
Launching TeamViewer ...
Launching TeamViewer GUI ...
Neoprávněný přístup do paměti (SIGSEGV) (core dumped [obraz paměti uložen]) (1)
jirka@jirka-Precision-T3610:~/vyuka_sspvc$
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ service teamviewerd stop (2)
| 1 | Tady to sebou řízlo natvrdo, neoprávněný přístup do paměti, to je fatální chyba. |
| 2 | Raději to uklidím, vůbec nevím, co ta služba provádí. Vypínám službu. |
Vzdálený přístup ke strojům Linux, OpenBSD a jiným unixům
Přečtěte si o Secure Shellu a OpenSSH - konfigurace, přístup a zabezpečení, to je hlavní nástroj na vzdálený přístup.
Se secure shellem se dají dělat velká kouzla.
Vzdálený přístup k virtualizačním platformám
Virtualizační platformy jsou softwarové nástroje, které nám umožnují na jednom fyzickém hardwaru provozovat několik virtuálních počítačů. Virtualizační platforma (hypervisor) emuluje pro virtuální stroj (guest) hardware.
Nejznámější virtualizační platformy jsou:
-
KVM
-
HyperV
-
VmWare (Player, Workstation, vSphere a ESXi)
-
VirtualBox
KVM je zkratka z Kernel-based Virtual Machine přeloženo doslova je to virtuální stroj založený na jádře je virtualizační jaderný modul pro linuxové jádro, který jádru umožňuje fungovat jako hypervizor. Součástí oficiálního jádra je od verze 2.6.20, která vyšla v únoru 2007. Původně vznikl pro architekturu x86, ale byl později portován na System/390, PowerPC, IA-64 a ARM. Kromě toho byl také portován na jádra operačních systémů FreeBSD a illumos.
Vývoj původně probíhal v izraelské společnosti Qumranet, kterou v roce 2008 zakoupila americká společnost Red Hat.
Jedná se o svobodný software částečně pod licencí GNU GPL a částečně pod licencí GNU LGPL. Naprogramovaný je v jazyce C.
KVM budeme používat na hraní s Linuxem, abychom nemuseli dělat velké úpravy na školních PC. Budeme používat jednoduchou konfiguraci, bez grafických nadstaveb.
K tomu, abychom mohli přistupovat k virtuálnímu stroji, jako bychom ho měli před sebou, nám poslouží spice protokol anebo VNC.
KVM a spice protokol
Pro Windows se používá virt-viewer-x64, v době psaní dokumentu verze 11 virt-viewer-x64-11.0-1.0.msi
Komunikaci pomocí spice protokolu je vhodné zabezpečit nějakou VPN, třeba Wireguardem.
Na Linuxu (Debian a deriváty) se klient instaluje takto:
$ sudo apt install virt-viewer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_commands="zaloha zalstop"
NAME="win2019"
CISLO="00"
WINIMG="/home/vm/iso/SW_DVD9_Win_Server_STD_CORE_2019_1809.9_64Bit_Czech_DC_STD_MLF_X22-44999.ISO"
VIRTIMG="/home/vm/iso/virtio-win-0.1.217.iso"
VIRTDISK="/home/vm/win2019/win2019.qcow2"
ZALDISK="/mnt/backup/vm"
ZALOHA="${ZALDISK}/win2019/win2019.qcow2"
pidfile="/run/kvm-${NAME}.pid"
MEMORY=32000
CORES=4
PORT=59${CISLO} (1)
MAC="00:25:2d:36:e6:${CISLO}"
NETDEV="mp${CISLO}"
BR="br0"
TAP="tap${CISLO}"
CHANNEL=${CISLO}
SECRET="/etc/qemu/spice_secrets" (2)
depend() {
use logger clock hostname net
}
start() {
ebegin "Starting ${SVCNAME}"
mkdir -p /run/kvm-${NAME}
qemu-system-x86_64 --enable-kvm \
-name ${NAME} \
-drive driver=qcow2,file=${VIRTDISK},if=virtio \
-m ${MEMORY} \
-device virtio-net,netdev=${NETDEV},mac=${MAC} \
-netdev tap,id=${NETDEV},ifname=${TAP},br=${BR} \
-cdrom ${WINIMG} \
-drive file=${VIRTIMG},index=3,media=cdrom \
-rtc base=localtime,clock=host \
-smp cores=${CORES} \
-object secret,id=spice_sec,file=${SECRET} \
-vga qxl -device virtio-serial-pci -spice port=${PORT},ipv4=off,ipv6=on,password-secret=spice_sec \
-device virtserialport,chardev=spicechannel$CISLO,name=com.redhat.spice.1 -chardev spicevmc,id=spicechannel$CISLO,name=vdagent \
-monitor unix:/run/kvm-${NAME}/monitor,server,nowait \
-object rng-random,id=rng0,filename=/dev/urandom -device virtio-rng-pci,rng=rng0 \
-daemonize \
-pidfile ${pidfile}
eend $?
}
| 1 | Zde nastavuji TCP port, kde bude poslouchat spice protokol, v našem případě default 5900. |
| 2 | V tomto souboru /etc/qemu/spice_secrets je ukryto přihlašovací heslo. |
Na zvýrazněném řádku je nastavení virtuální VGA karty (spice protokol).
Ukázka přihlášení na vzdálený hypervisor pomocí virt-viewer

IP adresa se zadává ta, kterou má hypervisor (neboli železo), nikoliv ta, kterou má virtuální stroj. Pokud je na hypervisoru více virtuálních strojů, potom musí mít každý přiřezen svůj vlastní TCP port.


| Zadání Ctrl+Alt+Del se musí zadat pomocí zobrazeného menu nebo kombinací Ctrl+Alt+End, jinak neodemknete obrazovku vzdáleného serveru, ale restartujete svůj počítač. |

KVM a VNC protokol
SPráva KVM pomocí VNC protokolu je v podstatě stejná, jako u spice protokolu. Jenom se v konfiguraci virtuálního stroje vymění řádky
-vga qxl -device virtio-serial-pci -spice port=${PORT},ipv4=off,ipv6=on,password-secret=spice_sec \
-device virtserialport,chardev=spicechannel$CISLO,name=com.redhat.spice.1 -chardev spicevmc,id=spicechannel$CISLO,name=vdagent \
na:
-vnc 192.168.2.16:1 -k en-us
Tato ukázka je nezabezpečená, je potřeba ji zabezpečit pomocí VPN. VNC protokol na KVM lze zapezpečit ješte pomocí certifikátů, ale je to zbytečně složité a nikdy jsem to nedělal.
Jako klienta můžeme použít libovolného VNC klienta, viz výše.
Proxmox
Proxmox je komerční opensource virtualizace založená na KVM. Proxmox používá k přístupu k virtualizovaným strojům standardní internetový prohlížeč. Nic není třeba instalovat a nastavovat. Ukázka nebude, protože jsem Proxmox přestal používat, kvůli některým dost závažným chybám a kvůli tomu, že některé důležité vlastnosti jsou dost placené.
Vmware ESXi
Vmware je komerční virtualizační platforma založená na upraveném (realtimovém) jádru Linuxu a vlastní Linuxové distribuci se zavřeným filesystémem. Je to velmi spolehlivé řešení, ale za poměrně velké peníze. Kdysi byly k dispozici některé produkty Vmware zdarma (např. Vmware ESXi server), ale už nejsou. Pro vzdálený přístup stačí celkem libovolný internetový prohlížeč. Ukázka nebude, nemám již nic běžícího k dispozici.

