Chcesz zabezpieczyć swój serwer SSH za pomocą łatwego w użyciu uwierzytelniania dwuskładnikowego? Firma Google zapewnia oprogramowanie niezbędne do integracji systemu jednorazowych haseł czasowych (TOTP) Google Authenticator z Twoim serwerem SSH. Podczas łączenia będziesz musiał wpisać kod z telefonu.
Google Authenticator nie „dzwoni do domu” do Google - cała praca odbywa się na serwerze SSH i telefonie. W rzeczywistości Google Authenticator to całkowicie open-source , więc możesz nawet samodzielnie sprawdzić jego kod źródłowy.
Zainstaluj Google Authenticator
Aby zaimplementować uwierzytelnianie wieloskładnikowe w Google Authenticator, będziemy potrzebować modułu PAM Google Authenticator typu open source. PAM oznacza „podłączalny moduł uwierzytelniania” - to sposób na łatwe podłączenie różnych form uwierzytelniania do systemu Linux.
Repozytoria oprogramowania Ubuntu zawierają łatwy do zainstalowania pakiet modułu Google Authenticator PAM. Jeśli Twoja dystrybucja Linuksa nie zawiera pakietu do tego, musisz go pobrać z Strona pobierania Google Authenticator w Google Code i skompiluj go samodzielnie.
Aby zainstalować pakiet w systemie Ubuntu, uruchom następujące polecenie:
sudo apt-get install libpam-google-Authenticator
(Spowoduje to tylko zainstalowanie modułu PAM w naszym systemie - będziemy musieli ręcznie aktywować go do logowania SSH).
Utwórz klucz uwierzytelniania
Zaloguj się jako użytkownik, z którym będziesz się logować zdalnie, i uruchom Google-Authenticator polecenie, aby utworzyć tajny klucz dla tego użytkownika.
Zezwól poleceniu na zaktualizowanie pliku Google Authenticator, wpisując y. Zostaniesz poproszony o kilka pytań, które pozwolą Ci ograniczyć użycie tego samego tymczasowego tokena bezpieczeństwa, wydłużyć okno czasowe, w którym można używać tokenów, oraz ograniczyć dozwolony dostęp do prób utrudniających łamanie zabezpieczeń siłowych. Wszystkie te wybory zamieniają pewne bezpieczeństwo na pewną łatwość użycia.
Google Authenticator przedstawi Ci tajny klucz i kilka „awaryjnych kodów zdrapki”. Zapisz awaryjne kody zdrapki w bezpiecznym miejscu - za każdym razem można ich użyć tylko jeden raz i są one przeznaczone do użycia, gdy zgubisz telefon.
Wprowadź tajny klucz w aplikacji Google Authenticator na telefonie (oficjalne aplikacje są dostępne dla Android, iOS i Blackberry ). Możesz również skorzystać z funkcji skanowania kodu kreskowego - przejdź do adresu URL znajdującego się u góry wyjścia polecenia i zeskanuj kod QR aparatem telefonu.
Będziesz mieć teraz stale zmieniający się kod weryfikacyjny w 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 własny tajny klucz i własne kody.
Aktywuj Google Authenticator
Następnie będziesz musiał wymagać Google Authenticator do logowania SSH. Aby to zrobić, otwórz plik /etc/pam.d/sshd plik w systemie (na przykład z rozszerzeniem Sudonano / Etc / Pam. d / shd polecenie) i dodaj następujący wiersz do pliku:
wymagane uwierzytelnienie pam_google_authenticator.so
Następnie otwórz plik / etc / ssh / sshd_config Znajdź plik ChallengeResponseAuthentication wiersz i zmień go na następujący:
ChallengeResponseAuthentication tak
(Jeśli ChallengeResponseAuthentication linia jeszcze nie istnieje, dodaj powyższą linię do pliku).
Na koniec zrestartuj serwer SSH, aby zmiany odniosły skutek:
sudo service ssh restart
Za każdym razem, gdy będziesz próbował zalogować się przez SSH, pojawi się prośba o podanie hasła i kodu Google Authenticator.