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.