GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak zabezpečit SSH pomocí dvoufaktorové autentizace na Ubuntu 16.04 LTS

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 k root user . Doporučujeme jednat jako non-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.


Ubuntu
  1. Jak nainstalovat a zabezpečit Redis na Ubuntu 18.04 LTS

  2. Jak povolit službu SSH v Ubuntu 22.04 LTS

  3. Zabezpečte SSH pomocí dvoufaktorové autentizace na Ubuntu 16.04

  1. Jak nainstalovat a zabezpečit phpMyAdmin na Ubuntu 18.04 LTS

  2. Jak nastavit VPN server pomocí Pritunl na Ubuntu 18.04 LTS

  3. Jak používat SSH pro připojení ke vzdálenému serveru v Ubuntu 20.04 LTS

  1. Jak vytvořit a spustit program C pomocí Ubuntu 20.04 LTS

  2. Jak najít svou veřejnou IP adresu v Ubuntu 20.04 LTS

  3. Jak nainstalovat Nginx na Ubuntu 20.04 LTS pomocí zdrojového kódu