Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 2 - SSH - Instalace a nastavení serveru

V minulé lekci, SSH - Konfigurace a připojení, jsme si představili protokol SSH, používané klienty pro různé operační systémy a také prošli základní možnosti nastavení.

Dnes se podíváme na to, jak server vytvořit a nastavit.

Instalace

Mac

Pro Mac zde jen umístím tento tutoriál. Nemám jak to vyzkoušet, ale princip by měl být podobný jako pro Linux.

Linux

Pro Linux existuje několik řešení, ale zdaleka nejpoužívanější je OpenSSH. Pro jeho instalaci stačí zadat příkaz:

$ sudo apt-get install openssh-server

případně pro Fedoru:

$ sudo yum install openssh-server

Windows

Zde opět najdeme několik alternativ SSH serverů např. freeSSHd.

Aby jste ale neřekli, že jsem Vás odbyl pár programy, přidávám zde ještě odkaz na srovnání různých SSH serverů například i podle systémů, které podporují. ;-)

My si vyzkoušíme freeSSHd. Po stáhnutí a spuštění budete provedení krátkou instalací. zde bych podotknul, že je lepší neinstalovat to jako systémovou službu - je s tím více problémů než užitku. Po instalaci je třeba spustit freeSSHd (doporučuji s Admin právy - bez nich se mi neukládala konfigurace - to by šlo určitě řešit, ale jen jsem to vyzkoušel). Objeví se ikonka v systray. Pravé kliknutí na ni vyvolá jednoduchou nabídku - pomocí Unload můžeme program úplně vypnout.. Další možnost je vstoupit do nastavení.

Konfigurace

Linux a Mac

Hlavní úpravy konfigurace serveru na Linuxu a Macu se provádějí v souboru /etc/ssh/sshd_c­onfig. Konfigurace je ještě více než u klienta, popíšu opět jen základní možnosti.

Port 222

Změní port, na kterém server naslouchá - klienti jej musí znát a specifikovat, pokud je jiný než 22.

ListenAddress 192.168.1.2
ListenAddress 192.168.1.3

Definuje, ze kterých interfaců (v zásadě ze kterých síťových portů) je možné se přihlásit. Pokud má náš server například 4 porty (přičemž každým může být připojen do jiné sítě) a my chceme, aby se dalo přihlásit pomocí SSH jen z určité části sítě, přidáme toto do konfigurace.

ListenAddress 0.0.0.0

Výchozí je, že SSH naslouchá na všech interfacech. Takhle nějak by to vypadalo zapsané..

PermitRootLogin no

Zakazuje/povoluje přihlášení roota. Defaultně vypnuté, není důvod proč zapínat, když máme sudo. Je možné specifikovat volbu without-password. Pak se bude možně přihlásit na roota pouze jinými metodami než heslem.

PasswordAuthentication on

Zakáže/povolí autentifikaci heslem. Doporučeno vypnout a přihlašovat se jinými metodami - například klíčem. To ovšem není vždy možné a proto se i nadále často používá autentifikace heslem. Pokud je zapnutá, uživatelé musí zadat při přihlášení heslo, které je nastaveno u jejich účtu - jako by se přihlašovali k PC lokálně.

AllowTcpForwarding no

Zakáže/povolí TCP tunelování přes SSH. O Tunelování si povíme více v další části článku. Pokud tunelování nepoužíváte, doporučuji vypnout.

X11Forwarding no

Zakáže/povolí tunelování X serveru. Opět pokud nepoužíváte, vypnout.

GatewayPorts no

Povoluje vzdálený port forwarding, pokud nepoužíváte, vypnout.

AllowUsers bob alice franta

Povolí uvedeným uživatelům přístup k SSH. Pokud není volba uvedena, mohou se přihlásit všichni.

DenyUsers mallroy

Zakáže uživatelům přístup k SSH.

MaxStartups 2:30:10

Specifikuje 3 údaje (start:rate:full). Pokud se na server připojuje více než start připojení, každé nové připojení bude odmítnuto s pravděpodobností rate. Pravděpodobnost narůstá lineárně až do full, kdy se všechny nová připojení začnou odmítat.

LoginGraceTime 30

Doba v sekundách, za kterou server odpojí klienta, který se po připojení úspěšně nepřihlásil.

LogLevel VERBOSE

Nastavuje úroveň logování do souboru /var/log/auth.log. Možnosti jsou (seřazené od nejmíň upovídané po nejvíc) : QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 a DEBUG3.

Banner /etc/issue

Nastavuje zprávu, co se zobrazí klientovi ihned po připojení. Lze takto upozornit někoho na logování systému, a vystrašit tak případné začínající útočníky.

Pro aplikování změn je nutné restartovat SSH server, jinak se změny neprojeví!

Windows

Podíváme se na konfiguraci freeSSHd serveru. Po otevření hlavního okna a tabu SSH, se vám zobrazí následující okno:

SSH
  • Listen - Zvolte interface, na kterém bude SSH server naslouchat
  • Port - Port, na kterém SSH bude naslouchat.
  • Max number of connections - Maximální počet současných připojení
  • Idle timeout - Čas, po kterém je nečinný (nezadává žádné příkazy, neběží program) uživatel odhlášen
  • Banner message - Soubor, jehož obsah se zobrazí po připojení - typicky nějaké upozornění
  • Command Shell - Shell, který bude použit pro uživatele (typicky cmd, ale je možné jej změnit třeba na PowerShell)

Dále zde jsou klíče - například při reinstalaci počítače je dobré je zálohovat a následně znovu načíst (obzvláště pokud jsme známý, používaný server). Pozor! Nikde nezveřejňovat - kdokoliv by se pak za vás mohl vydávat a ukrást údaje.

Po nastavení samotného připojení je třeba vytvořit uživatele, na které se budeme moci přihlašovat. Možností je několik, ale my si zatím vystačíme s ověřením pomocí hesla:

SSH

Po změně nastavení budete možná muset server restartovat (Unload a spustit znovu). Pokud se SSH server nespustí sám, můžete ho spustit ručně:

SSH

Pokud by se objevil error "specified address is already in use", znamená to, že v systému již běží služba, která naslouchá na portu 22 - můžeme buď změnit port a nebo se podívat na otevřené TCP připojení. To můžeme pomocí programu netstat z příkazové řádky.

netstat -anb

Vedle bude napsaný program, který toto připojení využívá. Jeho ukončení problém vyřeší. Pokud jste na Windows 8 nebo novější, je možné, že netstat není nainstalovaný - můžete ho doinstalovat z "Přidat nebo odebrat programy" a "Zapnout nebo vypnout funkce systému Windows" nebo použít nějakou alternativu.

Dnes jsme si ukázali základní nastavení a instalaci SSH serveru. Jestli máte možnost, vyzkoušejte například komunikaci mezi dvěmi PC, na které si nainstaluje a nastavíte SSH servery. Pokud tu možnost nemáte, můžete si vyzkoušet rozchodit SSH spojení mezi vaším OS a virtuálním počítači v něm běžícím. To už není tak jednoduché ;)

V příští lekci, SSH - TCP tunelování, se podíváme na pokročilejší možnosti SSH, jako je například TCP tunelování, lokální port forwarding a SOCKS proxy.


 

Předchozí článek
SSH - Konfigurace a připojení
Všechny články v sekci
SSH
Přeskočit článek
(nedoporučujeme)
SSH - TCP tunelování
Článek pro vás napsal Neaktivní uživatel
Avatar
Uživatelské hodnocení:
57 hlasů
Tento uživatelský účet již není aktivní na základě žádosti jeho majitele.
Aktivity