V tomto tutoriálu vám ukážeme, jak zabezpečit SSH pomocí dvoufaktorové autentizace na Ubuntu 16.04 LTS. Pro ty z vás, kteří nevěděli, Zabezpečení SSH pomocí dvoufaktorové autentizace pomocí Google Authenticator Dvoufázové ověření (také známé jako dvoufaktorové ověření, zkráceně TFA) je proces zahrnující dvě fáze ověření identity subjektu, který se pokouší získat přístup ke službám v počítači nebo v síti. Toto je zvláštní případ vícefaktorová autentizace, která může zahrnovat pouze jeden ze tří autentizačních faktorů (faktor znalostí, faktor vlastnictví a faktor dědičnosti) pro oba kroky.
Tento článek předpokládá, že máte alespoň základní znalosti Linuxu, víte, jak používat shell, a co je nejdůležitější, hostujete svůj web na vlastním VPS. Instalace je poměrně jednoduchá a předpokládá, že běží v účtu root, pokud ne, možná budete muset přidat 'sudo
‘ k příkazům pro získání oprávnění root. Ukážu vám krok za krokem zabezpečené SSH pomocí dvoufaktorové autentizace na serveru Ubuntu 16.04 (Xenial Xerus).
Předpoklady
- Server s jedním z následujících operačních systémů:Ubuntu 16.04 a jakoukoli jinou distribucí založenou na Debianu, jako je Linux Mint.
- Abyste předešli případným problémům, doporučujeme použít novou instalaci operačního systému.
- Přístup SSH k serveru (nebo stačí otevřít Terminál, pokud jste na počítači).
non-root sudo user
nebo přístup kroot user
. Doporučujeme jednat jakonon-root sudo user
, protože však můžete poškodit svůj systém, pokud nebudete při jednání jako root opatrní.
Zabezpečte SSH pomocí dvoufaktorové autentizace na Ubuntu 16.04 LTS
Krok 1. Nejprve se ujistěte, že všechny vaše systémové balíčky jsou aktuální spuštěním následujícího apt-get
příkazy v terminálu.
sudo apt-get update sudo apt-get upgrade
Krok 2. Instalace aplikace Google Authenticator.
Pro instalaci balíčku na Ubuntu spusťte následující příkaz:
apt-get install libpam-google-authenticator
Dalším krokem je získání ověřovacího kódu. Je to velmi jednoduchý příkaz, jak získat ověřovací kód a stírací kódy pouhým zodpovězením jednoduchých otázek serveru, který položí Tento krok můžete provést spuštěním následujícího příkazu:
google-authenticator
Budete vyzváni k zodpovězení několika otázek; na první dvě otázky odpovězte ano (y):
Do you want authentication tokens to be time-based (y/n) y
Ve vašem terminálu bude vygenerován velký QR kód. Kód můžete naskenovat pomocí ověřovací aplikace na telefonu nebo tabletu Android/iOS/Windows nebo zadat tajný kód klíč vygenerovaný na obrazovce.
Budou také generovány nouzové stírací kódy. Tyto kódy můžete použít k ověření v případě ztráty mobilního zařízení:
Your emergency scratch codes are: 80461001 68335920 89765548 12485672 11145603
Uložte nastavení ověřování pro uživatele root tak, že na následující otázku odpovíte ANO:
Do you want me to update your "/root/.google_authenticator" file (y/n) y
Dále můžete ověřovací modul nakonfigurovat tak, aby generoval jednorázová hesla. Za posledních 30 sekund lze všechna vygenerovaná hesla použít jednou. Chcete-li vytvořit soubor, odpovězte y která ukládá tato nastavení:
Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
Pokud máte problémy se synchronizací času napříč zařízeními, můžete použít následující nastavení, takže tuto možnost nepoužijeme:
By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) n
Další nastavení zabraňuje útokům hrubou silou. Budete mít pouze tři šance za 30 sekund zadat správné heslo:
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y
Blahopřejeme! Dokončili jste generování klíče a jeho přidání do klienta, ale než tato nastavení vstoupí v platnost, je třeba provést další konfiguraci.
Dalším krokem je konfigurace nastavení ověřování v openSSH. Chcete-li tak učinit, otevřete „/etc/pam.d/sshd
” a na konec souboru přidejte následující řádek:
### nano /etc/pam.d/sshd auth required pam_google_authenticator.so
Uložte změny, otevřete „/etc/ssh/sshd_config
” a povolte ověřování Challenge-Response:
### nano /etc/ssh/sshd_config ChallengeResponseAuthentication yes
Nakonec uložte soubor a restartujte SSH server, aby se změny projevily:
systemctl restart ssh
Blahopřejeme! Úspěšně jste zabezpečili SSH. Děkujeme, že jste použili tento výukový program pro bezpečné SSH pomocí dvoufaktorové autentizace v systému Ubuntu 16.04 LTS (Xenial Xerus). Pro další pomoc nebo užitečné informace doporučujeme podívejte se na oficiální web SSH.