Jak skonfigurować uwierzytelnianie dwuskładnikowe w systemie Ubuntu dla użytkowników Ubuntu za pomocą uwierzytelniacza Google (można go również skonfigurować dla kont innych niż Google)?
Jak skonfigurować uwierzytelnianie dwuskładnikowe w systemie Ubuntu dla użytkowników Ubuntu za pomocą uwierzytelniacza Google (można go również skonfigurować dla kont innych niż Google)?
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ć.
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
Teraz edytuj /etc/pam.d/sshd
ten 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
Tutaj musimy wprowadzić zmiany, /etc/ssh/sshd_config
aby 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źć ChallengeResponseAuthentication
i 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.so
powyżej linii, auth [success=1 default=ignore] pam_unix.so nullok_secure
a następnie zapisz plik.
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
Teraz użyjemy poniższego polecenia, aby skonfigurować uwierzytelnianie dwuskładnikowe testuser1
:
google-authenticator
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
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:
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.
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.
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.
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
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
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
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
Teraz przełącz wyjście z tego konta, aby wrócić do konta root:
exit
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.
To wszystko, co jest wymagane do skonfigurowania uwierzytelniania dwuskładnikowego. W razie potrzeby prosimy o poprawienie odpowiedzi i przepraszam za niezbyt dobry język.
auth optional
zamiastauth required
. W przeciwnym razie logowanie nie będzie już możliwe, jeśli sesja ulegnie awarii i proces się nie zakończy.