Główna » jak » Jak zabezpieczyć SSH za pomocą uwierzytelniania dwuetapowego Google Authenticator

    Jak zabezpieczyć SSH za pomocą uwierzytelniania dwuetapowego Google Authenticator

    Chcesz zabezpieczyć swój serwer SSH za pomocą łatwego w użyciu uwierzytelniania dwuskładnikowego? Google dostarcza niezbędne oprogramowanie do zintegrowania systemu jednorazowych haseł Google Authenticator (TOTP) z serwerem SSH. Będziesz musiał wprowadzić kod z telefonu po podłączeniu.

    Google Authenticator nie "kontaktuje się z Google" z Google - cała praca odbywa się na serwerze SSH i telefonie. W rzeczywistości Google Authenticator jest całkowicie open-source, więc możesz nawet samemu sprawdzić jego kod źródłowy.

    Zainstaluj Google Authenticator

    Aby zaimplementować uwierzytelnianie wieloczynnikowe w Google Authenticator, potrzebujemy modułu PAM z oprogramowaniem Google Authenticator o otwartym kodzie źródłowym. PAM oznacza "pluggable authentication module" - jest to sposób na łatwe podłączanie różnych form uwierzytelniania do systemu Linux.

    Repozytoria oprogramowania Ubuntu zawierają łatwy do zainstalowania pakiet dla modułu PAM Google Authenticator. Jeśli twoja dystrybucja Linuksa nie zawiera pakietu do tego, musisz pobrać ją ze strony Google Authenticator do pobrania na Google Code i skompilować ją samodzielnie.

    Aby zainstalować pakiet w systemie Ubuntu, uruchom następujące polecenie:

    sudo apt-get install libpam-google-authenticator

    (To tylko zainstaluje moduł PAM w naszym systemie - będziemy musieli ręcznie aktywować logowanie SSH.)

    Utwórz klucz uwierzytelniający

    Zaloguj się jako użytkownik, z którego będziesz logować się zdalnie i uruchom google-authenticator polecenie, aby utworzyć tajny klucz dla tego użytkownika.

    Zezwól na aktualizację pliku Google Authenticator, wpisując y. Zostaniesz poproszony o kilka pytań, które pozwolą ci ograniczyć użycie tego samego tymczasowego tokena zabezpieczającego, zwiększyć okno czasowe, w którym mogą zostać użyte tokeny i ograniczyć dozwolone próby dostępu, aby powstrzymać próby łamania brutalnych sił. Wszystkie te opcje wymieniają pewne zabezpieczenia na łatwość użycia.

    Google Authenticator przedstawi tajny klucz i kilka "awaryjnych kodów zdrapek". Zapisz awaryjne kody zdrapek w bezpiecznym miejscu - można ich używać tylko jeden raz i są one przeznaczone do użycia, jeśli zgubisz telefon.

    Wprowadź tajny klucz w aplikacji Google Authenticator na swoim telefonie (oficjalne aplikacje są dostępne na Androida, iOS i Blackberry). Możesz także skorzystać z funkcji skanowania kodów kreskowych - przejdź do adresu URL znajdującego się w górnej części polecenia i możesz zeskanować kod QR za pomocą aparatu w telefonie.

    Będziesz mieć ciągle zmieniający się kod weryfikacyjny na swoim telefonie.

    Jeśli chcesz zalogować się zdalnie jako wielu użytkowników, uruchom to polecenie dla każdego użytkownika. Każdy użytkownik będzie miał swój tajny klucz i własne kody.

    Aktywuj Google Authenticator

    Następnie będziesz potrzebować Google Authenticator do logowania do SSH. Aby to zrobić, otwórz /etc/pam.d/sshd plik w systemie (na przykład z sudo nano /etc/pam.d/sshd polecenie) i dodaj następujący wiersz do pliku:

    auth wymagany pam_google_authenticator.so

    Następnie otwórz / etc / ssh / sshd_config plik, znajdź ChallengeResponseAuthentication linię i zmień ją tak, aby brzmiała następująco:

    ChallengeResponseAuthentication yes

    (Jeśli ChallengeResponseAuthentication linia jeszcze nie istnieje, dodaj powyższą linię do pliku.)

    Na koniec zrestartuj serwer SSH, aby zmiany zaczęły obowiązywać:

    sudo service ssh restart

    Zostaniesz poproszony o podanie zarówno hasła, jak i kodu Google Authenticator przy próbie zalogowania się przez SSH.