V tomto tutoriálu vám ukážu nástroje, které vám umožní přístup ke vzdálené ploše na počítačích se systémem CentOS/RHEL. Všechny tyto aplikace fungují v režimu klient-server. Musíte tedy na svém vzdáleném počítači spustit aplikaci na straně serveru a poté se k ní budete moci připojit z celého světa. V tomto referenčním manuálu vám samozřejmě řeknu, jak to bezpečně nakonfigurovat, abyste k vašemu serveru měli přístup pouze vy.
Než začneme, budete potřebovat přístup SSH k vašemu serveru a oprávnění k instalaci softwaru. Budete se muset přihlásit jako uživatel root nebo uživatel s právy sudo. Všechny příkazy budou fungovat na každém serveru CentOS 5/6/7/8. Než začneme, musíte na svůj server nainstalovat desktopové prostředí.
# yum groupinstall 'GNOME Desktop Environment' 'X Window System'
1) VNC
x11vnc – nejjednodušší z těchto tří způsobů získání vzdáleného přístupu. VNC je zkratka pro Virtual Network Computing) je velmi užitečný síťový grafický protokol.
Musíte povolit úložiště EPEL (Extra Packages for Enterprise Linux). Spustit
# yum -y install epel-release
Nyní můžeme nainstalovat x11vnc. Tento příkaz nainstaluje server a vyřeší všechny závislosti:
# yum -y install x11vnc
Poté server ochráníme heslem:
# x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n y
Password written to: /root/.vnc/passwd
!Nepoužívejte jednoduchá hesla!
Nyní jsme připraveni spustit server:
# x11vnc --reopen --forever -rfbauth ~/.vncpasswd &
Můžete zkontrolovat, zda se servery spustily:
# netstat -an | grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN
tcp6 0 0 :::5900 :::* LISTEN
Pokud je v pořádku, zkuste se k němu jednoduše připojit pomocí vncvieweru.
# yum -y install vnc
# vncviewer YOUR_SERVER_IP
To je vše! Nyní máte přístup ke své ploše. Po restartu stačí znovu ssh a udělat to znovu.
x11vnc --reopen --forever -rfbauth ~/.vnc/passwd &
2) Server TigerVNC
TigerVNC – je vysoce výkonná, platformově neutrální implementace VNC
# yum install -y tigervnc-server
Zkopírujeme ukázkovou konfiguraci a upravíme ji:
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
# vi /etc/systemd/system/vncserver@:1.service
Příklad konfigurace:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
Requires=systemd-logind.service
[Service]
Type=oneshot
RemainAfterExit=yes
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l USERNAME -c "/usr/bin/vncserver %i"
ExecStop=/usr/sbin/runuser USERNAME -c '/usr/bin/vncserver -kill %i'
[Install]
WantedBy=multi-user.target
POZNÁMKA:Pokud budete používat stejné nastavení VNC, musíte změnit USERNAME ve výše uvedené konfiguraci. Toto je konfigurace, kterou jsme použili pro tento tutoriál.
Nyní musíme spustit příkaz vncpasswd k nastavení našeho přístupového hesla a/nebo hesla pouze pro prohlížení (heslo, které uživateli umožňuje pouze prohlížet vzdálenou obrazovku):
# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
Nyní povolte službu automatického spuštění a restartujte ji:
$ systemctl enable vncserver@:1.service
$ systemctl restart vncserver@:1.service
Stav služby vnc můžete zkontrolovat zadáním:
$ systemctl status vncserver@:1.service
Pokud vše proběhlo v pořádku, měli byste mít výstup na terminálu podobný tomuto:
$ systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: active (exited) since Wed 2020-09-30 22:04:47 CEST; 7s ago
Process: 3766 ExecStart=/usr/sbin/runuser -l slax -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
Process: 3761 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 3766 (code=exited, status=0/SUCCESS)
Sep 30 22:04:44 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
Sep 30 22:04:47 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
A nakonec se k němu připojte:
# vncviewer YOUR_SERVER_IP
3) XRDP
XRDP je server protokolu vzdálené plochy s otevřeným zdrojovým kódem. Abyste mohli používat XRDP, musíte mít již nainstalovanou službu VNC. Před instalací XRDP byste se tedy měli řídit první nebo druhou možností z tohoto návodu.
Nejprve musíme nainstalovat úložiště EPEL a xrdp server:
# yum -y install epel-release
# yum -y install xrdp
Nyní začněme službu:
# systemctl start xrdp.service
Zkontrolujte, zda běží, a přidejte jej do automatického spuštění.
# netstat -an | grep 3389
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
# systemctl enable xrdp.service
To je vše. Nyní se můžete připojit k serveru z jakéhokoli počítače se systémem Windows.
4) Teamviewer
Teamviewer neexistuje ve standardních repozitářích, takže musíme nainstalovat wget a stáhnout balíček TeamViewer rpm
# yum -y install wget
# wget https://download.teamviewer.com/download/linux/teamviewer.x86_64.rpm
Nainstalujte jej pomocí tohoto příkazu:
# yum install teamviewer.x86_64.rpm
A nastavte si heslo:
# teamviewer passwd YOUR_PASSWORD
ok
# systemctl start teamviewerd.service
Nyní potřebujete pouze získat své ID, abyste se mohli připojit:
# teamviewer –info
TeamViewer ID: 9XXXXXXX7
Zkuste se k němu připojit pomocí tohoto ID a hesla, které jste nastavili dříve:
5) FreeNX
FreeNX je řešení vzdáleného přístupu založené na open source technologiích podnikové třídy od NoMachine. Pokud chcete, aby přesně tento nástroj získal vzdálený přístup, můžete zvážit upgrade na cloudovou verzi.
Nejprve musíme přidat úložiště e EPEL + nux-dextop pro Centos 6:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
Pro Centos 7
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
Nainstalujte server a agenta:
# yum install freenx-server nxagent
Povolit ověřování passdb:
# echo 'ENABLE_PASSDB_AUTHENTICATION="1"' >> /etc/nxserver/node.conf
Nyní musíme vytvořit uživatele pro vzdálený přístup a přiřadit mu heslo:
# /usr/libexec/nx/nxserver --adduser bob
NX> 100 NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
NX> 716 Public key added to: /home/bob/.ssh/authorized_keys2
NX> 1001 Bye.
NX> 999 Bye
#/usr/libexec/nx/nxserver --passwd bob
NX> 100 NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
New password:
Password changed.
NX> 999 Bye
Nyní na váš počítač nainstalujeme klienta epel-repos a opennx:
# yum install opennx
Po spuštění průvodce opennx budete dotázáni na název relace, adresu serveru a port. Nejdůležitější je nastavit klíč. Budete muset zkopírovat klíč ze souboru /etc/nxserver/client.id_dsa.key serveru a vložit jej na kartu Obecné vlastností relace klienta.
Sdílejte prosím své komentáře k tomuto návodu a dejte nám vědět, pokud znáte nějaké další nástroje.