Wyszukiwanie w witrynie

Jak skonfigurować uwierzytelnianie dwuskładnikowe dla SSH w Fedorze


Wydaje się, że każdego dnia zgłaszanych jest wiele naruszeń bezpieczeństwa, w wyniku których nasze dane są zagrożone. Pomimo tego, że SSH jest bezpiecznym sposobem na zdalne nawiązanie połączenia z systemem Linux, nieznany użytkownik może uzyskać dostęp do Twojego komputera z Linuksem, jeśli ukradnie Twoje klucze SSH, nawet jeśli wyłączysz hasła lub zezwolisz tylko na połączenia SSH przez klucze publiczne i prywatne.

W tym artykule wyjaśnimy, jak skonfigurować uwierzytelnianie dwuskładnikowe (2FA) dla SSH w dystrybucji Fedora Linuksa przy użyciu Google Authenticator w celu uzyskania dostępu zdalny system Linux w bezpieczniejszy sposób, podając numer TOTP (jednorazowe hasło zależne od czasu) wygenerowany losowo przez aplikację uwierzytelniającą na urządzeniu mobilnym.

Przeczytaj także: Jak skonfigurować uwierzytelnianie dwuskładnikowe dla logowania SSH w CentOS i Debianie

Pamiętaj, że możesz użyć dowolnej aplikacji do uwierzytelniania dwukierunkowego na swoim urządzeniu mobilnym, która jest zgodna z algorytmem TOTP. Dostępnych jest wiele bezpłatnych aplikacji na Androida i iOS, które obsługują TOTP i Google Authenticator, ale w tym artykule jako przykład wykorzystano Google Authenticator.

Instalowanie Google Authenticator na Fedorze

Najpierw zainstaluj aplikację Google Authenticator na swoim serwerze Fedora, używając następującego polecenia dnf.

sudo dnf install -y google-authenticator

Po zainstalowaniu Google Authenticator możesz teraz uruchomić aplikację.

google-authenticator

Aplikacja zadaje szereg pytań. Poniższe fragmenty pokazują, jak zapewnić w miarę bezpieczną konfigurację.

Do you want authentication tokens to be time-based (y/n) y Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

Aplikacja udostępnia tajny klucz, kod weryfikacyjny i kody odzyskiwania. Przechowuj te klucze w bezpiecznym miejscu, ponieważ stanowią one jedyny sposób uzyskania dostępu do serwera w przypadku utraty urządzenia mobilnego.

Konfigurowanie uwierzytelniania za pomocą telefonu komórkowego

Na telefonie komórkowym przejdź do sklepu z aplikacjami Google Play lub iTunes, wyszukaj Google Authenticator i zainstaluj aplikację.

Teraz otwórz aplikację Google Authenticator na swoim telefonie komórkowym i zeskanuj kod QR wyświetlony na ekranie terminala Fedory. Po zakończeniu skanowania kodu QR otrzymasz losowo wygenerowany numer przez aplikację uwierzytelniającą i użyjesz tego numeru za każdym razem, gdy zdalnie łączysz się z serwerem Fedora.

Zakończ konfigurację Google Authenticator

Aplikacja Google Authenticator wyświetla dalsze pytania, a poniższy przykład pokazuje, jak na nie odpowiedzieć, aby skonfigurować bezpieczną konfigurację.

Teraz musisz skonfigurować SSH, aby korzystał z nowego uwierzytelniania dwukierunkowego, jak wyjaśniono poniżej.

Skonfiguruj SSH do korzystania z Google Authenticator

Aby skonfigurować SSH do korzystania z aplikacji uwierzytelniacz, najpierw musisz mieć działające połączenie SSH przy użyciu publicznych kluczy SSH, ponieważ będziemy wyłączać połączenia za pomocą haseł.

Otwórz plik /etc/pam.d/sshd na swoim serwerze.

sudo vi /etc/pam.d/sshd

Zakomentuj linię auth substack hasło-auth w pliku.

#auth       substack     password-auth

Następnie umieść następujący wiersz na końcu pliku.

auth sufficient pam_google_authenticator.so

Zapisz i zamknij plik.

Następnie otwórz i edytuj plik /etc/ssh/sshd_config.

sudo vi /etc/ssh/sshd_config

Wyszukaj wiersz ChallengeResponseAuthentication i zmień go na yes.

ChallengeResponseAuthentication yes

Wyszukaj linię PasswordAuthentication i zmień ją na no.

PasswordAuthentication no

Następnie umieść następujący wiersz na końcu pliku.

AuthenticationMethods publickey,password publickey,keyboard-interactive

Zapisz i zamknij plik, a następnie uruchom ponownie SSH.

sudo systemctl restart sshd

Testowanie uwierzytelniania dwuskładnikowego w Fedorze

Teraz spróbuj połączyć się zdalnie ze swoim serwerem, poprosi Cię o wprowadzenie kodu weryfikacyjnego.

ssh [email 

Verification code:

Kod weryfikacyjny jest generowany losowo na Twoim telefonie komórkowym przez aplikację uwierzytelniającą. Ponieważ wygenerowany kod zmienia się co kilka sekund, należy go szybko wprowadzić, zanim utworzy nowy.

Jeśli wprowadzisz błędny kod weryfikacyjny, nie będziesz mógł połączyć się z systemem i pojawi się następujący błąd odmowy uprawnień.

ssh [email 

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).
Wniosek

Wdrażając to łatwe dwukierunkowe uwierzytelnianie, dodałeś dodatkową warstwę bezpieczeństwa do swojego systemu, a to także utrudnia nieznanemu użytkownikowi uzyskanie dostępu do Twojego serwera.