Do czego może przydać się 2FA(Uwierzytelnianie dwuskładnikowe) w systemie Debian 10?

Print Friendly, PDF & Email

2FA (Two-Factor Authentication, Uwierzytelnianie dwuskładnikowe), czyli wzmocnienie bezpieczeństwa w dostępie do wszelakiego rodzaju kont, może posłużyć również w zabezpieczeniu konta użytkownika w systemie Debian 10 (ale nie tylko). Dlatego też chciałbym przedstawić na przykładzie tego systemu konfigurację 2FA.

Sam 2FA sprowadza się do instalacji Google Auth oraz konfiguracji systemu dokładnie SSH oraz PAM, czyli modułów w systemie GNU/Linux, które odpowiadają za bezpieczeństwo i dostęp do pewnych jego elementów.

Od czego zacząć konfiguracje 2FA?

Konfigurację 2FA należy rozpocząć od testów, nie radzę od razu stosowania tej konfiguracji na serwerach produkcyjnych. Jeżeli konfiguracja została poprawnie przeprowadzona, dostęp do fizycznego serwera nadal będzie odbywał się dokładnie tak samo jak do tej pory, wygenerowany kod będzie potrzebny tylko w przypadku podłączeń po SSH.

2FA działa per konto, więc na każdym koncie należy dokonać takiej samej konfiguracji, jeżeli zachodzi taka konieczność.

Istotną rzeczą jest również ustawienie poprawnej strefy czasowej w systemie. Chodzi o poprawną synchronizację czasu systemowego oraz czasu w aplikacji Google Auth.

Czego potrzebujesz?

  • Maszyna z zainstalowanym Debian 10 lub tożsamym systemem Ubuntu.
  • Aplikacja na telefonie/tablecie Google Authenticator, którą można pobrać z Google Play lub Apple Store.
Google Authenticator
  • Putty do zdalnego połączenia z maszyną.
  • Zainstalowaną usługę SSH na serwerze – na Debian 10 można ją dodać w trakcie instalacji czystego systemu.
  • Poprawnie skonfigurowaną strefę czasową, dla Ciebie zapewne Europe/Warsaw.

Krok 1. Instalacja Google Auth na serwerze

następnie należy uruchomić aplikację

Uruchomienie konfiguracji 2FA

Krok 2. Tworzenie tokenu opartego o czas

Pierwszym pytaniem będzie tworzenie tokenu opartego o czas, który potwierdzamy przez y.

Tworzenie tokenu opartego o czas

Krok 3. Wygenerowanie kodu QR do zeskanowania (który nie działa :)).

Niestety pracując poprzez Putty, kodu QR nie uda się zeskanować:(, jednak można obejść ten problem. Jeżeli pracujesz bezpośrednio na maszynie kod QR będzie można zeskanować.

Kod QR

Powyżej fragment tego kodu i kilka ważnych rzeczy.

  • Your new secret key is: xxxxxxxxxxxxxxxxxxxxxxxx – jest to dokładna zawartość QR, którą należy dodać do aplikacji Google Auth.
  • Pozostałe kody, w tym emergency należy zachować w bezpiecznym miejscu. Pozwolą na dostęp gdyby coś stało się z aplikację Google Auth.

Krok 4. Dodanie secret key do Google Auth

  • Uruchamiamy aplikację na urządzeniu mobilnym Authenticator.
  • Klikamy znak + w prawym dolnym rogu.
  • Wybieramy – wpisz klucz konfiguracyjny, czyli nasz secret key (praca przez Putty).
  • Jeżeli pracujesz bezpośrednio na maszynie (nawet w terminalu) wystarczy wybrać Zeskanuj kod QR. Uruchomi się aparat i kod będzie można zeskanować. Po jego zeskanowaniu pojawi się wpis na liście w aplikacji, który będzie generował co 30s nowe kody dostępu. Pozostałe kroki w tym przypadku nie będą konieczne do wykonania.
  • Wpisz dowolną nazwę w pole Nazwa konta, która opisuje do czego generowany będzie ten kod.
  • W pole Twój klucz bezpieczeństwa należy wpisać secret key.
  • Typ klucza zostawiamy domyślny, czyli Według kryterium czasu.

Na liście pojawi się nowy wpis z kodem, który będzie restartował się do 30s, z podaną własną nazwą lub w przypadku skanowania kodu QR jako 2FA(nazwa_konta@2FA).

Krok 5. Dokończenie konfiguracji Google Auth w systemie Debian.

Na każde polecenie do końca konfiguracji należy odpowiedzieć y

Nadpisanie pliku Google Auth
Wymuszenie zmiany hasła co 30s
Zabezpieczenie przed różnicą czasu serwer <-> aplikacja
Zabezpieczenie przed atakiem brute force

Krok 6. Konfiguracja 2FA – logowanie hasłem

6.1 Konfiguracja SSH

Konieczne jest dokonanie kilku konfiguracji w SSH oraz PAM.

przy pomocy Ctrl+W (jeżeli korzystasz z nano) musisz odnaleźć dwie opcje

obydwie muszą docelowo wyglądać jak powyżej, czyli wartości ustawione na yes .

Dodatkowo jeżeli chcesz zezwolić na logowanie użytkownika root po SSH, należy zmienić w konfiguracji SSH jeszcze jeden parametr, ponownie na yes

domyślnie root nie ma możliwości logowania się poprzez SSH w przypadku Debian 10.

Zapisujemy zmiany i wychodzimy z pliku – Ctrl+O oraz Ctrl+X.

6.2 Kolejnym krokiem będzie konfiguracja PAM dla SSH.

Dodamy kilka ustawień do pliku PAM dla SSH.

na początku musimy dodać dwa wiersze

które będą odpowiednio kierować uprawnieniami do logowania, czyli pozwolą na włączenie 2FA od Google Auth.

Tak powinien wyglądać plik konfiguracyjny po zmianach.

Konfiguracja PAM dla SSH

Zapisujemy jego zawartość i wychodzimy z niego.

Na koniec należ wykonać restart usługi SSH.

Jeżeli wszystko poszło zgodnie z planem, przy kolejnym logowaniu poprzez SSH pojawi się nowa opcja.

Logowanie po włączeniu 2FA

Po wpisaniu wygenerowanego kodu z aplikacji Google Auth użytkownik zostanie wpuszczony do systemu.

Krok 7. Konfiguracja 2FA – logowanie kluczem.

Co jeżeli logowanie odbywa się przy pomocy wygenerowanej pary kluczy (prywatny, publiczny)?

Konieczne jest zmodyfikowanie konfiguracji SSH. Poza konfiguracją z punktu 6.1 do pliku konfiguracyjnego SSH należy dodać na końcu jeszcze jeden parametr, edytujemy plik sshd_config

dzięki czemu SSH będzie używać klucza a nie hasła do logowania.

Kolejne zmiany dotyczą pliki sshd dla PAM.

tym razem konfiguracja sprowadzi się do dodania dwóch wierszy oraz wyłączenia jednego.

Komentujemy

oraz dodajemy

Ostateczny widok tego pliku powinien wyglądać dokładnie tak

Konfiguracja PAM logowanie po kluczu

Na koniec należy ponownie uruchomić usługę SSH.

Krok 8. Wyłączenie 2FA

Zaczynamy od

należy usunąć lub zakomentować poniższy wiersz

oraz usunąć komentarz jeżeli taki był założony na

zapisujemy i zamykamy ten plik. W tym samym czasie otwieramy

z wiersza

musimy usunąć

ostatecznie wiersz będzie wyglądał

zapisujemy plik i wychodzimy z niego. Na koniec wymagany jest restart SSH

Podsumowanie

Mam nadzieję, że informacje zawarte w tym wpisie przydadzą się do podniesienia bezpieczeństwa na warażliwych kontach Twoich serwerów.


Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT