# Dwuetapowa weryfikacja dostępu do Wirtualnej Maszyny

Wielu usług internetowych wciąż wykorzystuje logowania wyłącznie z wykorzystaniem nazwy użytkownika i hasła. Jednak takie podejście nie jest wystarczające bezpieczne w dzisiejszym świecie, w którym co dzień zdarzają się ataki szkodliwego oprogramowania powodujące kradzież haseł lub kluczy.

W trosce o bezpieczeństwo zdalnego dostępu do Wirtualnych Maszyn przedstawiamy jak wprowadzić mechanizm, który dodaje dodatkową warstwę ochrony konta użytkownika uzyskującego dostęp - weryfikacje dwuetapową.

Dwuetapowa weryfikacja jest jak posiadanie drugiego zamka w drzwiach. Po jej włączeniu, gdy użytkownik uzyskuje dostęp do serwera, zostanie wpierw poproszony o podanie pierwszego czynnika np. hasła (dowód, że Użytkownik coś zna), a następnie o drugi czynnik - jednorazowy kod z urządzenia skojarzonego z użytkownikiem (dowód, że coś Użytkownik posiada). Kod jednorazowy ulega nieustannej zmianie co 30 sekund, więc jest odporny na kradzież. Te liczne czynniki zwiększają bezpieczeństwo zarządzanych Wirtualnych Maszyn.

Dzięki dwuetapowej weryfikacji można powstrzymać intruzów, nawet jeśli przechwycą hasło lub klucz SSH na przykład poprzez infekcję komputera. Jest to istotne, gdyż gdy ktoś ukradnie hasło, może zazwyczaj dowolnie modyfikować konfiguracje serwera, a przede wszystkim wykraść dane z niego narażając Organizacje na poważne szkody. Po wprowadzeniu dwuetapowej weryfikacji inruz, aby dostać się do Wirtualnej Maszyny, będzie potrzebował nie tylko hasła, ale jeszcze dostępu do telefonu Użytkownika.

W celu uchronienia się przed tym można wykorzystać dwuetapową weryfikację. Wystarczy odpowiednia konfiguracja przez administratora systemu operacyjnego, a następnie konfiguracja przez użytkowników odpowiedniej aplikacji na urządzeniu mobilnym, takim jak tablet lub smartfon.

W przypadku dostępu do Platformy także można w prosty sposób włączyć weryfikacje dwuetapową dla swojego konta Użytkownika, aby chronić zarządzane Zasoby przed nieuprawnioną modyfikacją.

# Wymagania wstępne

# Przygotowanie serwera serwera

# Instalacja libpam-google-authenticator

Uaktualnij indeks pakietów w repozytoriach:

apt-get update

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

Zainstaluj wymagane pakiety wykonując następujące polecenie:

apt-get install libpam-google-authenticator

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

# Konfiguracja konta użytkownika

# Skojarzenie aplikacji wspierającej dwuetapową weryfikacje

Wykonaj następujące polecenie:

google-authenticator

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

Postępuj zgodnie z instrukcjami wyświetlonymi na ekranie po wykonaniu polecenia. Zostanie wyświetlony kod QR, który należy zapisać w aplikacji wspierającej dwuetapową weryfikacje. Operacje należy powtórzyć dla każdego użytkownika indywidualnie.

# Konfiguracja PAM

# Konfiguracja opcjonalnej dwuetapowej weryfikacji

Otwórz do edycji plik /etc/pam.d/common-auth wykonując następujące polecenie:

sudo nano /etc/pam.d/common-auth

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

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

auth   required  /usr/local/lib/pam_google_authenticator.so nullok

# Wymuszenie dwuetapowej weryfikacji

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

auth   required  /usr/local/lib/pam_google_authenticator.so

Zapisz wprowadzone zmiany i zamknij edytor.

Zmiana określa metody uwierzytelniania interaktywnego np. w graficznej konsoli Wirtualnej Maszyny, które należy pomyślnie ukończyć, aby użytkownik uzyskał dostęp.

# Konfiguracja serwera SSH

# Określ metody uwierzytelniania dla dostępu SSH

Otwórz do edycji plik /etc/ssh/sshd_config/ wykonując następujące polecenie:

sudo nano /etc/ssh/sshd_config/

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

Odszukaj wiersz pasujący do wzorca AuthenticationMethods .* i zastąp go następującym:

AuthenticationMethods publickey,keyboard-interactive

Zapisz wprowadzone zmiany i zamknij edytor.

# Przeładuj serwer SSH

W celu przeładowania usługi wykonaj następujące polecenie:

sudo systemctl reload sshd

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

Od tego momentu do logowania wymagane jest wykorzystanie klucza SSH, hasła oraz jednorazowego kodu.

# Umożliwienie logowanie kluczem SSH i jednorazowym kodem

W celu zniesienia wymogu podania hasła w przypadku dostępu poprzez SSH należy pominąć pam_unix.so jako wymaganą forma uwierzytelniania dla SSH.

# Zdefiniowanie form uwierzytelniania dla SSH

Utwórz nowy plik konfiguracyjny:

sudo nano /etc/pam.d/auth-sshd

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

Wklej poniższą zawartość:

auth    required                        pam_google_authenticator.so
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
auth    optional                        pam_cap.so

Otwórz do edycji plik /etc/pam.d/sshd wykonując następujące polecenie:

sudo nano /etc/pam.d/sshd

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

Odszukaj wiersz pasujący do wzorca @include common-auth i zastąp go następującym:

@include auth-sshd

Zapisz wprowadzone zmiany i zamknij edytor.

# Przeładuj serwer SSH

W celu przeładowania usługi wykonaj następujące polecenie:

sudo systemctl reload sshd

Możesz zapoznać się z objaśnieniem polecenia na explainshell.com (opens new window).

Czy uważasz ten artykuł za przydatny? Tak Nie