jak skonfigurować uwierzytelnianie dwuskładnikowe w systemie Ubuntu dla użytkowników Ubuntu korzystających z uwierzytelniacza Google?

Odpowiedzi:

16

Uwaga: Po aktywowaniu uwierzytelniania 2-czynnikowego dla użytkownika i nie ustawieniu tego samego dla użytkownika root nigdy nie będzie można zalogować się bezpośrednio jako użytkownik root. W takim przypadku rozwiązaniem jest użycie dowolnego innego użytkownika sudo, dla którego mamy go skonfigurowanego, a następnie sudo su -przełączenie na użytkownika root.


Wykonaj poniższe czynności, aby go skonfigurować.

  1. Zainstaluj poniżej podanego pakietu, aby zainstalować Google uwierzytelniacza, którego będziemy używać jako dodatku do uwierzytelniania PAM:

    sudo apt-get install libpam-google-authenticator
    
  2. Teraz edytuj /etc/pam.d/sshdten plik i dodaj Google Authenticator, jak podano poniżej:

    *sudo vim /etc/pam.d/sshd
    

    wpisz poniżej u góry ten plik

    auth required pam_google_authenticator.so
    
  3. Tutaj musimy wprowadzić zmiany, /etc/ssh/sshd_configaby upewnić się, że ssh używa Google Authenticator, w ten sposób upewniamy się, że ssh używa uwierzytelniania dwuskładnikowego.

    vim /etc/ssh/sshd_config
    

    W tym pliku musimy go znaleźć ChallengeResponseAuthenticationi odkomentować i / lub zmodyfikować, aby wyglądał jak poniżej (w skrócie ustaw na tak: P):

    ChallengeResponseAuthentication yes
    

    Uwierzytelnianie dodatkowe lub 2-czynnikowe GUI, pomiń to i przejdź do kroku 4: Aby włączyć logowanie GUI, edytuj /etc/pam.d/common-auth:

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

    i teraz dodaj to auth required pam_google_authenticator.sopowyżej linii, auth [success=1 default=ignore] pam_unix.so nullok_securea następnie zapisz plik.

  4. Teraz przejdź do konta, na którym chcesz je skonfigurować.
    ( Uwaga: sugerowałbym utworzenie co najmniej dwóch kont superużytkowników w systemie oprócz konta root i skonfigurowanie go przynajmniej dla jednego z nich, ale nie konta root.)

    sudo su - testuser1
    
  5. Teraz użyjemy poniższego polecenia, aby skonfigurować uwierzytelnianie dwuskładnikowe testuser1:

    google-authenticator
    
  6. Uruchomienie tego polecenia spowoduje wyświetlenie poniższego pytania. (zalecana odpowiedź to Tak)

    Czy chcesz, aby tokeny uwierzytelniające były oparte na czasie (t / n) y

  7. Następnie pokaże Ci kod QR i awaryjne kody zdrapek oraz kilka innych szczegółów. Wyjście powinno wyglądać tak, jak pokazano poniżej:

    wprowadź opis zdjęcia tutaj

  8. Teraz musisz użyć telefonu z Androidem / Apple / Blackberry, aby pobrać i zainstalować aplikację Google Authenticator z odpowiednich rynków, na przykład sklepu Google Play. który wygeneruje kod do zalogowania.

    Poniżej znajduje się zrzut ekranu ikony aplikacji i aplikacji pobranych z aplikacji na telefon z Androidem.

    wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

  9. Uruchom aplikację na telefonie i zeskanuj kod QR, albo użyj tajnego klucza i kodu weryfikacyjnego podanego poniżej kodu QR w systemie, który możesz również zobaczyć na pierwszym zrzucie ekranu powyżej.

  10. Po wykonaniu wszystkich tych czynności bardzo ważne jest, aby zanotować i zapisać awaryjne kody zdrapek w bezpiecznym miejscu, ponieważ są to kody, które mogą Ci pomóc w przypadku, gdy zostaniesz jakoś zablokowany.

  11. W tym momencie powinieneś spojrzeć na dolną część ekranu, na której znajduje się poniższe pytanie. (zalecana odpowiedź to Tak):

    Czy chcesz, żebym zaktualizował Twój plik „/home/testuser1/.google_authenticator” (t / n) y

  12. Ponownie zada Ci jeszcze jedno pytanie, a zalecana odpowiedź na poniższe pytanie to również Tak:

    Czy chcesz zabronić wielokrotnego użycia tego samego tokena uwierzytelniającego? Ogranicza to do jednego logowania co około 30s, ale zwiększa twoje szanse na zauważenie lub nawet zapobieganie atakom typu man-in-the-middle (r / n) y

  13. Następne pytanie byłoby takie, jak podano poniżej, a zalecaną odpowiedzią na to pytanie jest:

    Domyślnie tokeny działają przez 30 sekund. Aby zrekompensować ewentualne przesunięcie czasowe między klientem a serwerem, pozwalamy na dodatkowy token przed bieżącym czasem i po nim. Jeśli wystąpią problemy ze słabą synchronizacją czasu, możesz zwiększyć okno z domyślnego rozmiaru 1: 30min do około 4min. Czy chcesz to zrobić (t / n) n

  14. Ostatnie pytanie byłoby takie, jak podano poniżej i zalecana odpowiedź brzmi: tak:

    Jeśli komputer, na który się logujesz, nie jest zabezpieczony przed próbami zalogowania się metodą brute-force, możesz włączyć ograniczenie prędkości dla modułu uwierzytelniania. Domyślnie ogranicza to atakujących do nie więcej niż 3 prób logowania co 30 sekund. Czy chcesz włączyć ograniczenie prędkości (t / n) y

  15. Teraz przełącz wyjście z tego konta, aby wrócić do konta root:

    exit
    
  16. Teraz uruchom ponownie usługę ssh

    service ssh restart
    

Teraz po prostu weź sesję ssh dla użytkownika, dla którego ją skonfigurowałeś, a najpierw poprosi cię o kod weryfikacyjny, który możesz wprowadzić z telefonu komórkowego, a następnie poprosi o hasło użytkownika.

wprowadź opis zdjęcia tutaj

To wszystko, co jest wymagane do skonfigurowania uwierzytelniania dwuskładnikowego. W razie potrzeby prosimy o poprawienie odpowiedzi i przepraszam za niezbyt dobry język.

Hrish
źródło
Po odinstalowaniu pozostawia problem za każdym razem, gdy uruchamiam polecenie sudo: sudo: Błąd uwierzytelnienia PAM: moduł jest nieznany
bagustris
@bagustris Edytuj plik „/etc/pam.d/common-auth” i usuń „auth wymagany pam_google_authenticator.so” tego wpisu. Po odinstalowaniu.
Hrish
aby edytować /etc/pam.d/common-auth, potrzebuje sudo. Ponieważ sudo już nie działa, potrzebuję systemu operacyjnego na żywo (lub w moim przypadku, ponieważ uruchamiam podwójnie system Mac OS, mogę edytować go z systemu OS X z ustawionym zestawem uprawnień do zapisu).
bagustris
1
@bagustris Możesz to zrobić, przechodząc do trybu odzyskiwania.
Hrish
1
Bezpieczniej byłoby nie stracić dostępu do maszyny, jeśli w kroku 2 użyjemy auth optionalzamiast auth required. W przeciwnym razie logowanie nie będzie już możliwe, jeśli sesja ulegnie awarii i proces się nie zakończy.
Pascal