La Dvojfaktorová autentifikácia (2FA) nie je niečo jedinečné, čo sa dá použiť na sociálnych sieťach alebo na akejkoľvek inej webovej stránke. Toto bezpečnostné opatrenie je možné implementovať aj v rámci operačného systému.
To je dôvod, prečo Dnes uvidíme, ako implementovať dvojfaktorovú autentizáciu v SSH v Ubuntu a deriváty pomocou známeho aplikácie Google Authenticator, čo výrazne zvýši bezpečnosť vášho servera OpenSSH.
Za normálnych okolností stačí na diaľkové prihlásenie do systému zadať heslo alebo použiť kľúč SSH.
Dvojfaktorová autentifikácia (2FA) vyžaduje na prihlásenie dve informácie.
Preto budete tiež musieť zadať časovo obmedzené jednorazové heslo, aby ste sa mohli prihlásiť na svoj server SSH.
Toto jednorazové heslo sa počíta pomocou algoritmu TOTP, ktorý je štandardom IETF.
Inštalácia a konfigurácia aplikácie Google Authenticator v systéme Ubuntu a derivátoch
Prvým krokom, ktorý urobíme, je inštalácia aplikácie Google Authenticator do nášho systému, takže v systéme otvoríme terminál (to je možné pomocou kombinácie klávesov „Ctrl + Alt + T) a do neho napíšeme nasledujúci príkaz:
sudo apt install libpam-google-authenticator
Inštalácia je hotová ideme spustiť novo nainštalovanú aplikáciu s nasledujúcim príkazom:
google-authenticator
Pri vykonávaní tohto príkazu je potrebné prideliť tajný kľúč, ktorý sa nás opýta, či chceme použiť tokeny založené na čase, na čo odpovieme áno.
Po tomto, uvidia QR kód, ktorý môžu naskenovať pomocou aplikácie TOTP v telefóne.
Tu Odporúčame používať aplikáciu Google Authenticator na svojom mobilnom telefóne.takže si môžete aplikáciu nainštalovať cez Google Play alebo Apple App Store do svojho mobilného telefónu.
Aplikáciu, ktorú už máte v telefóne, musíte naskenovať pomocou nej QR kód. Majte na pamäti, že musíte zväčšiť okno terminálu a naskenovať celý QR kód.
QR kód predstavuje tajný kľúč, ktoré pozná iba server SSH a aplikácia Google Authenticator.
Po naskenovaní QR kódu uvidia vo svojom telefóne jedinečný šesťmiestny token. Predvolene tento token trvá 30 sekúnd a je potrebné ho zadať, aby ste sa mohli prihlásiť do Ubuntu cez SSH.
V termináli uvidíte aj tajný kód, verifikačný kód a kód núdzového spustenia.
Z tohto dôvodu vám odporúčame tieto informácie uschovať na bezpečnom mieste pre neskoršie použitie. Z ďalších otázok, ktoré sa nás pýtajú, jednoducho odpovieme áno napísaním písmena y.
Nastavuje sa SSH na použitie s Google Authenticator
Už rátam s vyššie uvedeným, Teraz urobíme potrebnú konfiguráciu, aby sme mohli používať pripojenie SSH v našom systéme pomocou aplikácie Google Authenticator.
V termináli vIdeme napísať nasledujúci príkaz
sudo nano /etc/ssh/sshd_config
Vo vnútri súboru budeme hľadať nasledujúce riadky a zmeníme ich na „áno“, a to takto:
UsePAM yes ChallengeResponseAuthentication yes
Po vykonaní zmien uložte zmeny vykonané pomocou Ctrl + O a zatvorte súbor pomocou Ctrl + X.
V rovnakom termináli ideme reštartovať SSH s:
sudo systemctl restart ssh
Overenie predvolene vyžaduje, aby na prihlásenie zadali heslo používateľa.
Tak teda upravme súbor pravidiel PAM pre démona SSH.
sudo nano /etc/pam.d/sshd
Na začiatku tohto súboru sa zobrazuje nasledujúci riadok, ktorý umožňuje overenie hesla
ChallengeResponseAuthentication
Čo musíme nastaviť na áno.
Ak chcete povoliť aj jednorazové overenie hesla, pridajte nasledujúce dva riadky.
@include common-auth #One-time password authentication via Google Authenticator auth required pam_google_authenticator.so
Uložte a zatvorte súbor.
Odteraz sa pri každom prihlásení do vášho systému prostredníctvom pripojenia SSH zobrazí výzva na zadanie hesla používateľa a overovacieho kódu (jednorazové heslo vygenerované aplikáciou Google Authenticator).
Dobrý deň, pomerne jednoduchý návod, ale akonáhle urobím všetky kroky, ktoré už nemôžem zadať pomocou ssh, vyhodí mi to nesprávnu chybu hesla, nemôžem ani požiadať o 2FA.
Mám Ubuntu Server 20.04