Możesz użyć modułu PAM (open source Pluggable Authentication Module) utworzonego przez Google, znanego jako Google Authenticator . Ten moduł jest dostępny w standardowych repozytoriach, a także w GitHub, dzięki czemu można budować ze źródła. W połączeniu z aplikacją na Androida, iOS lub Blackberry o tej samej nazwie, tworzy kody wrażliwe na czas w celu uwierzytelnienia wraz z hasłem. Ponieważ jest to moduł PAM, można go wrzucić praktycznie wszędzie . Zacznijmy!
Instalowanie
Aby rozpocząć, możesz zainstalować PAM w następujący sposób:
sudo apt-get install libpam-google-authenticator
Prosty!
Konfiguracja:
Po jego zainstalowaniu będziesz również chciał zainstalować odpowiednią aplikację mobilną na Androida, iOS lub Blackberry (w zależności od platformy mobilnej). Każdy jest bezużyteczny bez drugiego. Po uzyskaniu potrzebnej aplikacji na urządzenie mobilne uruchom następujące polecenie w terminalu:
google-authenticator
Rozpocznie się od zadania kilku pytań. Pierwsze z nich jest jedynym, na które należy odpowiedzieć „Tak”, i zapyta, czy kody mają być oparte na czasie. Następnie przeczytaj każde pytanie i dokonaj wyboru, który jest dla Ciebie najbardziej sensowny.
Po zakończeniu wstępnej konfiguracji zobaczysz w terminalu bardzo duży kod QR, a także kilka innych informacji. Linia z napisem „Twój nowy tajny klucz to:” jest bardzo potrzebną linią, jeśli nie chcesz używać kodu QR do parowania urządzenia, więc nie zamykaj tego okna, dopóki się nie skonfigurujesz! „Kody do zdrapek”, które to daje, są również ważne, ponieważ są one używane do logowania, jeśli stracisz urządzenie mobilne. Zapisz je i przechowuj w bezpiecznym miejscu.
Teraz na urządzeniu mobilnym otwórz aplikację Google Authenticator i wybierz „Skonfiguruj konto”. Możesz zeskanować wygenerowany kod QR lub wybrać „Użyj podanego klucza”. Jeśli zeskanujesz kod QR, wszystko zostanie automatycznie zapisane na koncie o nazwie „Twój_użytkownik @ twój_host”. Jeśli jednak wybierzesz „Użyj podanego klucza”, będziesz musiał ręcznie wprowadzić nazwę, klucz i typ tokena. Nazwa może być dowolna. Kluczem byłby wcześniej wygenerowany tajny klucz. Typ byłby domyślny na podstawie czasu. Po skonfigurowaniu zobaczysz konto w głównym okienku aplikacji Google Authenticator, a także licznik czasu w kształcie koła. Ten zegar wyczerpuje się co 30 sekund i generowany jest nowy kod.
Włączam to!
Nadchodzi magia. Ponieważ jest to moduł PAM, można go używać w różnych miejscach. sudo
Przeprowadzę proces dodawania uwierzytelnienia do żądań, logowania SSH i logowania lightdm. Jednak po przeczytaniu tego samouczka będziesz mógł włączyć go w innym miejscu w oparciu o te same techniki.
SSH
Robię to pierwszy, ponieważ jest dodatkowy krok. Pierwszą rzeczą, którą musisz zrobić, to edytować plik konfiguracyjny SSH:
gksudo gedit /etc/ssh/sshd_config
Wyszukaj wiersz z napisem:
ChallengeResponseAuthentication no
i zmień „nie” na „tak”.
Teraz musisz edytować moduł PAM dla ssh:
gksudo gedit /etc/pam.d/sshd
Na samym końcu tego pliku dodaj następujący wiersz:
auth required pam_google_authenticator.so nullok
Argument „nullok” informuje system, aby nie żądał kodu weryfikacyjnego, jeśli użytkownik nie skonfigurował uwierzytelniania dwuskładnikowego. Po tej edycji idź dalej i ponownie uruchom usługę ssh:
sudo service ssh restart
sudo
Upraszanie
Edytuj plik PAM dla sudo
:
gksudo gedit /etc/pam.d/sudo
Dodaj następujący wiersz na samym końcu:
auth required pam_google_authenticator.so nullok
Teraz każde sudo
żądanie będzie wymagało podania kodu weryfikacyjnego oraz hasła.
LightDM (logowanie GUI)
Edytuj plik PAM dla LightDM:
gksudo gedit /etc/pam.d/lightdm
Dodaj następujący wiersz na samym końcu:
auth required pam_google_authenticator.so nullok
Otóż to! Za każdym razem, gdy logujesz się przez GUI, po haśle poprosi o kod weryfikacyjny.
Logowanie do systemu i TTY
Nawet jeśli włączysz powyższe metody, nadal nie poprosi o kod weryfikacyjny, jeśli przełączysz się na TTY za pomocą CTRL+ ALT+ F#. Aby to naprawić, edytuj common-auth
plik PAM:
gksudo gedit /etc/pam.d/common-auth
i dodaj następujący wiersz na samym końcu:
auth required pam_google_authenticator.so nullok
Uwaga: Ponieważ ten plik wspólnego uwierzytelniania jest zawarty we wszystkich innych plikach typu uwierzytelniania, musisz usunąć wymagane wiersze uwierzytelnienia z innych plików. W przeciwnym razie poprosi o podanie kodu weryfikacyjnego dwa razy i nie pozwoli na późniejsze zalogowanie.
Zakończyć
Jak widać, dodanie tego uwierzytelnienia było dość łatwe. Jeśli używasz menedżera wyświetlania innego niż LightDM, możesz łatwo po prostu odpowiednio zmienić powyższą linię lightdm. Ponieważ Twoje urządzenie mobilne i system współdzieliły już ten tajny klucz, powinny one zawsze być zsynchronizowane. W przypadku tej konfiguracji nie ma interakcji z serwerami Google ani innymi zasobami internetowymi. Nawet jeśli oba urządzenia były całkowicie offline, kody weryfikacyjne wyświetlane w aplikacji będą prawidłowe. Ilekroć musisz zalogować się za pomocą jednej z włączonych metod, po prostu otwórz aplikację mobilną i pobierz aktualny kod weryfikacyjny.
Baw się dobrze!!
FreeOTP to otwarta alternatywa dla aplikacji Google Authenticator na Androida w Google Play (której obecny kod nie jest open source). FreeOTP jest dostępny na F-Droid (i Google Play ).
źródło