Najvýkonnejšie servery Najvýkonnejšie servery
Dlhodobý víťaz
v porovnávacích testoch výkonu
.

Zabezpečenie SSH prihlasovaním

Nápoveda > Cloud Server Linux > Zabezpečenie SSH prihlasovaním

Protokol SSH môže okrem mena a hesla používať k prihlasovaniu RSA/DSA/ECDSA kľúče. Identita užívateša je preukázaná kryptograficky a použitie privátneho kľúča je navyše chránené heslom. Serveru potom svoje meno a heslo neposielate.

Zabezpečenie prihlásenia na server je výnimočne dôležité, pretože pri prolomení prihlásenia bude Váš server kompromitovaný a pravdepodobne zavirovaný, pridaný do botnetu alebo zneužitý k rozosielaniu spamu. Prihlásenie na SSH porte 22 skúšajú roboti na prakticky všetkých IP adresách na internete a dôjde k nemu určite aj na Vašom servery. Dokážete si potom predstavit, aké následky bude mať použitie slabého hesla.

Ak chcete o principu fungovania prihlásenia z kľúčmi viac, prečítajte si článok na portále Interval.cz a zejména odstavec Ako SSH autentizuje uživateľov.

SSH

Vygenerovanie kľúčov

    1. Pred bezpečným pripojením na server je nutné si vygenerovať dvojicu kľúčov: ssh-keygen -t ecdsa
    2. Použili sme moderný ECDSA algoritmus, ktorý používa kratší kľúč, ako RSA. Algoritmus ECDSA je v OpenSSH už dlho podporovaný.
    3. Po vygenerování páru kľúčov (ktoré sú uložené vo Vašej domovskej složke a podložke .ssh) je potreba verejný (iba veřejný) kľúč skopírovať na cieľový server. K tomu využijeme nástroj sssh-copy-id, ktorý je súčásťou balíku OpenSSH.
    4. SSH keys

    5. Do terminálu zadajte ssh-copy-id root@adresa-serveru. Pokiaľ sa k serveru pripájate prvý krát, uvidíte hlášku, že je host neznámý (viď ďalší odstavec).
    6. Skopírovanie potvrďte a uvidíte potvrdenie:
      Number of key(s) added: 1
      Now try logging into the machine, with: "ssh 'root@adresa-serveru'"
      and check to make sure that only the key(s) you wanted were added.
    7. Úspěšný import si na servery môžete skontrolovať pohľadom na obsah súboru ~/.ssh/authorized_keys
    8. Váš nový verejný kľúč tu bude uložený.

Pripojenie na server s SSH kľúčom

  • S novým kľúčom sa teraz pripojíte na server: server@server:~$ ssh root@domena.eu
  • Keď sa pripájate prvý krát, uvidíte toto varovanie o neznámom hoste:

    The authenticity of host 'domena .eu (217.198.117.xx)' can't be established.

    ECDSA key fingerprint is 3a:22:8a:22:11:6f:37:b3:66:78:xx:xx:xx:xx:xx:xx.

    Are you sure you want to continue connecting (yes/no)? Yes

    Connection

    Znamená to, že sa na server prihlasujete prvý krát. Zapište si fingerprint a prihláste sa znovu.

    Po potvrdení sa host pridá do zoznamu známých a už by ste toto varovanie nemali vidieť.

    Pokiaľ ho vidíte aj pri druhom prihlásení spolu s chybou nižšie, nepodarilo sa pridanie hostu do zoznamu známych.

    Failed to add the host to the list of known hosts (/home/user/.ssh/known_hosts).

    Enter passphrase for key '/home/user/.ssh/id_ecdsa':

    Potom stačí pripojit sa na ssh s právami roota, teda sudo ssh root@domena.eu

    Problém so zápisom do known_hosts tým bude vyriešený.

    Druhou možnosťou, kedy môžete toto varovanie vidieť, je MITM útok. Je lepšie server pridať do zoznamu známých a nepotvrdzovať pri každom pripojení, že host je neznámi. Pokiaľ sa Vám to stane po pridaní do zoznamu, majte sa na pozore, že sa na servery kľúč zmenil a môžete byť cieľo útoku.

Zakázanie prihlasovania heslom

    Posledným krokom k zabezpečeniu prihlásenia je zakázanie prihlasovania heslom. Dôležité je si najprv zazálohovať dvojicu SSH kľúčů, pretože po ich strate sa na server neprihlásite.

    SSH key

    Skopírujte súbor s nastavením SSH do záložného súboru:

    cd /etc/ssh cp sshd_config sshd_config.orig

    Otvorte konfiguráciu SSH: nano sshd_config. Vo všetkých troch riadkoch zmeňte Yes na No. Položky nie sú v konfigurácii pri sebe, preto ich môžete vyhľadať po stlačení Ctrl+W a napísaní textu.

    PasswordAuthentication yes
    UsePAM yes

    Potom službu reštartujte: service ssh restart. Teraz je prihlásenie SSH kľúčmi zabezpečené.

    Nad rámec tohoto nastavenia môžete ešte zvážiť zakázanie použitia účtu Root (PermitRootLogin nastaviť na no) a poslúchanie SSH protokolu na inom porte (je monžné ľahko zmeiť v konfigurácii sshd_config). Pokiaľ zmeníte SSH port z 22 na iný, musíte ho definovať pri prihlasovaní ako parameter - ssh username@hostname.com -p 50683.