Sådan konfigureres to-faktor-godkendelse på en Raspberry Pi

Raspberry Pi er overalt nu, og det er derfor, den har fået øjnene op for trusselsaktører og cyberkriminelle. Vi viser dig, hvordan du sikrer din Pi med to-faktor-godkendelse.

Den fantastiske Raspberry Pi

Det Raspberry Pi er en enkeltbordscomputer. Det blev lanceret i Storbritannien i 2012 med det formål at få børn til at pille ved, skabe og lære kode. Den oprindelige formfaktor var et kort i kreditkortstørrelse, drevet af en telefonoplader.

Det giver HDMI-udgang, USB-porte, netværkstilslutning og kører Linux. Senere tilføjelser til serien inkluderede endnu mindre versioner designet til at blive inkorporeret i produkter eller køre som hovedløse systemer. Priserne varierer fra $5 for den minimalistiske Pi Zero, til $75 for Pi 4 B/8 GB.

Dens succes har været utrolig; over 30 millioner af disse små computere er solgt på verdensplan. Hobbyister har lavet fantastiske og inspirerende ting med dem, bl.a svævende til kanten af ​​rummet og tilbage på en ballon.

Ak, når først en computerplatform bliver tilstrækkeligt udbredt, tiltrækker den uundgåeligt cyberkriminelles opmærksomhed. Det er forfærdeligt at tænke på, hvor mange Pi’er, der bruger standardbrugerkontoen og adgangskoden. Hvis din Pi er offentligt vendt og tilgængelig fra internettet ved Sikker Shell (SSH), det skal være sikkert.

Selvom du ikke har nogen værdifuld data eller software på din Pi, skal du beskytte den, fordi din Pi ikke er det egentlige mål – det er bare en måde at komme ind på dit netværk. Når en trusselsaktør har fået fodfæste i et netværk, vil han dreje til de andre enheder, som han faktisk er interesseret i.

To-faktor-godkendelse

Autentificering – eller at få adgang til et system – kræver en eller flere faktorer. Faktorer er kategoriseret som følgende:

Noget du ved: Såsom en adgangskode eller -sætning.
Noget du har: Som en mobiltelefon, fysisk token eller dongle.
Noget du er: En biometrisk aflæsning, som et fingeraftryk eller nethindescanning.

Multifaktorautentificering (MFA) kræver en adgangskode og et eller flere elementer fra de andre kategorier. For vores eksempel vil vi bruge en adgangskode og mobiltelefon. Mobiltelefonen kører en Google-autentificeringsapp, og Pi’en kører et Google-godkendelsesmodul.

En mobiltelefon-app er knyttet til din Pi ved at scanne en QR-kode. Dette sender nogle frøoplysninger til din mobiltelefon fra Pi, hvilket sikrer, at deres nummergenereringsalgoritmer producerer de samme koder samtidigt. Koderne omtales som tidsbaserede engangsadgangskoder (TOTP).

  Sådan opretter du hurtigt dit eget Chrome-browsertema

Når den modtager en forbindelsesanmodning, genererer din Pi en kode. Du bruger autentificeringsappen på din telefon til at se den aktuelle kode, og derefter vil din Pi bede dig om din adgangskode og autentificeringskode. Både din adgangskode og TOTP skal være korrekte, før du får lov til at oprette forbindelse.

Konfiguration af Pi

Hvis du normalt SSH på din Pi, er det sandsynligvis et hovedløst system, så vi konfigurerer det over en SSH-forbindelse.

Det er sikrest at lave to SSH-forbindelser: en til at udføre konfigurationen og testningen, og en anden til at fungere som et sikkerhedsnet. På denne måde, hvis du låser dig ude af din Pi, vil du stadig have den anden aktive SSH-forbindelse aktiv. Ændring af SSH-indstillinger vil ikke påvirke en igangværende forbindelse, så du kan bruge den anden til at vende eventuelle ændringer og afhjælpe situationen.

Hvis det værste sker, og du er fuldstændig låst ude via SSH, vil du stadig være i stand til at forbinde din Pi til en skærm, et tastatur og en mus og derefter logge på en almindelig session. Det vil sige, at du stadig kan logge ind, så længe din Pi kan køre en skærm. Hvis det imidlertid ikke kan, skal du virkelig holde sikkerhedsnettets SSH-forbindelse åben, indtil du har bekræftet, at to-faktor-godkendelse virker.

Den ultimative sanktion er selvfølgelig at genoplade operativsystemet på Pi’s micro SD-kort, men lad os prøve at undgå det.

Først skal vi lave vores to forbindelser til Pi. Begge kommandoer har følgende form:

ssh [email protected]

Navnet på denne Pi er “vagthund”, men du skriver dit navn i stedet for. Hvis du har ændret standardbrugernavnet, så brug det også; vores er “pi.”

Husk, for en sikkerheds skyld, skriv denne kommando to gange i forskellige terminalvinduer, så du har to forbindelser til din Pi. Derefter skal du minimere en af ​​dem, så den er af vejen og ikke lukkes ved et uheld.

Når du har oprettet forbindelse, vil du se hilsenen. Prompten viser brugernavnet (i dette tilfælde “pi”) og navnet på Pi’en (i dette tilfælde “vagthund”).

Du skal redigere filen “sshd_config”. Det gør vi i nano-teksteditoren:

sudo nano /etc/ssh/sshd_config

Rul gennem filen, indtil du ser følgende linje:

ChallengeResponseAuthentication no

Erstat “nej” med “ja”.

  Sådan optager du Zoom-møde på iPhone

Tryk på Ctrl+O for at gemme dine ændringer i nano, og tryk derefter på Ctrl+X for at lukke filen. Brug følgende kommando til at genstarte SSH-dæmonen:

sudo systemctl restart ssh

Du skal installere Google Authenticator, som er en Tilslutbart godkendelsesmodul (PAM) bibliotek. Applikationen (SSH) kalder Linux PAM-grænsefladen, og grænsefladen finder det passende PAM-modul til at betjene den type godkendelse, der anmodes om.

Indtast følgende:

sudo apt-get install libpam-google-authenticator

Installation af appen

Google Authenticator-appen er tilgængelig for iPhone og Android, så bare installer den passende version til din mobiltelefon. Du kan også bruge Authy og andre apps, der understøtter denne type godkendelseskode.

Konfiguration af to-faktor-godkendelse

På den konto, du skal bruge, når du opretter forbindelse til Pi via SSH, skal du køre følgende kommando (medtag ikke sudo-præfikset):

google-authenticator

Du bliver spurgt, om du ønsker, at godkendelsestokenserne skal være tidsbaserede; tryk på Y, og tryk derefter på Enter.

EN Hurtig reaktion (QR)-kode genereres, men den er forvrænget, fordi den er bredere end terminalvinduet med 80 kolonner. Træk vinduet bredere for at se koden.

Du kan også se nogle sikkerhedskoder under QR-koden. Disse er skrevet til en fil kaldet “.google_authenticator”, men du vil måske lave en kopi af dem nu. Hvis du nogensinde mister muligheden for at opnå en TOTP (hvis du f.eks. mister din mobiltelefon), kan du bruge disse koder til at godkende.

Du skal besvare fire spørgsmål, hvoraf det første er:

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

Tryk på Y, og tryk derefter på Enter.

Vil du have mig til at opdatere din

Det næste spørgsmål spørger, om du vil forhindre flere brug af den samme kode inden for et 30-sekunders vindue.

Tryk på Y, og tryk derefter på Enter.

Det tredje spørgsmål spørger, om du ønsker at udvide acceptvinduet for TOTP-tokens.

Tryk på N som svar på dette, og tryk derefter på Enter.

Det sidste spørgsmål er: “Vil du aktivere hastighedsbegrænsning?”

Skriv Y, og tryk derefter på Enter.

Du vender tilbage til kommandoprompten. Træk om nødvendigt terminalvinduet bredere og/eller rul op i terminalvinduet, så du kan se hele QR-koden.

Åbn godkendelsesappen på din mobiltelefon, og tryk derefter på plustegnet (+) nederst til højre på skærmen. Vælg “Scan en QR-kode”, og scan derefter QR-koden i terminalvinduet.

En ny post vil dukke op i godkendelsesappen opkaldt efter værtsnavnet på Pi, og en sekscifret TOTP-kode vil blive angivet under den. Det vises som to grupper med tre cifre for at gøre det nemmere at læse det, men du skal indtaste det som et sekscifret tal.

  Hvad er Google Stadia?

En animeret cirkel ved siden af ​​koden angiver, hvor meget længere koden vil være gyldig: en hel cirkel betyder 30 sekunder, en halv cirkel betyder 15 sekunder, og så videre.

Forbinder det hele sammen

Vi har endnu en fil at redigere. Vi er nødt til at fortælle SSH, hvilket PAM-godkendelsesmodul der skal bruges:

sudo nano /etc/pam.d/sshd

Indtast følgende linjer nær toppen af ​​filen:

#2FA

auth required pam_google_authenticator.so

Du kan også vælge, hvornår du vil blive bedt om TOTP:

Når du har indtastet din adgangskode: Indtast de foregående linjer under “@include common-auth”, som vist på billedet ovenfor.
Før du bliver bedt om din adgangskode: Indtast de foregående linjer ovenfor “@include common-auth.”

Bemærk understregningerne (_) brugt i “pam_google_authenticator.so,” i stedet for de bindestreger (-), vi brugte tidligere med kommandoen apt-get til at installere modulet.

Tryk på Ctrl+O for at skrive ændringerne til filen, og tryk derefter på Ctrl+X for at lukke editoren. Vi skal genstarte SSH en sidste gang, og så er vi færdige:

sudo systemctl restart ssh

Luk denne SSH-forbindelse, men lad det andet sikkerhedsnet-SSH-forbindelse køre, indtil vi har bekræftet dette næste trin.

Sørg for, at autentificeringsappen er åben og klar på din mobiltelefon, og åbn derefter en ny SSH-forbindelse til Pi:

ssh [email protected]

Du skal blive bedt om din adgangskode og derefter om koden. Indtast koden fra din mobiltelefon uden mellemrum mellem tallene. Ligesom din adgangskode, er det ikke ekko på skærmen.

Hvis alt går efter planen, skal du have lov til at oprette forbindelse til Pi; Hvis ikke, skal du bruge dit sikkerhedsnet SSH-forbindelse til at gennemgå de foregående trin.

Bedre sikrere end undskyld

Har du bemærket “r” i “safer” ovenfor?

Faktisk er du nu mere sikker, end du var tidligere, når du oprettede forbindelse til en Raspberry Pi, men intet er nogensinde 100 procent sikkert. Der er måder at omgå to-faktor-godkendelse på. Disse er afhængige af social engineering, man-in-the-middle og man-at-the-endpoint-angreb, SIM-bytte og andre avancerede teknikker, som vi naturligvis ikke vil beskrive her.

Så hvorfor bekymre sig om alt dette, hvis det ikke er perfekt? Nå, af samme grund låser du din hoveddør, når du går, selvom der er folk, der kan vælge låse – det kan de fleste ikke.