2. diel - Ssh - Inštalácia a nastavenie servera
Minule sme si urobili menší úvod do SSH a ukázali si, ako sa môžeme pripojiť k serveru. Dnes sa pozrieme na to, ako server vytvoriť a nastaviť.
Inštalácia
Mac
Pre Mac tu len umiestnim tento tutoriál. Nemám ako to vyskúšať, ale princíp by mal byť podobný ako pre Linux.
Linux
Pre Linux existuje niekoľko riešení, ale zďaleka najpoužívanejšie je OpenSSH. Pre jeho inštaláciu stačí zadať príkaz:
$ sudo apt-get install openssh-server
prípadne pre Fedoru:
$ sudo yum install openssh-server
Windows
Tu opäť nájdeme niekoľko alternatív SSH serverov napr. FreeSSHd.
Aby ste ale nepovedali, že som Vás odbil pár programy, pridávam tu ešte odkaz na porovnanie rôznych SSH serverov napríklad aj podľa systémov, ktoré podporujú.
My si vyskúšame freeSSHd. Po stiahnutí a spustení budete prevedení krátku inštalácií. tu by som podotkol, že je lepšie neinštalovať to ako systémovú službu - je s tým viac problémov ako úžitku. Po inštalácii je potrebné spustiť freeSSHd (odporúčam s Admin právami - bez nich sa mi neukladala konfigurácie - to by šlo určite riešiť, ale len som to vyskúšal). Objaví sa ikonka v systray. Pravé kliknutie na ňu vyvolá jednoduchú ponuku - pomocou Unload môžeme program úplne vypnúť .. Ďalšia možnosť je vstúpiť do nastavenia.
Konfigurácia
Linux a Mac
Hlavné úpravy konfigurácie servera na Linuxe a Macu sa vykonávajú v súbore / etc / ssh / sshd_config. Konfigurácia je ešte viac ako u klienta, popíšem opäť len základné možnosti.
Port 222
Zmení port, na ktorom server počúva - klienti ho musí poznať a špecifikovať, ak je iný ako 22.
ListenAddress 192.168.1.2 ListenAddress 192.168.1.3
Definuje, z ktorých interface (v zásade z ktorých sieťových portov) je možné sa prihlásiť. Pokiaľ má náš server napríklad 4 porty (pričom každým môže byť pripojený do inej siete) a my chceme, aby sa dalo prihlásiť pomocou SSH len z určitej časti siete, pridáme toto do konfigurácie.
ListenAddress 0.0.0.0
Predvolené je, že SSH počúva na všetkých interface. Takto nejako by to vyzeralo zapísané ..
PermitRootLogin no
Zakazuje / povoľuje prihlásenie roota. Defaultne vypnuté, nie je dôvod prečo zapínať, keď máme sudo. Je možné špecifikovať voľbu without-password. Potom sa bude možne prihlásiť na roota iba inými metódami, ako heslom.
PasswordAuthentication on
Zakáže / povolia autentifikáciu heslom. Odporúča vypnúť a prihlasovať sa inými metódami - napríklad kľúčom. To však nie je vždy možné a preto sa aj naďalej často používa autentifikácia heslom. Ak je zapnutá, používatelia musia zadať pri prihlásení heslo, ktoré je nastavené u ich účtu - ako by sa prihlasovali k PC lokálne.
AllowTcpForwarding no
Zakáže / povolia TCP tunelovanie cez SSH. O Tunelovanie si povieme viac v ďalšej časti článku. Ak tunelovanie nepoužívate, odporúčam vypnúť.
X11Forwarding no
Zakáže / povolia tunelovanie X servera. Opäť ak nepoužívate, vypnúť.
GatewayPorts no
Povoľuje vzdialený port forwarding, ak nepoužívate, vypnúť.
AllowUsers bob alice franta
Povolí uvedeným užívateľom prístup k SSH. Ak nie je voľba uvedená, môžu sa prihlásiť všetci.
DenyUsers mallroy
Zakáže používateľom prístup k SSH.
MaxStartups 2:30:10
Špecifikuje 3 údaje (štart: rate: full). Ak sa na server pripája viac ako štart pripojenie, každé nové pripojenie bude zviazané s pravdepodobnosťou rate. Pravdepodobnosť narastá lineárne až do full, kedy sa všetky nové pripojenia začnú odmietať.
LoginGraceTime 30
Doba v sekundách, za ktorú server odpojí klienta, ktorý sa po pripojení úspešne neprihlásil.
LogLevel VERBOSE
Nastavuje úroveň logovanie do súboru /var/log/auth.log. Možnosti sú (zoradené od najmenej ukecané po najviac): QUIET, FATAL, ERROR, INFO, Verbos, DEBUG, DEBUG1, DEBUG2 a DEBUG3.
Banner /etc/issue
Nastavuje správu, čo sa zobrazí klientovi ihneď po pripojení. Možno takto upozorniť niekoho na logovanie systému, a vystrašiť tak prípadné začínajúcich útočníkmi.
Pre aplikovanie zmien je potrebné reštartovať SSH server, inak sa zmeny neprejavia!
Windows
Pozrieme sa na konfiguráciu freeSSHd servera. Po otvorení hlavného okna a tabu SSH, sa vám zobrazí nasledujúce okno:
- Listen - Zvoľte interface, na ktorom bude SSH server počúvať
- Port - port, na ktorom SSH bude počúvať.
- Max number of connections - Maximálny počet súčasných pripojení
- Idle timeout - Čas, po ktorom je nečinný (nezadáva žiadne príkazy, nebeží program) užívateľ odhlásený
- Banner message - Súbor, ktorého obsah sa zobrazí po pripojení - typicky nejaké upozornenia
- Command Shell - Shell, ktorý bude použitý pre užívateľov (typicky cmd, ale je možné ho zmeniť napríklad na PowerShell)
Ďalej tu sú kľúče - napríklad pri reinštalácii počítača je dobré ich zálohovať a následne znova načítať (obzvlášť ak sme známy, používaný server). Pozor! Nikde nezverejňovať - ktokoľvek by sa potom za vás mohol vydávať a ukradnúť údaje.
Po nastavení samotného pripojenia je potrebné vytvoriť používateľa, na ktoré sa budeme môcť prihlasovať. Možností je niekoľko, ale my si zatiaľ vystačíme s overením pomocou hesla:
Po zmene nastavení budete možno musieť server reštartovať (Unload a spustiť znova). Ak sa SSH server nespustí sám, môžete ho spustiť manuálne:
Ak by sa objavil error "specified address is already in use", znamená to, že v systéme už beží služba, ktorá počúva na porte 22 - môžeme buď zmeniť port a alebo sa pozrieť na otvorené TCP pripojenie. To môžeme pomocou programu netstat z príkazového riadku.
netstat -anb
Vedľa bude napísaný program, ktorý toto pripojenie využíva. Jeho ukončenie problém vyrieši. Ak ste na Windows 8 alebo novší, je možné, že netstat nie je nainštalovaný - môžete ho doinštalovať z "Pridať alebo odstrániť programy" a "Zapnúť alebo vypnúť súčasti systému Windows" alebo použiť nejakú alternatívu.
Dnes sme si ukázali základné nastavenie a inštaláciu SSH servera. Ak máte možnosť, vyskúšajte napríklad komunikáciu medzi dvoma PC, na ktoré si nainštaluje a nastavíte SSH servery. Ak tú možnosť nemáte, môžete si vyskúšať rozchodiť SSH spojenie medzi vaším OS a virtuálnom počítači v ňom bežiacom. To už nie je tak jednoduché
Nabudúce sa pozrieme na pokročilé možnosti SSH - tunelovanie TCP, bezpečné kopírovanie súborov, spúšťanie okenných aplikácií zo servera na klientovi. Ukážeme si tiež, ako použiť kľúče pre overovanie používateľov.