Ovládanie domáceho servera na diaľku pomocou SSH alebo X11VNC
Ovládanie na diaľku je jedna z najdôležitejších funkcií nášho domáceho servera. Vždy je totiž treba niečo skontrolovať alebo nastaviť, či už z pohodlia domáceho gauča, alebo aj z práce, alebo akéhokoľvek miesta mimo náš domov. K tomu nám najlepšie poslúžia dva najpoužívanejšie programy: SSH na prácu cez príkazový riadok, a X11VNC na ovládanie vzdialenej plochy.
Úvod
Obsah
Ako sme si už povedali v úvode, ovládanie počítača na diaľku je veľmi dôležité, hlavne ak ide o domáci server. Po nastavení všetkých jeho funkcií totiž od neho očakávame, že bude fungovať sám, a uložíme ho na nejaké skryté miesto, aby neprekážal. Občas je však potrebné server skontrolovať, prípadne aktualizovať. Ovládanie na diaľku nám teda umožní pracovať s počítačom, aj keď pri ňom priamo nesedíme, hlavne ak ide o domáci server, ktorý väčšinou nie je vybavený klávesnicou a monitorom (headless).
1. Firewall
Predtým, než sa začneme pripájať, musíme skontrolovať, či máme vo firewall povolené príslušné porty na diaľkové pripájanie. V menu Predvoľby spustíme Firewall, a zadáme príkaz správcu. Doporučujem, aby ste firewall mali vždy zapnutý a povolili len príslušné porty, ktoré budete potrebovať.
Chystáme sa pripájať na diaľku pomocou SSH, ktorý využíva port 22, a X11VNC, ktorý využíva port 5900. Prepneme na kartu „Rules“, a vľavo dole klikneme na „+“, aby sme pridali pravidlo. Máme na výber tri možnosti: Preconfigured, Simple alebo Advanced. Vyberieme si Simple.
Pre SSH vyplníme polia nasledovne:
Name: SSH
Policy: Allow
Direction: Both
Protocol: Both
Port: 22
Klikneme na „Add“. Podobne postupujeme pre X11VNC a port 5900. Firewall teraz treba reštartnúť prepínačom Status do polohy vypnúť a zapnúť.
2. SSH
Pre fanúšikov príkazového riadku je k dispozícii program SSH (Secure Shell Protocol), slúžiaci na bezpečné pripojenie užívateľa na diaľku cez nezabezpečenú sieť.
2.1 Inštalácia
V operačnom systéme Linux Mint je už predinštalovaný SSH klient, my ale potrebujeme aj server. Preto ho musíme nainštalovať príkazom v termináli:
sudo apt-get install openssh-server
2.2 Zoznam užívateľov
Teraz treba v konfiguračnom súbore nastaviť, ktorému užívateľovi (prípadne užívateľom) povolíme prihlasovanie. Musíme teda upraviť konfiguračný súbor sshd_config, ktorý je uložený v adresári /etc/ssh. Predtým si ho však zálohujeme do *.bak súboru:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Teraz si otvoríme program na úpravu textu „xed“ s právami správcu, pomocou príkazu sudo:
sudo xed /etc/ssh/sshd_config
Keď je súbor otvorený, prejdeme úplne na koniec, a stlačíme Enter, čím vytvoríme nový riadok. Do tohto nového riadku napíšeme príkaz AllowUsers nasledovaný zoznamom užívateľov, ktorým chceme povoliť prístup. Užívateľ (alebo užívatelia) musia existovať na počítači, na ktorý sa pripájame (teda na serveri), a musíme poznať ich prihlasovacie heslo. Ak je napríklad naše užívateľské meno jmrkvicka, vložíme nasledovné:
AllowUsers jmrkvicka
Ak chceme umožniť prístup viacerým, vložíme ich za sebou:
AllowUsers jmrkvicka jjanosik amrkvickova
Štandartný port na prípájanie je 22. Na začiatku súboru sshd_config by mal byť tento port uvedený, ak nie je, môžeme vložiť nasledovný riadok:
Port 22
Súbor uložíme a zavrieme okno.
2.3 Reštartovanie služby a pripojenie
Teraz musíme reštartovať SSH službu, aby sa zapísané zmeny znovu načítali do systému:
sudo service ssh restart
Pokiaľ počítač nevypíše žiadne chyby, náš SSH server je pripravený na pripájanie. Prejdeme k inému počítaču v sieti (klient), na ktorom je nainštalovaný Linux, otvoríme terminál a napíšeme príkaz ssh nasledovaný menom užívateľa a IP adresou servera, na ktorý sa pripájame:
ssh user@192.168.0.1
Samozrejme je treba nahradiť user vaším užívateľom a IP adresu aktuálnou platnou IP adresou vášho servera. Následne vložíme heslo užívateľa (heslo, pomocou ktorého sa daný užívateľ prihlasuje na serveri).
2.4 Zariadenia a aplikácie
Ja osobne používam na diaľkové pripájanie iPad. Výborná aplikácia pre iOS aj pre Android je termius. Vľavo v menu vyberieme Hosts, stlačením „+“ pridáme nový počítač (New Host). Vyplníme nasledovné polia:
Alias – názov počítača, na ktorý sa pripájame. Môže byť hocijaký, slúži iba pre ľahké zapamätanie v rámci aplikácie.
Hostname – IP adresa servera, na ktorý sa pripájame
Use SSH – zapneme
Port – 22 (default)
Username – vložíme meno užívateľa
Password – heslo užívateľa
Pri prvom pripojení sa objaví správa, aby sme potvrdili identitu servera. Je to v poriadku, môžeme napísať „yes“ a pokračovať ďalej. Druhý krát by sa nám táto správa nemala objaviť. Ak sa nám však táto správa objaví znovu (pre to isté zariadenie a toho istého užívateľa), je to podozrivé, pretože môže ísť o tzv. Man-in-the-middle attack, preto by sme sa radšej nemali pripájať.
Ako si overíme, že sme sa úspešne pripojili?
Po úspešnom pripojení prejdeme na server a napíšeme v termináli nasledovný príkaz:
who -T
Zobrazí sa nám zoznam pripojených užívateľov aj so zoznamom IP adries. Prvý je väčšinou :0 čo je tzv. lokálny užívateľ.
Ak sa chceme odpojiť, vrátime sa k počítaču (v mojom prípade iPadu), v ktorom sme sa pripájali (klient) a v termináli, kde sme sa pripojili, napíšeme „exit“.
3. X11VNC
X11VNC je populárny server na pripojenie vzdialenej plochy. Použitím vzdialenej plochy sa môžeme pripojiť na náš domáci server a ovládať ho v grafickom prostredí. Na strane klienta môžeme použiť akýkoľvek vnc prehliadač.
3.1 Inštalácia
Program X11VNC môžeme na serveri nainštalovať pomocou Správcu programov (Software Manager), vyhľadáme program X11VNC a net-tools a obidva programy nainštalujeme. Alebo pomocou terminálu:
sudo apt-get update sudo apt-get install x11vnc net-tools
3.2 Vytvorenie hesla
Vytvoríme si skrytý adresár a do neho vložíme súbor s heslom, pomocou ktorého sa budeme prihlasovať na VNC server. Toto pripojenie teda nepotrebuje žiadneho používateľa, iba heslo.
Do terminálu napíšeme nasledovný príkaz:
x11vnc -storepasswd Enter VNC password: ******** Verify password: ******** Write password to /home/$user/.vnc/passwd [y]/n y Password written to> /home/$user/.vnc/passwd
kde položka $user bude nahradená názvom vášho užívateľského mena.
3.3 Spustenie X11VNC servera v termináli
Teraz si môžeme skúsiť spustiť VNC server v termináli a pripojiť sa naň. Napíšeme príkaz:
sudo x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/$user/.vnc/passwd -rfbport 5900 -shared -gui tray
Čo znamenajú jednotlivé položky?
- auth guess – mechanizmus, ktorý zabezpečuje použitie nášho súboru s heslom pre identifikáciu
- forever – akonáhle sa prvé spojenie skončí, server naďalej „počúva“ a umožňuje opätovné pripojenia
- loop – reštartuje x11vnc proces v prípade jeho ukončenia
- noxdamage – znižuje záťaž keď sa obrazovka príliš nemení, a rýchlejšie detekuje iba zmenené oblasti
- repeat/norepeat – umožňuje/zabraňuje opätovnému stláčaniu kláves
- frbauth – prikazuje použitie autentifikačného súboru s heslom uloženým na základe príkazu -storepasswd
- rfbport – určuje, na ktorom porte má server „počúvať“
- shared – umožňuje zdieľanie VNC displeja, tzn. viac užívateľov sa môže pripojiť naraz
- gui tray – zobrazí ikonu v systémovej oblasti
Prejdeme k inému počítaču s OS Linux, ktorý je v tej istej sieti, a spustíme VNC klienta, napr. Remotely, alebo tightvnc viewer. Ako host alebo server uvedieme IP adresu servera, na ktorom beží VNC server a vložíme heslo, ktoré sme uviedli v bode 3.2.
Upozornenie! Pripojenie pomocou VNC klienta je nezabezpečené a nie je šifrované. Je treba ho teda zabezpečiť, napríklad použitím VPN. Treba si tiež pozrieť, či šetrič obrazovky zamyká obrazovku – po jej zamknutí sa už nepripojíte.
3.4 Automatické spustenie po štarte systému
V prípade, že sa vám server reštartuje, alebo ak máte nastavené automatické zapínanie a vypínanie servera na noc, potrebujete aby sa vám X11VNC server spustil po štarte systému. Skúšal som viac možností, no najviac sa mi osvedčila metóda pridania do Programov spúšťaných po štarte.
Spustíme prehliadač súborov ako správca:
sudo caja
Prejdeme do adresára /etc/init a tu vytvoríme nový súbor x11vnc.conf. Do prázdneho súboru vložíme nasledovný obsah:
description "x11vnc" start on runlevel [12345] stop on runlevel [^12345] console log respawn respawn limit 20 5 exec /usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/homenuc/.vnc/passwd -rfbport 5900 -shared -gui tray
Súbor uložíme a zavrieme, a potom naň klikneme pravým tlačidlom a v záložke „Povolenia“ zapneme položku „Spúšťať ako program“. Zavrieme prehliadač caja.
Klikneme na Menu/Predvoľby/Programy spúšťané po štarte, a pridáme nový s nasledujúcimi položkami:
- Meno: x11vnc
- Príkaz: /etc/init/x11vnc.conf
- Oneskorenie: pre istotu dáme 10 sekúnd
Uložíme, a máme hotové. Stačí reštartnúť počítač a skontrolovať, či sa vpravo dole v systémovej oblasti objavila ikona X11 vnc.
Záver
V tomto návode sme si popísali dva spôsoby ovládania počítača na diaľku, jeden pre pokročilých užívateľov, cez príkazový riadok (terminál), a druhý pre menej zdatných užívateľov využívajúci grafické prostredie. Ako som už spomínal, tento druhý spôsob je nezabezpečený a nešifrovaný, preto ho doporučujem na použitie iba v rámci domácej siete. Ak by ste chceli pomocou x11vnc ovládať počítač mimo siete, je treba komunikáciu zabezpečiť napríklad použitím VPN. O tom si ale povieme niekedy nabudúce.
Ak sa vám článok páčil, podporte ho zdieľaním, ďakujem.