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.
Tartalomjegyzék
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.
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.