Cum să configurați autentificarea cu doi factori pe un Raspberry Pi

Raspberry Pi este peste tot acum, motiv pentru care a atras atenția actorilor de amenințări și a criminalilor cibernetici. Vă vom arăta cum să vă asigurați Pi-ul cu autentificarea cu doi factori.

Uimitorul Raspberry Pi

The Raspberry Pi este un computer cu o singură placă. A fost lansat în Marea Britanie în 2012 cu intenția de a-i determina pe copii să joace, să creeze și să învețe cod. Factorul de formă inițial a fost o placă de dimensiunea unui card de credit, alimentată de un încărcător de telefon.

Oferă ieșire HDMI, porturi USB, conectivitate la rețea și rulează Linux. Adăugările ulterioare la linie au inclus versiuni și mai mici, concepute pentru a fi încorporate în produse sau pentru a rula ca sisteme fără cap. Prețurile variază de la 5 USD pentru minimalist Pi Zero, la 75 USD pentru Pi 4 B/8 GB.

Succesul său a fost incredibil; peste 30 de milioane dintre aceste computere minuscule s-au vândut în întreaga lume. Pasionații au făcut lucruri uimitoare și inspiratoare cu ei, inclusiv plutind unul la marginea spațiului și înapoi pe un balon.

Din păcate, odată ce o platformă de calcul devine suficient de răspândită, atrage inevitabil atenția infractorilor cibernetici. Este îngrozitor să ne gândim la câți Pi-uri folosesc contul de utilizator și parola implicite. Dacă Pi-ul dvs. este orientat spre public și accesibil de pe internet prin Shell Securizat (SSH), trebuie să fie sigur.

Chiar dacă nu aveți date sau software valoros pe Pi-ul dvs., trebuie să îl protejați, deoarece Pi-ul dvs. nu este ținta reală – este doar o modalitate de a intra în rețea. Odată ce un actor de amenințare își are un punct de sprijin într-o rețea, el va pivota către celelalte dispozitive de care este de fapt interesat.

Autentificare cu doi factori

Autentificarea sau obținerea accesului la un sistem necesită unul sau mai mulți factori. Factorii sunt clasificați după cum urmează:

Ceva pe care îl știți: cum ar fi o parolă sau o expresie.
Ceva ce aveți: cum ar fi un telefon mobil, un simbol fizic sau un dongle.
Ceva ce sunteți: o citire biometrică, cum ar fi o amprentă sau o scanare a retinei.

Autentificarea multifactor (MFA) necesită o parolă și unul sau mai multe elemente din celelalte categorii. Pentru exemplul nostru, vom folosi o parolă și un telefon mobil. Telefonul mobil va rula o aplicație de autentificare Google, iar Pi va rula un modul de autentificare Google.

  Cum să utilizați imaginea Chrome în modul imagine

O aplicație pentru telefonul mobil este conectată la Pi-ul tău prin scanarea unui cod QR. Acest lucru transmite unele informații de bază către telefonul tău mobil de la Pi, asigurându-se că algoritmii lor de generare a numerelor produc aceleași coduri simultan. Codurile sunt denumite parole unice bazate pe timp (TOTP).

Când primește o solicitare de conectare, Pi-ul tău generează un cod. Utilizați aplicația de autentificare de pe telefon pentru a vedea codul curent, iar apoi Pi-ul vă va cere parola și codul de autentificare. Atât parola, cât și TOTP-ul trebuie să fie corecte înainte de a vi se permite să vă conectați.

Configurarea Pi

Dacă de obicei conectați SSH pe Pi, este probabil să fie un sistem fără cap, așa că îl vom configura printr-o conexiune SSH.

Cel mai sigur este să faci două conexiuni SSH: una pentru a face configurarea și testarea, iar alta pentru a acționa ca o plasă de siguranță. În acest fel, dacă vă blocați din Pi, veți avea în continuare activă a doua conexiune SSH activă. Modificarea setărilor SSH nu va afecta o conexiune în curs, așa că o puteți folosi pe a doua pentru a anula orice modificare și a remedia situația.

Dacă se întâmplă cel mai rău și sunteți complet blocat prin SSH, veți putea în continuare să vă conectați Pi-ul la un monitor, tastatură și mouse, apoi vă veți putea conecta la o sesiune obișnuită. Adică, te poți conecta în continuare, atâta timp cât Pi-ul tău poate conduce un monitor. Dacă nu se poate, totuși, trebuie să păstrați conexiunea SSH la rețeaua de siguranță deschisă până când ați verificat că autentificarea cu doi factori funcționează.

Sancțiunea finală, desigur, este să refazi sistemul de operare pe cardul micro SD al lui Pi, dar să încercăm să evităm asta.

În primul rând, trebuie să facem cele două conexiuni ale noastre la Pi. Ambele comenzi iau următoarea formă:

ssh [email protected]

Numele acestui Pi este „câine de pază”, dar în schimb îl vei introduce pe al tău. Dacă ați schimbat numele de utilizator implicit, utilizați și acesta; al nostru este „pi”.

Amintiți-vă, pentru siguranță, introduceți această comandă de două ori în ferestre terminale diferite, astfel încât să aveți două conexiuni la Pi. Apoi, minimizați unul dintre ele, astfel încât să fie în afara drumului și să nu fie închis accidental.

După ce vă conectați, veți vedea mesajul de salut. Solicitarea va afișa numele de utilizator (în acest caz, „pi”) și numele Pi (în acest caz, „câine de pază”).

  Cum să utilizați aplicația web progresivă Google Drive

Trebuie să editați fișierul „sshd_config”. O vom face în editorul de text nano:

sudo nano /etc/ssh/sshd_config

Derulați prin fișier până când vedeți următoarea linie:

ChallengeResponseAuthentication no

Înlocuiți „nu” cu „da”.

Apăsați Ctrl+O pentru a salva modificările în nano, apoi apăsați Ctrl+X pentru a închide fișierul. Utilizați următoarea comandă pentru a reporni demonul SSH:

sudo systemctl restart ssh

Trebuie să instalați autentificatorul Google, care este un Modul de autentificare conectabil bibliotecă (PAM). Aplicația (SSH) va apela interfața Linux PAM, iar interfața găsește modulul PAM adecvat pentru a deservi tipul de autentificare solicitat.

Introduceți următoarele:

sudo apt-get install libpam-google-authenticator

Instalarea aplicației

Aplicația Google Authenticator este disponibilă pentru iPhone și Android, așa că instalați doar versiunea corespunzătoare pentru telefonul dvs. mobil. De asemenea, puteți utiliza Authy și alte aplicații care acceptă acest tip de cod de autentificare.

Configurarea autentificării cu doi factori

În contul pe care îl veți folosi când vă conectați la Pi prin SSH, rulați următoarea comandă (nu includeți prefixul sudo):

google-authenticator

Veți fi întrebat dacă doriți ca jetoanele de autentificare să fie bazate pe timp; apăsați Y, apoi apăsați Enter.

A Răspuns rapid Codul (QR) este generat, dar este amestecat deoarece este mai larg decât fereastra terminalului cu 80 de coloane. Trage fereastra mai larg pentru a vedea codul.

Veți vedea, de asemenea, câteva coduri de securitate sub codul QR. Acestea sunt scrise într-un fișier numit „.google_authenticator”, dar este posibil să doriți să faceți o copie a acestora acum. Dacă pierdeți vreodată capacitatea de a obține un TOTP (dacă vă pierdeți telefonul mobil, de exemplu), puteți utiliza aceste coduri pentru a vă autentifica.

Trebuie să răspundeți la patru întrebări, dintre care prima este:

Do you want me to update your "/home/pi/.google_authenticator" file? (y/n)

Apăsați Y, apoi apăsați Enter.

Vrei să-ți actualizez

Următoarea întrebare vă întreabă dacă doriți să preveniți utilizările multiple ale aceluiași cod într-o fereastră de 30 de secunde.

Apăsați Y, apoi apăsați Enter.

A treia întrebare întreabă dacă doriți să lărgiți fereastra de acceptare pentru jetoanele TOTP.

Apăsați N ca răspuns la aceasta, apoi apăsați Enter.

Ultima întrebare este: „Doriți să activați limitarea ratei?”

Tastați Y, apoi apăsați Enter.

Ați revenit la promptul de comandă. Dacă este necesar, trageți fereastra terminalului mai larg și/sau derulați în sus în fereastra terminalului, astfel încât să puteți vedea întregul cod QR.

Pe telefonul mobil, deschideți aplicația de autentificare, apoi apăsați pe semnul plus (+) din colțul din dreapta jos al ecranului. Selectați „Scanați un cod QR”, apoi scanați codul QR în fereastra terminalului.

  Cum să utilizați textul în coloane ca un Excel Pro

O nouă intrare va apărea în aplicația de autentificare numită după numele de gazdă al lui Pi, iar sub ea va fi listat un cod TOTP din șase cifre. Este afișat ca două grupuri de trei cifre pentru a face citirea mai ușoară, dar trebuie să-l introduceți ca un număr de șase cifre.

Un cerc animat lângă cod indică cât mai mult va fi valabil codul: un cerc complet înseamnă 30 de secunde, un semicerc înseamnă 15 secunde și așa mai departe.

Legând totul împreună

Mai avem un fișier de editat. Trebuie să spunem SSH ce modul de autentificare PAM să folosească:

sudo nano /etc/pam.d/sshd

Introduceți următoarele rânduri în partea de sus a fișierului:

#2FA

auth required pam_google_authenticator.so

De asemenea, puteți alege când doriți să vi se solicite TOTP:

După ce ați introdus parola: introduceți rândurile anterioare de mai jos „@include common-auth”, așa cum se arată în imaginea de mai sus.
Înainte de a vi se cere parola: introduceți rândurile anterioare deasupra „@include common-auth”.

Rețineți liniuțele de subliniere (_) folosite în „pam_google_authenticator.so”, mai degrabă decât cratimele (-) pe care le-am folosit mai devreme cu comanda apt-get pentru a instala modulul.

Apăsați Ctrl+O pentru a scrie modificările în fișier, apoi apăsați Ctrl+X pentru a închide editorul. Trebuie să repornim SSH o ultimă dată, apoi am terminat:

sudo systemctl restart ssh

Închideți această conexiune SSH, dar lăsați cealaltă conexiune SSH rețea de siguranță în funcțiune până când verificăm următorul pas.

Asigurați-vă că aplicația de autentificare este deschisă și gata pe telefonul mobil, apoi deschideți o nouă conexiune SSH la Pi:

ssh [email protected]

Ar trebui să vi se ceară parola și apoi codul. Introdu codul de pe telefonul mobil fără spații între numere. Asemenea parolei dvs., nu apare ecou pe ecran.

Dacă totul decurge conform planului, ar trebui să vi se permită să vă conectați la Pi; dacă nu, utilizați conexiunea SSH la rețeaua de siguranță pentru a revizui pașii anteriori.

Mai bine mai sigur decât să-mi pare rău

Ați observat „r” în „mai sigur” de mai sus?

Într-adevăr, acum ești mai în siguranță decât erai înainte când te conectezi la un Raspberry Pi, dar nimic nu este niciodată 100% sigur. Există modalități de a evita autentificarea cu doi factori. Acestea se bazează pe inginerie socială, atacuri man-in-the-middle și man-at-the-endpoint, schimbarea SIM și alte tehnici avansate pe care, evident, nu le vom descrie aici.

Deci, de ce să te deranjezi cu toate astea dacă nu sunt perfecte? Ei bine, din același motiv îți încui ușa de la intrare când pleci, deși există oameni care pot deschide încuietori — majoritatea nu pot.