Kako koristiti dvofaktorsku autentifikaciju sa Ubuntuom


Vremenom se tradicionalna autentifikacija korisničkog imena i lozinke pokazala neadekvatnom u pružanju robusne sigurnosti aplikacijama i sistemima. Korisnička imena i lozinke se lako mogu razbiti upotrebom mnoštva alata za hakovanje, ostavljajući vaš sistem ranjivim na provale. Iz tog razloga, svaka kompanija ili entitet koji ozbiljno shvata sigurnost treba da implementira 2-faktorsku autentifikaciju.

Kolokvijalno poznat kao MFA (Multi-Factor Authentication), 2-faktorska autentikacija pruža dodatni sloj sigurnosti koji zahtijeva od korisnika da pruži određene detalje kao što su kodovi, ili OTP (jednokratna lozinka) prije ili nakon autentifikacije sa uobičajenim korisničkim imenom i lozinkom.

Danas više kompanija kao što su Google, Facebook, Twitter i AWS, da spomenemo neke, pružaju korisnicima mogućnost izbora postavljanja MFA radi dalje zaštite svojih računa.

U ovom vodiču pokazujemo kako možete koristiti dvofaktorsku autentifikaciju sa Ubuntu.

Korak 1: Instalirajte Googleov PAM paket

Prvo, instalirajte Google PAM paket. PAM, skraćenica za Pluggable Authentication Module, je mehanizam koji pruža dodatni sloj autentifikacije na Linux platformi.

Paket se nalazi u Ubuntu spremištu, pa nastavite i koristite naredbu apt da ga instalirate na sljedeći način:

sudo apt install libpam-google-authenticator

Kada se to od vas zatraži, pritisnite 'Y' i pritisnite ENTER da nastavite s instalacijom.

Korak 2: Instalirajte aplikaciju Google Authenticator na svoj pametni telefon

Osim toga, trebate instalirati aplikaciju Google Authenticator na svoj tablet ili pametni telefon. Aplikacija će vam predstaviti 6-cifreni OTP kod koji se automatski obnavlja svakih 30 sekundi.

Korak 3: Konfigurirajte Google PAM u Ubuntu

Sa instaliranom aplikacijom Google Authenticator, nastavit ćemo i konfigurirati Google PAM paket na Ubuntu modifikacijom /etc/pam.d/common-auth< fajl kao što je prikazano.

sudo vim /etc/pam.d/common-auth

Dodajte red ispod u datoteku kako je naznačeno.

auth required pam_google_authenticator.so

Sačuvajte fajl i izađite.

Sada pokrenite naredbu ispod da inicijalizirate PAM.

google-authenticator

Ovo će izazvati nekoliko pitanja na ekranu vašeg terminala. Prvo ćete biti upitani da li želite da tokeni za autentifikaciju budu vremenski zasnovani.

Tokeni Vremenske autentifikacije ističu nakon određenog vremena. Podrazumevano, ovo je nakon 30 sekundi, nakon čega se generira novi skup tokena. Ovi tokeni se smatraju sigurnijim od tokena koji nisu vremenski zasnovani, pa stoga upišite 'y' za da i pritisnite ENTER.

Zatim će se QR kod prikazati na terminalu kao što je prikazano ispod, a ispod njega će se prikazati neke informacije. Prikazane informacije uključuju:

  • Tajni ključ
  • Verifikacijski kod
  • Kodovi za grebanje u hitnim slučajevima

Morate sačuvati ove informacije u trezor za buduću upotrebu. Kodovi za grebanje u hitnim slučajevima su izuzetno korisni u slučaju da izgubite svoj uređaj za autentifikaciju. Ako se nešto dogodi vašem uređaju za autentifikaciju, koristite kodove.

Pokrenite aplikaciju Google Authenticator na svom pametnom uređaju i odaberite "Skeniraj QR kod" da skenirate predstavljeni QR kod.

NAPOMENA: Morate maksimizirati prozor terminala da biste skenirali cijeli QR kod. Nakon što se QR kod skenira, na aplikaciji će se prikazati šestocifreni OTP koji se mijenja svakih 30 sekundi.

Nakon toga, odaberite 'y' da ažurirate datoteku Google autentifikatora u svom početnom folderu.

U sljedećem promptu ograničite prijavu na samo jedan dnevnik svakih 30 sekundi kako biste spriječili napade koji bi mogli nastati zbog napada čovjeka u sredini. Zato odaberite 'y'

U sljedećoj promptu, odaberite 'n' da biste onemogućili produženje vremenskog trajanja koje se odnosi na vremensko odstupanje između servera i klijenta. Ovo je sigurnija opcija osim ako imate problema sa lošom sinhronizacijom vremena.

I konačno, omogućite ograničavanje brzine na samo 3 pokušaja prijave.

U ovom trenutku smo završili implementaciju funkcije 2-faktorske autentifikacije. U stvari, ako pokrenete bilo koju komandu sudo, od vas će se tražiti verifikacioni kod koji možete dobiti iz aplikacije Google Authenticator.

Ovo možete dodatno provjeriti ponovnim pokretanjem i kada dođete do ekrana za prijavu, od vas će se tražiti da unesete svoj verifikacioni kod.

Nakon što unesete svoj kod iz aplikacije Google Authenticator, samo unesite svoju lozinku za pristup vašem sistemu.

Korak 4: Integrirajte SSH sa Google Authenticatorom

Ako namjeravate koristiti SSH sa Google PAM modulom, morate integrirati ta dva. Postoje dva načina na koja to možete postići.

Za autentifikaciju SSH lozinkom

Da omogućite SSH autentifikaciju lozinkom za običnog korisnika, prvo otvorite zadanu SSH konfiguracijsku datoteku.

sudo vim /etc/ssh/sshd_config

I postavite sljedeće atribute na ‘da’ kao što je prikazano

Za root korisnika, postavite atribut ‘PermitRootLogin’ na 'yes'.

PermitRootLogin yes

Sačuvajte fajl i izađite.

Zatim izmijenite PAM pravilo za SSH

sudo vim /etc/pam.d/sshd

Zatim dodajte sljedeći red

auth   required   pam_google_authenticator.so

Na kraju, ponovo pokrenite SSH uslugu kako bi promjene stupile na snagu.

sudo systemctl restart ssh

U primjeru ispod, prijavljujemo se na Ubuntu sistem iz Putty klijenta.

Za provjeru autentičnosti SSH javnog ključa

Ako koristite autentifikaciju javnim ključem, ponovite gore navedene korake i dodajte red prikazan na dnu datoteke /etc/ssh/sshd_config.

AuthenticationMethods publickey,keyboard-interactive

Još jednom, uredite PAM pravilo za SSH demon.

sudo vim /etc/pam.d/sshd

Zatim dodajte sljedeći red.

auth   required   pam_google_authenticator.so

Sačuvajte fajl i ponovo pokrenite SSH servis kao što smo ranije videli.

sudo systemctl restart ssh

Onemogućite dvofaktorsku autentifikaciju u Ubuntuu

U slučaju da izgubite uređaj za autentifikaciju ili tajni ključ, nemojte poludjeti. Lako možete onemogućiti 2FA sloj za autentifikaciju i vratiti se na jednostavan način prijave korisničkog imena/lozinke.

Prvo, ponovo pokrenite sistem i pritisnite 'e' na prvom GRUB unosu.

Skrolujte i pronađite red koji počinje sa linux i završava sa tihim splash $vt_handoff. Dodajte red systemd.unit=rescue.target i pritisnite ctrl+x da uđete u način spašavanja

Kada dobijete shell, unesite root lozinku i pritisnite ENTER.

Zatim nastavite i izbrišite datoteku .google-authenticator u svom početnom direktoriju na sljedeći način. Obavezno zamijenite korisničko ime svojim vlastitim korisničkim imenom.


rm /home/username/.google_authenticator

Zatim uredite datoteku /etc/pam.d/common-auth.


$ vim /etc/pam.d/common-auth

Komentirajte ili obrišite sljedeći red:


auth required pam_google_authenticator.so

Sačuvajte datoteku i ponovo pokrenite sistem. Na ekranu za prijavu od vas će se tražiti samo da unesete svoje korisničko ime i lozinku za autentifikaciju.

I ovo nas dovodi do kraja ovog članka. Bit će nam drago čuti kako je prošlo.