Kéttényezős hitelesítés beállítása Raspberry Pi-n

A Raspberry Pi ma már mindenhol megtalálható, ezért felkeltette a fenyegetés szereplői és a kiberbűnözők figyelmét. Megmutatjuk, hogyan védheti meg Pi-jét kéttényezős hitelesítéssel.

A csodálatos Raspberry Pi

A Raspberry Pi egy egylapos számítógép. 2012-ben indult az Egyesült Királyságban azzal a céllal, hogy a gyerekeket rávegye a kódok trükközésére, létrehozására és megtanulására. Az eredeti forma egy hitelkártya méretű tábla volt, amelyet egy telefontöltő táplált.

HDMI-kimenetet, USB-portokat, hálózati csatlakozást és Linuxot futtat. A sorozat későbbi kiegészítései még kisebb változatokat is tartalmaztak, amelyeket termékekbe beépítve vagy fej nélküli rendszerként terveztek. Az árak 5 dollártól mozognak a minimalisták számára Pi Zero, 75 dollárra a Pi 4 B/8 GB.

Sikere hihetetlen volt; Több mint 30 millió ilyen apró számítógépet adtak el világszerte. A hobbisták csodálatos és inspiráló dolgokat műveltek velük, többek között lebegtetve egyet a tér szélére és vissza egy léggömbön.

Sajnos, amint egy számítástechnikai platform kellően elterjedt, elkerülhetetlenül felkelti a kiberbűnözők figyelmét. Borzasztó belegondolni, hogy hány Pi használja az alapértelmezett felhasználói fiókot és jelszót. Ha Pi-je nyilvános és elérhető az internetről a következővel: Secure Shell (SSH), biztonságosnak kell lennie.

Még akkor is, ha nincs értékes adata vagy szoftvere a Pi-n, meg kell védenie azt, mert nem a Pi a tényleges cél – ez csak egy módja annak, hogy bejusson a hálózatába. Ha egy fenyegetettség szereplője megveti a lábát egy hálózatban, akkor a többi eszköz felé fordul, amely valóban érdekli.

Kéttényezős hitelesítés

A hitelesítéshez – vagy a rendszerhez való hozzáféréshez – egy vagy több tényező szükséges. A tényezők a következő kategóriákba sorolhatók:

Valami, amit tud: Például jelszó vagy -kifejezés.
Valami, amivel rendelkezel: Például egy mobiltelefon, fizikai token vagy dongle.
Valami, ami Ön: biometrikus leolvasás, például ujjlenyomat vagy retinaszkennelés.

A többtényezős hitelesítés (MFA) jelszót és egy vagy több elemet igényel a többi kategóriából. Példánkban jelszót és mobiltelefont fogunk használni. A mobiltelefonon egy Google hitelesítő alkalmazás, a Pi-n pedig egy Google hitelesítési modul fut majd.

Egy mobiltelefon-alkalmazás QR-kód beolvasásával kapcsolódik a Pi-hez. Ez átad néhány kezdő információt a mobiltelefonnak a Pi-től, biztosítva, hogy számgeneráló algoritmusaik egyidejűleg ugyanazokat a kódokat állítsák elő. A kódokra hivatkozunk időalapú, egyszeri jelszavak (TOTP).

Amikor csatlakozási kérést kap, a Pi kódot generál. Használja a telefon hitelesítő alkalmazását az aktuális kód megtekintéséhez, majd a Pi kéri a jelszavát és a hitelesítési kódot. A jelszavának és a TOTP-nek is helyesnek kell lennie, mielőtt csatlakozhat.

A Pi konfigurálása

Ha általában SSH-t használ a Pi-n, akkor valószínűleg fej nélküli rendszerről van szó, ezért SSH-kapcsolaton keresztül konfiguráljuk.

A legbiztonságosabb két SSH-kapcsolat létrehozása: az egyik a konfigurálás és a tesztelés elvégzésére, a másik pedig biztonsági hálóként működik. Így, ha kizárja magát a Pi-ből, továbbra is aktív marad a második aktív SSH-kapcsolat. Az SSH-beállítások módosítása nem érinti a folyamatban lévő kapcsolatot, így a másodikat használhatja a változtatások visszavonására és a helyzet orvoslására.

Ha a legrosszabb megtörténik, és teljesen ki van zárva az SSH-n keresztül, továbbra is csatlakoztathatja a Pi-t egy monitorhoz, billentyűzethez és egérhez, majd bejelentkezhet egy normál munkamenetbe. Vagyis továbbra is bejelentkezhet, amíg a Pi képes monitort vezetni. Ha azonban nem, akkor valóban nyitva kell tartania a biztonsági háló SSH-kapcsolatát, amíg meg nem győződik a kéttényezős hitelesítés működéséről.

A végső szankció természetesen az operációs rendszer újratöltése a Pi micro SD kártyájára, de ezt próbáljuk meg elkerülni.

Először is létre kell hoznunk a két kapcsolatunkat a Pi-vel. Mindkét parancs a következő formában jelenik meg:

ssh [email protected]

Ennek a Pinek a neve „őrkutya”, de helyette a saját nevét kell begépelnie. Ha megváltoztatta az alapértelmezett felhasználónevet, használja azt is; a miénk a „pi”.

Ne feledje, a biztonság kedvéért írja be ezt a parancsot kétszer különböző terminálablakokban, hogy két kapcsolata legyen a Pi-vel. Ezután minimalizálja az egyiket, hogy ne legyen útból, és ne zárják be véletlenül.

A csatlakozás után megjelenik az üdvözlő üzenet. A prompt megjeleníti a felhasználónevet (ebben az esetben „pi”) és a Pi nevét (jelen esetben „figyelőkutya”).

Módosítania kell az „sshd_config” fájlt. Ezt a nano szövegszerkesztőben tesszük meg:

sudo nano /etc/ssh/sshd_config

Görgessen végig a fájlban, amíg meg nem jelenik a következő sor:

ChallengeResponseAuthentication no

Cserélje ki a „nem”-et „igen”-re.

Nyomja meg a Ctrl+O billentyűkombinációt a változtatások nano-ban való mentéséhez, majd a Ctrl+X billentyűkombinációt a fájl bezárásához. Az SSH démon újraindításához használja a következő parancsot:

sudo systemctl restart ssh

Telepítenie kell a Google hitelesítőt, ami a Csatlakoztatható hitelesítési modul (PAM) könyvtár. Az alkalmazás (SSH) meghívja a Linux PAM interfészt, és az interfész megkeresi a megfelelő PAM modult a kért hitelesítési típus kiszolgálásához.

Írja be a következőket:

sudo apt-get install libpam-google-authenticator

Az alkalmazás telepítése

A Google Authenticator alkalmazás a következőhöz érhető el iPhone és Android, ezért csak telepítse a mobiltelefonjának megfelelő verziót. Használhatja az Authyt és más olyan alkalmazásokat is, amelyek támogatják az ilyen típusú hitelesítési kódot.

Kéttényezős hitelesítés konfigurálása

Abban a fiókban, amelyet akkor fog használni, amikor SSH-n keresztül csatlakozik a Pi-hez, futtassa a következő parancsot (ne tartalmazza a sudo előtagot):

google-authenticator

A rendszer megkérdezi, hogy szeretné-e, hogy a hitelesítési tokenek időalapúak legyenek; nyomja meg az Y gombot, majd nyomja meg az Enter billentyűt.

A Gyors válasz (QR) kód jön létre, de kódolva van, mert szélesebb, mint a 80 oszlopos terminálablak. Húzza szélesebbre az ablakot a kód megtekintéséhez.

Néhány biztonsági kód is megjelenik a QR-kód alatt. Ezek a „.google_authenticator” nevű fájlba vannak írva, de érdemes lehet most másolatot készíteni róluk. Ha valaha elveszíti a TOTP megszerzésének képességét (ha például elveszíti mobiltelefonját), használhatja ezeket a kódokat a hitelesítéshez.

Négy kérdésre kell válaszolnia, amelyek közül az első:

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

Nyomja meg az Y gombot, majd nyomja meg az Enter billentyűt.

Szeretnéd, hogy frissítsem

A következő kérdés arra vonatkozik, hogy meg akarja-e akadályozni ugyanazon kód többszöri használatát egy 30 másodperces ablakon belül.

Nyomja meg az Y gombot, majd nyomja meg az Enter billentyűt.

A harmadik kérdés arra vonatkozik, hogy ki akarja-e terjeszteni a TOTP tokenek elfogadási ablakát.

Erre válaszul nyomja meg az N gombot, majd nyomja meg az Enter billentyűt.

Az utolsó kérdés: „Szeretné engedélyezni a sebességkorlátozást?”

Írja be az Y-t, majd nyomja meg az Enter billentyűt.

Visszakerül a parancssorba. Ha szükséges, húzza szélesebbre a terminálablakot és/vagy görgessen felfelé a terminálablakban, hogy a teljes QR-kódot láthassa.

Mobiltelefonján nyissa meg a hitelesítő alkalmazást, majd nyomja meg a plusz jelet (+) a képernyő jobb alsó sarkában. Válassza a „QR-kód beolvasása” lehetőséget, majd olvassa be a QR-kódot a terminál ablakában.

Egy új bejegyzés jelenik meg a hitelesítő alkalmazásban, amelyet a Pi állomásnevéről neveztek el, és egy hatjegyű TOTP-kód jelenik meg alatta. Két háromjegyű csoportként jelenik meg az olvasás megkönnyítése érdekében, de egy hatjegyű számként kell beírnia.

A kód melletti animált kör jelzi, hogy meddig lesz érvényes a kód: a teljes kör 30 másodpercet, a félkör 15 másodpercet jelent, és így tovább.

Összekapcsolása mindezt

Van még egy szerkesztendő fájlunk. Meg kell mondanunk az SSH-nak, hogy melyik PAM hitelesítési modult használjuk:

sudo nano /etc/pam.d/sshd

Írja be a következő sorokat a fájl tetejéhez:

#2FA

auth required pam_google_authenticator.so

Azt is kiválaszthatja, hogy mikor kérje a TOTP-t:

Miután megadta a jelszavát: Írja be az előző sorokat az „@include common-ath” szöveg alá, ahogy a fenti képen látható.
Mielőtt a rendszer megkérné a jelszavát: Írja be az előző sorokat az „@include common-ath” szó fölé.

Jegyezze meg a „pam_google_authenticator.so” fájlban használt aláhúzásjeleket (_) a korábban az apt-get paranccsal a modul telepítéséhez használt kötőjelek (-) helyett.

Nyomja meg a Ctrl+O billentyűkombinációt a módosítások fájlba írásához, majd a Ctrl+X billentyűkombinációt a szerkesztő bezárásához. Még egyszer újra kell indítanunk az SSH-t, és készen vagyunk:

sudo systemctl restart ssh

Zárja be ezt az SSH-kapcsolatot, de hagyja futva a másik biztonsági háló SSH-kapcsolatot, amíg nem ellenőrizzük ezt a következő lépést.

Győződjön meg arról, hogy a hitelesítő alkalmazás meg van nyitva és készen áll a mobiltelefonján, majd nyisson meg egy új SSH-kapcsolatot a Pi-vel:

ssh [email protected]

Meg kell kérni a jelszavát, majd a kódot. Írja be a kódot mobiltelefonjáról, szóközök nélkül a számok között. Akárcsak a jelszava, ez sem visszhangzik a képernyőn.

Ha minden a terv szerint megy, engedélyezni kell, hogy csatlakozzon a Pi-hez; ha nem, használja a biztonsági háló SSH-kapcsolatát az előző lépések áttekintéséhez.

Jobb biztonságosabb, mint sajnálni

Észrevette az „r”-t a fenti „biztonságosabb”-ban?

Valójában most nagyobb biztonságban van, mint korábban, amikor Raspberry Pi-hez csatlakozik, de semmi sem 100 százalékosan biztonságos. Vannak módok a kéttényezős hitelesítés megkerülésére. Ezek a social engineering, a man-in-the-middle és a man-at-the-endpoint támadásokon, a SIM-cserén és más fejlett technikákon alapulnak, amelyeket természetesen itt nem fogunk leírni.

Szóval, minek foglalkozni ezzel az egésszel, ha nem tökéletes? Ugyanebből az okból kifolyólag zárja be a bejárati ajtót, amikor elindul, bár vannak olyanok, akik ki tudják zárni a zárakat – a legtöbben nem.