Jak zainstalować i włączyć uwierzytelnianie wieloskładnikowe SSH dla systemów Linux

Jak zainstalować i włączyć uwierzytelnianie wieloskładnikowe SSH dla systemów Linux
Secure Shell (SSH) to popularny protokół używany do zdalnego dostępu do serwerów i systemów Linux. Zapewnia bezpieczne, zaszyfrowane połączenie, które pozwala użytkownikom na zdalne zarządzanie i zarządzanie swoimi systemami.

Jednak użycie tylko nazwy użytkownika i hasła do uzyskania dostępu do SSH może naruszyć twoje systemy na ataki brutalnej siły, zgadywanie haseł i inne zagrożenia bezpieczeństwa. W tym miejscu przydaje się uwierzytelnianie wieloskładnikowe (MFA).

Jest to dodatkowa warstwa bezpieczeństwa, która wymaga od użytkowników zapewnienia dwóch lub więcej form uwierzytelnienia w celu uzyskania dostępu do systemu. Wymagając od użytkowników przedstawienia wielu czynników, MFA może znacznie poprawić bezpieczeństwo dostępu do SSH.

MFA ma kluczowe znaczenie dla systemów obsługujących wrażliwe lub poufne dane, ponieważ pomaga zapobiegać nieautoryzowanemu dostępowi i naruszeniu danych. Wdrażając MFA, możesz znacznie poprawić bezpieczeństwo systemu Linux i lepiej chronić swoje dane i zasoby.

Ten artykuł ilustruje instalację, konfigurowanie i włączanie MFA dla SSH Access w systemach Linux. Zakładamy wymagane kroki w celu skonfigurowania obsługiwanej metody MFA, takiej jak Google Authenticator lub Security Duo, i przetestuj konfigurację dostępu do SSH.

Przygotowanie systemu Linux do MFA

Przed zainstalowaniem i skonfigurowaniem MFA w systemie Linux, upewnienie się, że system jest aktualny i ma zainstalowane niezbędne pakiety, ma kluczowe znaczenie. Zaktualizuj swój system za pomocą następującego narzędzia:

sudo apt aktualizacja && sudo apt uaktualnienie -y

Gdy system jest aktualny, musisz zainstalować pakiet PAM (moduły uwierzytelniania wtyczki), który umożliwia MFA dla SSH.

Instalowanie i konfigurowanie obsługiwanej metody MFA

Dostępnych jest kilka metod MFA dla SSH Access, w tym Google Authenticator, Duo Security i Yubikey. W tej sekcji skupimy się na skonfigurowaniu uwierzytelniacza Google, która jest szeroko stosowaną i łatwą do zorganizowania metody MFA dla SSH.

Oto kroki, aby zainstalować i skonfigurować uwierzytelnik Google dla SSH MFA:

Krok 1: Utwórz nowego użytkownika

Najpierw musisz utworzyć nowego użytkownika do SSH Access. Możesz utworzyć nowego użytkownika, uruchamiając następujący kod:

sudo adduser

Zastępować z odpowiednią nazwą użytkownika, który chcesz utworzyć.

Krok 2: Przełącz się na nowego użytkownika

Następnie przejdź do nowego użytkownika, uruchamiając następujące polecenie:

Su -

Twój system poprosi o wprowadzenie hasła dla nowego użytkownika.

Krok 3: Zainstaluj Google Authenticator

Zainstaluj Google Authenticator za pomocą tego narzędzia:

sudo apt instal libpam-gogole-autenticator -y

Poniżej znajduje się przykładowe dane wyjściowe dla poprzedniego polecenia:

To wyjście pokazuje menedżer pakietów, który jest „apt”, instalując pakiet „LiBPam-Google-Authenticator” i jego zależności, które są „LiBQRenCode4”. Opcja -y automatycznie potwierdza monit instalacyjny. Wynik pokazuje również postęp procesu instalacji, w tym pobieranie i instalowanie pakietów oraz wszelkie dodatkowe miejsce na dysku, które zostanie użyte. Wreszcie pokazuje, że instalacja i wszelkie odpowiednie wyzwalacze do przetwarzania po instalacji są skuteczne.

Krok 4: Wygeneruj nowy tajny klucz

To narzędzie pomoże Ci wygenerować nowy tajny klucz dla użytkownika:

Google-Authenticator

Twój system poprosi o odpowiedź na kilka pytań, w tym następujące:

  • Czy chcesz, aby tokeny uwierzytelniania były oparte na czasie (T/N)? y
  • Czy chcesz, żebym zaktualizował twoje „/dom/yourusername/.Google_authenticator ”(y/n)? y
  • Czy chcesz odrzucić wiele zastosowań tego samego tokena uwierzytelniania? (T/N) y
  • Czy chcesz włączyć ograniczenie stawki? (T/N) y

Możesz zaakceptować wartości domyślne dla większości pytań. Jednak na pytanie ”Czy chcesz, żebym zaktualizował twoje „/dom //.Plik Google_authenticator ”?„Wybierz„ Y ”, aby zaktualizować plik konfiguracyjny.

Poprzedni wiersz poleceń generuje nowy tajny klucz dla użytkownika, który jest używany do tworzenia jednorazowych haseł dla MFA.

Krok 5: Otwórz aplikację uwierzytelniającego na telefonie

Otwórz aplikację Google Authenticator na smartfonie i zeskanuj kod QR, który jest wyświetlany na ekranie. To dodaje nowego użytkownika do aplikacji Google Authenticator.

Krok 6: Edytuj plik konfiguracyjny

Edytuj plik konfiguracyjny SSH, uruchamiając następujące polecenie:

sudo nano/etc/ssh/sshd_config

Dodaj następujący wiersz na końcu pliku:

ChallengerEsponseAuthentication Tak

Ta linia umożliwia uwierzytelnianie odpowiedzi na rzecz SSH.

Krok 7: Edytuj plik konfiguracyjny PAM

To polecenie edytuje plik konfiguracyjny PAM dla SSH:

sudo nano /etc /pam.D/sshd

Dodaj następujący wiersz na końcu pliku, aby wypełnić ten krok:

Wymagane autoryzm PAM_GOOGLE_AUTHENTICATOR.Więc

To narzędzie umożliwia moduł uwierzytelniający Google dla SSH.

Krok 8: Zapisz swoje zmiany

Zapisz zmiany w plikach konfiguracyjnych i uruchom ponownie usługę SSH za pomocą następującego polecenia:

Sudo Service SSH Restart

To polecenie ponownie uruchamia usługę SSH z nową konfiguracją.

Kiedy zalogujesz się do systemu Linux za pomocą SSH, zostaniesz poproszony o hasło jednorazowe, które jest generowane przez aplikację Google Authenticator. Wprowadź jednorazowe hasło, aby ukończyć proces logowania.

Testowanie konfiguracji MFA pod kątem dostępu SSH

Po zainstalowaniu i skonfigurowaniu MFA dla SSH w systemie Linux, ważne jest, aby przetestować konfigurację, aby upewnić się, że działa poprawnie. Oto kroki, aby przetestować konfigurację MFA dla SSH Access:

1. Otwórz nowe okno terminala i połącz się z systemem Linux za pomocą SSH, jak zwykle. Na przykład:

ssh @

Zastąp z dokładną nazwą użytkownika, który utworzyłeś wcześniej i z adresem IP lub nazwą hosta systemu Linux. W takim przypadku używamy Victorii jako nazwy użytkownika. Wyjście wygląda na to, co jest na poniższym rysunku:

W tym przykładzie używamy polecenia SSH, aby zalogować się na zdalnym komputerze z adresem IP 192.168.1.100 Jako użytkownik „Victoria”. Polecenie wynika z potwierdzenia autentyczności hosta zdalnego, a następnie prosi o hasło dla użytkownika „Victoria”. Po uwierzytelnieniu zostajemy powitani montorem powłoki na zdalnym komputerze, co wskazuje, że pomyślnie ustanowiliśmy sesję SSH.

2. Wprowadź hasło dla użytkownika po montażu.

3. Po wprowadzeniu hasła powinieneś zostać poproszony o jednorazowe hasło z aplikacji MFA. Otwórz aplikację Google Authenticator na smartfonie i wprowadź kod odpowiadający użytkownikowi, który utworzyłeś wcześniej.

4. Jeśli jednorazowe hasło jest poprawne, należy zalogować się do systemu Linux. Jeśli hasło jest nieprawidłowe, zostaniesz poproszony o wprowadzenie innego kodu z aplikacji MFA.

5. Po pomyślnym zalogowaniu możesz sprawdzić, czy MFA działa poprawnie, sprawdzając dzienniki SSH. Uruchom to narzędzie, aby wyświetlić dzienniki:

sudo ogon -f/var/log/auth.dziennik

Poprzednie polecenie wyświetla dzienniki uwierzytelniania SSH w czasie rzeczywistym w czasie rzeczywistym.

Poszukaj wiersza w dzienniku z napisem „Zaakceptowany klejek”, a następnie „zaakceptowana klawiatura interaktywna/PAM”.

17 kwietnia 10:45:24 Server SSHD [2998]: Zaakceptowany KLEY PUBLICKE DLA VICTORIA od 192.168.0.2 port 57362 SSH2: RSA SHA256: XXXXXXXXXXXXXXXXXXXXX
17 kwietnia 10:45:27 serwer SSHD [2998]: Zaakceptowana klawiatura-interaktywna/PAM dla Victoria z 192.168.0.2 port 57362 SSH2

Na przykład:

Pierwsze dwa wiersze pokazują, że użytkownik „Victoria” jest z powodzeniem uwierzytelniany za pomocą klawisza publicznego i metod interaktywnych klawiatury z adresu IP 192.168.0.2.

Jeśli wszystko działa poprawnie, możesz zalogować się do systemu Linux za pomocą SSH z włączoną MSZ.

Wniosek

Wdrożenie uwierzytelniania wieloskładnikowego (MFA) dla SSH Access w systemie Linux może znacznie zwiększyć bezpieczeństwo systemu, dodając dodatkową warstwę uwierzytelniania. Wymagając od użytkowników podania jednorazowego hasła oprócz zwykłego hasła, MFA znacznie utrudnia atakom dostęp do systemu.