Raspberry Pi je nyní všude, a proto upoutal pozornost aktérů hrozeb a kyberzločinců. Ukážeme vám, jak zabezpečit Pi pomocí dvoufaktorové autentizace.
Table of Contents
Úžasné Raspberry Pi
The Raspberry Pi je jednodeskový počítač. Ve Spojeném království byl spuštěn v roce 2012 se záměrem přimět děti, aby si s kódem hrály, vytvářely ho a učily se jej. Původním tvarovým faktorem byla deska o velikosti kreditní karty, napájená nabíječkou telefonu.
Poskytuje výstup HDMI, porty USB, síťové připojení a běží na něm Linux. Pozdější přírůstky do této řady zahrnovaly ještě menší verze navržené pro začlenění do produktů nebo pro provoz jako bezhlavé systémy. Ceny se pohybují od 5 dolarů pro minimalisty Pi nula, na 75 USD za Pi 4 B/8 GB.
Jeho úspěch byl neuvěřitelný; více než 30 milionů těchto malých počítačů se prodalo po celém světě. Hobbyisté s nimi dokázali úžasné a inspirativní věci, včetně plovoucí jeden na okraj vesmíru a zpět na balónu.
Bohužel, jakmile se počítačová platforma dostatečně rozšíří, nevyhnutelně přitáhne pozornost kyberzločinců. Je strašné pomyslet na to, kolik Pi používá výchozí uživatelský účet a heslo. Pokud je vaše Pi veřejně přístupné a přístupné z internetu prostřednictvím Secure Shell (SSH), musí být bezpečný.
I když na svém Pi nemáte žádná cenná data nebo software, musíte je chránit, protože vaše Pi není skutečným cílem – je to jen způsob, jak se dostat do vaší sítě. Jakmile se aktér hrozby uchytí v síti, přepne se na další zařízení, o která má skutečně zájem.
Dvoufaktorová autentizace
Autentizace – neboli získání přístupu k systému – vyžaduje jeden nebo více faktorů. Faktory jsou rozděleny do následujících kategorií:
Něco, co znáte: Například heslo nebo -fráze.
Něco, co máte: jako mobilní telefon, fyzický token nebo dongle.
Něco, čím jste: Biometrický údaj, jako je otisk prstu nebo sken sítnice.
Vícefaktorové ověřování (MFA) vyžaduje heslo a jednu nebo více položek z ostatních kategorií. Pro náš příklad použijeme heslo a mobilní telefon. Na mobilním telefonu bude spuštěna aplikace Google Authenticator a na Pi bude spuštěn ověřovací modul Google.
Aplikace pro mobilní telefon je propojena s vaším Pi naskenováním QR kódu. Tím se do vašeho mobilního telefonu předají některé počáteční informace z Pi, což zajistí, že jejich algoritmy pro generování čísel produkují stejné kódy současně. Kódy jsou označovány jako časová, jednorázová hesla (TOTP).
Když Pi obdrží požadavek na připojení, vygeneruje kód. Pomocí ověřovací aplikace v telefonu zobrazíte aktuální kód a poté vás Pi požádá o heslo a ověřovací kód. Vaše heslo i TOTP musí být správné, než se budete moci připojit.
Konfigurace Pi
Pokud obvykle používáte SSH na svém Pi, je pravděpodobné, že se jedná o bezhlavý systém, takže jej nakonfigurujeme přes připojení SSH.
Nejbezpečnější je vytvořit dvě připojení SSH: jedno pro konfiguraci a testování a druhé jako bezpečnostní síť. Tímto způsobem, pokud se uzamknete ze svého Pi, budete mít stále aktivní druhé aktivní připojení SSH. Změna nastavení SSH neovlivní probíhající připojení, takže druhé nastavení můžete použít ke zrušení jakýchkoli změn a nápravě situace.
Pokud dojde k nejhoršímu a budete přes SSH zcela uzamčeni, stále budete moci připojit svůj Pi k monitoru, klávesnici a myši a poté se přihlásit k běžné relaci. To znamená, že se stále můžete přihlásit, pokud váš Pi může ovládat monitor. Pokud to však nejde, opravdu musíte ponechat připojení SSH bezpečnostní sítě otevřené, dokud neověříte, že dvoufaktorová autentizace funguje.
Konečným trestem je samozřejmě přeformátování operačního systému na micro SD kartu Pi, ale zkusme se tomu vyhnout.
Nejprve musíme provést naše dvě připojení k Pi. Oba příkazy mají následující podobu:
ssh [email protected]
Jméno tohoto Pi je „hlídací pes“, ale místo toho napíšete své jméno. Pokud jste změnili výchozí uživatelské jméno, použijte jej také; naše je „pí“.
Pamatujte, že z bezpečnostních důvodů zadejte tento příkaz dvakrát v různých oknech terminálu, abyste měli dvě připojení k vašemu Pi. Potom jednu z nich minimalizujte, aby nepřekážela a nebyla náhodně uzavřena.
Po připojení se zobrazí uvítací zpráva. Výzva zobrazí uživatelské jméno (v tomto případě „pi“) a jméno Pi (v tomto případě „hlídací pes“).
Musíte upravit soubor „sshd_config“. Uděláme to v textovém editoru nano:
sudo nano /etc/ssh/sshd_config
Procházejte soubor, dokud neuvidíte následující řádek:
ChallengeResponseAuthentication no
Nahraďte „ne“ za „ano“.
Stiskněte Ctrl+O pro uložení změn v nano a poté stiskněte Ctrl+X pro zavření souboru. K restartování démona SSH použijte následující příkaz:
sudo systemctl restart ssh
Musíte si nainstalovat Google authenticator, což je a Zásuvný autentizační modul (PAM) knihovna. Aplikace (SSH) zavolá rozhraní PAM systému Linux a rozhraní najde vhodný modul PAM, který obslouží požadovaný typ ověřování.
Zadejte následující:
sudo apt-get install libpam-google-authenticator
Instalace aplikace
Aplikace Google Authenticator je k dispozici pro iPhone a Android, takže stačí nainstalovat příslušnou verzi pro váš mobilní telefon. Můžete také použít Authy a další aplikace, které podporují tento typ ověřovacího kódu.
Konfigurace dvoufaktorové autentizace
V účtu, který budete používat, když se připojíte k Pi přes SSH, spusťte následující příkaz (nezahrnujte předponu sudo):
google-authenticator
Budete dotázáni, zda chcete, aby byly autentizační tokeny založené na čase; stiskněte Y a poté stiskněte Enter.
A Rychlá odezva (QR) kód je vygenerován, ale je zakódován, protože je širší než okno terminálu s 80 sloupci. Přetáhněte okno širší, abyste viděli kód.
Pod QR kódem také uvidíte některé bezpečnostní kódy. Ty se zapisují do souboru nazvaného „.google_authenticator“, ale možná si budete chtít nyní vytvořit jejich kopii. Pokud někdy ztratíte možnost získat TOTP (například pokud ztratíte mobilní telefon), můžete tyto kódy použít k ověření.
Musíte odpovědět na čtyři otázky, z nichž první je:
Do you want me to update your "/home/pi/.google_authenticator" file? (y/n)
Stiskněte Y a poté stiskněte Enter.
Další otázka se ptá, zda chcete zabránit vícenásobnému použití stejného kódu během 30sekundového okna.
Stiskněte Y a poté stiskněte Enter.
Třetí otázka se ptá, zda chcete rozšířit okno přijímání tokenů TOTP.
Jako odpověď na to stiskněte N a poté stiskněte Enter.
Poslední otázka zní: „Chcete povolit omezení rychlosti?“
Zadejte Y a stiskněte Enter.
Vrátíte se do příkazového řádku. V případě potřeby roztáhněte okno terminálu širší a/nebo se v okně terminálu posuňte nahoru, abyste viděli celý QR kód.
Na svém mobilním telefonu otevřete aplikaci pro ověřování a poté stiskněte znaménko plus (+) v pravém dolním rohu obrazovky. Vyberte „Scan a QR Code“ a poté naskenujte QR kód v okně terminálu.
V aplikaci pro ověřování se objeví nová položka pojmenovaná podle názvu hostitele Pi a pod ní bude uveden šestimístný kód TOTP. Pro snadnější čtení se zobrazuje jako dvě skupiny po třech číslicích, ale musíte je zadat jako jedno, šestimístné číslo.
Animovaný kroužek vedle kódu ukazuje, jak dlouho bude kód platný: celý kruh znamená 30 sekund, půlkruh znamená 15 sekund atd.
Propojení všeho dohromady
Máme ještě jeden soubor k úpravě. Musíme SSH sdělit, který ověřovací modul PAM použít:
sudo nano /etc/pam.d/sshd
V horní části souboru zadejte následující řádky:
#2FA auth required pam_google_authenticator.so
Můžete si také vybrat, kdy chcete být požádáni o TOTP:
Po zadání hesla: Napište předchozí řádky níže „@include common-auth“, jak je znázorněno na obrázku výše.
Než budete požádáni o heslo: Napište předchozí řádky výše „@include common-auth“.
Všimněte si podtržítek (_) použitých v „pam_google_authenticator.so“, spíše než pomlček (-), které jsme dříve používali s příkazem apt-get k instalaci modulu.
Stisknutím Ctrl+O zapište změny do souboru a poté stisknutím Ctrl+X zavřete editor. Potřebujeme SSH ještě jednou restartovat a pak máme hotovo:
sudo systemctl restart ssh
Zavřete toto připojení SSH, ale nechte připojení SSH druhé bezpečnostní sítě spuštěné, dokud neověříme tento další krok.
Ujistěte se, že je aplikace pro ověřování na vašem mobilním telefonu otevřená a připravená, a poté otevřete nové připojení SSH k Pi:
ssh [email protected]
Měli byste být požádáni o heslo a poté o kód. Zadejte kód ze svého mobilního telefonu bez mezer mezi čísly. Stejně jako vaše heslo se na obrazovce neozývá.
Pokud vše půjde podle plánu, mělo by vám být umožněno připojení k Pi; pokud ne, použijte připojení k bezpečnostní síti SSH a projděte si předchozí kroky.
Lepší bezpečnější než líto
Všimli jste si „r“ v „bezpečnějším“ výše?
Při připojování k Raspberry Pi jste nyní ve skutečnosti bezpečnější než dříve, ale nikdy není nic 100% bezpečné. Existují způsoby, jak obejít dvoufaktorovou autentizaci. Ty se spoléhají na sociální inženýrství, útoky typu man-in-the-middle a man-at-the-endpoint, výměnu SIM karty a další pokročilé techniky, které zde samozřejmě popisovat nebudeme.
Tak proč se tím vším trápit, když to není dokonalé? No, ze stejného důvodu zamykáte své přední dveře, když odcházíte, i když jsou lidé, kteří umí vybrat zámky – většina ne.