Jak dodać zabezpieczenia MFA za pośrednictwem terminala Raspberry Pi

Raspberry Pi to popularny komputer jednopłytkowy, który stał się modny w ostatnich latach. Ze względu na rosnącą popularność i powszechne wykorzystanie wśród początkujących programistów i entuzjastów technologii, stał się celem cyberprzestępców, aby robić to, co lubią robić najlepiej: cyber kradzież. Podobnie jak w przypadku zwykłych urządzeń PC, które chronimy za pomocą wielu zapór i haseł, coraz ważniejsza staje się ochrona urządzenia Raspberry Pi za pomocą podobnej wielopłaszczyznowej ochrony.



Raspberry Pi

Uwierzytelnianie wieloskładnikowe polega na połączeniu dwóch lub więcej z poniższych elementów, aby zapewnić dostęp do konta lub urządzenia. Trzy szerokie kategorie, z których można udostępniać informacje o przyznaniu dostępu, to: coś, co znasz, coś, co masz i kim jesteś. Pierwsza kategoria może być hasłem lub kodem PIN skonfigurowanym dla Twojego konta lub urządzenia. Jako dodatkową warstwę ochrony może być wymagane dostarczenie czegoś z drugiej kategorii, na przykład wygenerowanego przez system kodu PIN, który jest wysyłany do smartfona lub generowany na innym posiadanym urządzeniu. Jako trzecią alternatywę możesz również włączyć coś z trzeciej kategorii, obejmującej klucze fizyczne, takie jak identyfikacja biometryczna, która obejmuje rozpoznawanie twarzy, odcisk kciuka i skan siatkówki, w zależności od zdolności twojego urządzenia do wykonywania tych skanów.



Na potrzeby tej konfiguracji użyjemy dwóch najpopularniejszych trybów uwierzytelniania: Twojego ustawionego hasła i jednorazowego tokena wygenerowanego za pośrednictwem smartfona. Zintegrujemy oba etapy z Google i otrzymamy Twoje hasło za pośrednictwem aplikacji uwierzytelniającej Google (która zastępuje odbieranie kodów SMS na telefon komórkowy).



Krok 1: pobierz aplikację Google Authenticator

Aplikacja Google Authenticator w sklepie Google Play.



Zanim zaczniemy konfigurować Twoje urządzenie, pobierz i zainstaluj aplikację Google Authenticator na Twoim smartfonie. Wejdź do sklepu Apple App Store, sklepu Google Play lub odpowiedniego sklepu dowolnego urządzenia, z którego korzystasz. Pobierz aplikację uwierzytelniającą Google i poczekaj, aż zakończy się instalacja. Można również korzystać z innych aplikacji uwierzytelniających, takich jak program uwierzytelniający firmy Microsoft, ale w naszym samouczku będziemy korzystać z aplikacji Google do uwierzytelniania.

Krok 2: Konfiguracja połączeń SSH

Urządzenia Raspberry Pi normalnie działają na SSH i będziemy pracować nad konfiguracją naszego uwierzytelniania wieloskładnikowego przez SSH. Utworzymy dwa połączenia SSH, aby to zrobić z następującego powodu: nie chcemy, abyś został zablokowany na swoim urządzeniu, aw przypadku, gdy zostaniesz zablokowany w jednym strumieniu, drugi da ci kolejną szansę na powrót To jest tylko siatka bezpieczeństwa, którą zakładamy ze względu na Ciebie: użytkownika będącego właścicielem urządzenia. Będziemy utrzymywać drugi strumień sieci bezpieczeństwa przez cały proces konfiguracji, aż do zakończenia całej konfiguracji i upewnimy się, że uwierzytelnianie wieloskładnikowe działa poprawnie. Jeśli starannie i ostrożnie wykonasz poniższe kroki, skonfigurowanie uwierzytelniania nie powinno być żadnych problemów.

Interfejs Raspberry Pi.



Uruchom dwa okna terminala i wpisz w każdym następujące polecenie. Ma to na celu ustawienie dwóch strumieni równolegle.

ssh username@piname.local

Zamiast nazwy użytkownika wpisz nazwę użytkownika swojego urządzenia. Zamiast nazwy pi wpisz nazwę swojego urządzenia pi.

Po naciśnięciu klawisza Enter w obu oknach terminala powinna pojawić się wiadomość powitalna z nazwą urządzenia i nazwą użytkownika.

Następnie edytujemy plik sshd_config. Aby to zrobić, wpisz następujące polecenie w każdym oknie. Pamiętaj, aby wszystkie kroki z tej sekcji wykonywać równolegle w obu oknach.

sudo nano / etc / ssh / sshd_config

Przewiń w dół i znajdź tam, gdzie jest napisane: ChallengeResponseAuthentication no

Zmień „nie” na „tak”, wpisując to w odpowiednim miejscu. Zapisz zmiany, naciskając [Ctrl] + [O], a następnie zamknij okno, naciskając [Ctrl] + [X]. Ponownie zrób to dla obu okien.

Uruchom ponownie terminale i wpisz w każdym z nich następujące polecenie, aby zrestartować demona SSH:

sudo systemctl zrestartuj ssh

W końcu. Zainstaluj aplikację Google Authenticator w swojej konfiguracji, aby zintegrować z nią swój system. Aby to zrobić, wpisz następujące polecenie:

sudo apt-get install libpam-google-uwierzytelniacz

Twoje strumienie zostały skonfigurowane i do tego momentu skonfigurowałeś swój Google Authenticator zarówno na swoim urządzeniu, jak i na smartfonie.

Krok 3: Integracja uwierzytelniania wieloskładnikowego z aplikacją Google Authenticator

  1. Uruchom swoje konto i wpisz następujące polecenie: Google-Authenticator
  2. Wpisz „Y” dla tokenów czasowych
  3. Wyciągnij okno, aby zobaczyć cały wygenerowany kod QR i zeskanuj go na swoim smartfonie. Umożliwi to sparowanie usługi uwierzytelniania Raspberry Pi z aplikacją na smartfony.
  4. Pod kodem QR pojawią się kody zapasowe. Zanotuj je lub zrób im zdjęcie, aby zachować je w rezerwie na wypadek, gdybyś nie mógł zweryfikować swojego uwierzytelniania wieloskładnikowego za pomocą aplikacji Google Authenticator i potrzebowałby kodu zapasowego, aby się dostać. stracić ich.
  5. Zostaniesz poproszony o cztery pytania. Oto, jak musisz na nie odpowiedzieć, wpisując „T” dla tak lub „N” dla nie. (Uwaga: poniższe pytania są cytowane bezpośrednio z terminala cyfrowego Raspberry Pi, dzięki czemu dokładnie wiesz, z jakimi pytaniami będziesz się mierzyć i jak na nie odpowiedzieć).

    Aplikacja na smartfony Google Authenticator na iOS. Konta zostały zamazane ze względów bezpieczeństwa, a cyfry kodu bezpieczeństwa zostały przetasowane i zmienione.

    • „Czy mam zaktualizować Twój plik„ /home/pi/.google_authenticator ”?” (t / n): Wpisz „Y”
    • „Czy chcesz zabronić wielokrotnego używania tego samego tokena uwierzytelniania? To ogranicza cię do jednego logowania co 30 sekund, ale zwiększa twoje szanse na zauważenie lub nawet zapobieżenie atakom typu man-in-the-middle (t / n): ” Wpisz „Y”
    • „Domyślnie nowy token jest generowany co 30 sekund przez aplikację mobilną. Aby skompensować ewentualne przesunięcie czasu między klientem a serwerem, zezwalamy na dodatkowy token przed i po bieżącym czasie. Pozwala to na przesunięcie czasu do 30 sekund między serwerem uwierzytelniania a klientem. Jeśli masz problemy ze słabą synchronizacją czasu, możesz zwiększyć okno z domyślnego rozmiaru 3 dozwolonych kodów (jeden poprzedni kod, jeden bieżący kod, następny kod) do 17 dozwolonych kodów (8 poprzednich kodów, jeden bieżący kod, kolejnych 8 kodów). Pozwoli to na przesunięcie czasu do 4 minut między klientem a serwerem. Chcesz to zrobić? (t / n): ” Wpisz „N”
    • „Jeśli komputer, do którego się logujesz, nie jest zabezpieczony przed próbami logowania brutalnej siły, możesz włączyć ograniczenie szybkości dla modułu uwierzytelniania. Domyślnie ogranicza to napastników do nie więcej niż 3 prób logowania co 30 sekund. Czy chcesz włączyć ograniczanie prędkości? (t / n): ” Wpisz „Y”
  6. Teraz uruchom aplikację Google Authenticator na swoim smartfonie i naciśnij ikonę plusa u góry ekranu. Zeskanuj kod QR wyświetlany na urządzeniu Pi, aby sparować oba urządzenia. Będziesz teraz wyświetlany z kodami uwierzytelniającymi przez całą dobę, ilekroć będziesz ich potrzebować do logowania. Nie musisz generować kodu. Możesz po prostu uruchomić aplikację i wpisać tę, która jest wyświetlana w tym momencie.

Krok 4: Konfiguracja modułu uwierzytelniania PAM za pomocą twojego SSH

Uruchom terminal i wpisz następujące polecenie: sudo nano /etc/pam.d/sshd

Wpisz następujące polecenie, jak pokazano:

Wymagane uwierzytelnianie # 2FA pam_google_authenticator.so

Jeśli chcesz, aby przed wprowadzeniem hasła pojawiła się prośba o podanie klucza dostępu przez aplikację Google Authenticator, wpisz następujące polecenie przed wpisanym wcześniej poleceniem:

@include common-auth

Jeśli chcesz, aby po wprowadzeniu hasła pojawiła się prośba o podanie klucza, wpisz to samo polecenie, z wyjątkiem wpisania go po poprzednim zestawie poleceń # 2FA. Zapisz zmiany, naciskając [Ctrl] + [O], a następnie zamknij okno, naciskając [Ctrl] + [X].

Krok 5: Zamknij równoległy strumień SSH

Po zakończeniu konfigurowania uwierzytelniania wieloskładnikowego możesz zamknąć jeden z równoległych strumieni, które mieliśmy. Aby to zrobić, wpisz następujące polecenie:

sudo systemctl zrestartuj ssh

Twój drugi zapasowy strumień sieci bezpieczeństwa nadal działa. Będziesz działać, dopóki nie upewnisz się, że uwierzytelnianie wieloskładnikowe działa poprawnie. Aby to zrobić, uruchom nowe połączenie SSH, wpisując:

ssh username@piname.local

Zamiast nazwy użytkownika wpisz nazwę użytkownika swojego urządzenia. Zamiast nazwy pi wpisz nazwę swojego urządzenia pi.

Procedura logowania zostanie teraz przeprowadzona. Wpisz swoje hasło, a następnie wprowadź kod wyświetlony w aplikacji Google Authenticator w tym momencie. Uważaj, aby wykonać oba kroki w trzydzieści sekund. Jeśli jesteś w stanie zalogować się pomyślnie, możesz wrócić i powtórzyć poprzedni krok, aby zamknąć równoległy strumień sieci bezpieczeństwa, który uruchomiliśmy w miejscu. Jeśli poprawnie wykonałeś wszystkie kroki, powinieneś być w stanie wznowić z uwierzytelnianiem wieloskładnikowym na swoim urządzeniu Raspberry Pi.

Słowa końcowe

Podobnie jak w przypadku każdego procesu uwierzytelniania stosowanego na dowolnym urządzeniu lub koncie, te dodatkowe czynniki sprawiają, że jest on bezpieczniejszy niż wcześniej, ale nie czyni go całkowicie bezpiecznym. Zachowaj ostrożność podczas korzystania z urządzenia. Uważaj na potencjalne oszustwa, ataki phishingowe i kradzież w sieci, na które może stać się Twoje urządzenie. Chroń swoje drugie urządzenie, na którym skonfigurowałeś proces pobierania kodu, i chroń je również. Będziesz potrzebował tego urządzenia za każdym razem, aby wrócić do systemu. Przechowuj kody zapasowe w znanym i bezpiecznym miejscu na wypadek, gdybyś kiedykolwiek znalazł się w sytuacji, w której nie masz dostępu do zapasowego urządzenia smartfona.