La Dvoufaktorové ověřování (2FA) není něco jedinečného, co lze použít na sociálních médiích nebo na jakémkoli jiném webu. Toto bezpečnostní opatření lze také implementovat v operačním systému.
To je důvod, proč Dnes uvidíme, jak implementovat dvoufaktorové ověřování v SSH v Ubuntu a deriváty využívající známý Google Authenticator, který výrazně zvýší zabezpečení vašeho serveru OpenSSH.
Pro vzdálené přihlášení do systému je obvykle nutné zadat heslo nebo použít klíč SSH.
Dvoufaktorové ověřování (2FA) vyžaduje pro přihlášení dvě informace.
Pro přihlášení k serveru SSH proto budete muset zadat jednorázové heslo založené na čase.
Toto jednorázové heslo se počítá pomocí algoritmu TOTP, což je standard IETF.
Instalace a konfigurace Google Authenticator v Ubuntu a derivátech
Prvním krokem, který provedeme, je instalace aplikace Google Authenticator do našeho systému, takže v systému otevřeme terminál (lze to provést kombinací kláves „Ctrl + Alt + T) a do něj napíšeme následující příkaz:
sudo apt install libpam-google-authenticator
Instalace dokončena Nově nainstalovanou aplikaci spustíme pomocí následujícího příkazu:
google-authenticator
Při provádění tohoto příkazu uděláme přiřazení tajného klíče a ten se nás zeptá, zda chceme použít tokeny na základě času, na který odpovíme ano.
Po tomto, uvidí QR kód, který mohou naskenovat pomocí aplikace TOTP v telefonu.
Zde Doporučujeme používat aplikaci Google Authenticator na svém mobilním telefonu.takže si můžete aplikaci nainstalovat přes Google Play nebo Apple App Store na svůj mobilní telefon.
Již máte aplikaci v telefonu, musíte s ní naskenovat QR kód. Nezapomeňte, že je třeba zvětšit okno terminálu a naskenovat celý QR kód.
QR kód představuje tajný klíč, který je znám pouze jeho serveru SSH a aplikaci Google Authenticator.
Po naskenování QR kódu uvidí na svém telefonu jedinečný šestimístný token. Ve výchozím nastavení tento token trvá 30 sekund a pro přihlášení do Ubuntu přes SSH je nutné jej zadat.
V terminálu uvidíte také tajný kód, ověřovací kód a kód nouzového spuštění.
Z čehož doporučujeme tyto informace uschovat na bezpečném místě pro pozdější použití. Z dalších otázek, které jsme dostali, jednoduše odpovíme ano napsáním písmene y.
Konfigurace SSH pro použití s Google Authenticator
Již počítám s výše uvedeným, Nyní provedeme potřebnou konfiguraci, abychom mohli používat připojení SSH v našem systému pomocí aplikace Google Authenticator.
V terminálu vBudeme psát následující příkaz
sudo nano /etc/ssh/sshd_config
Uvnitř složky budeme hledat následující řádky a změníme je na „ano“, a to následovně:
UsePAM yes ChallengeResponseAuthentication yes
Po provedení změn uložte změny provedené pomocí Ctrl + O a zavřete soubor pomocí Ctrl + X.
Ve stejném terminálu budeme restartovat SSH s:
sudo systemctl restart ssh
Ve výchozím nastavení ověřování vyžaduje, aby pro přihlášení zadali uživatelské heslo.
Za co upravme soubor pravidel PAM pro démona SSH.
sudo nano /etc/pam.d/sshd
Na začátku tohoto souboru vidíte následující řádek, který umožňuje ověřování pomocí hesla
ChallengeResponseAuthentication
Což musíme nastavit na ano.
Chcete-li také povolit jednorázové ověření hesla, přidejte následující dva řádky.
@include common-auth #One-time password authentication via Google Authenticator auth required pam_google_authenticator.so
Uložte a zavřete soubor.
Od této chvíle se při každém přihlášení do vašeho systému prostřednictvím připojení SSH zobrazí výzva k zadání uživatelského hesla a ověřovacího kódu (jednorázové heslo vygenerované aplikací Google Authenticator).
Dobrý den, poměrně jednoduchý návod, ale jakmile provedu všechny kroky, které již nemohu zadat pomocí ssh, hodí mi nesprávnou chybu hesla, nemohu ani požádat o 2FA.
Mám Ubuntu Server 20.04