Konfiguracja Uwierzytelniania Wieloskładnikowego (MFA) na Linuxie – SSH.
Zrób update i upgrade systemu.
apt -y update
apt -y upgrade
Zainstaluj pakiet google authenticator i ssh.
apt -y install ssh
apt -y install libpam-google-authenticator
Zaloguj się na użytkownika, którym będziesz się logować za pomocą SSH i wygeneruj sekret. Dla najmocniejszego zabezpieczenia użyj następujących odpowiedzi na pytania:
google-authenticator
1. y (one time)
2. y (register)
3. y (man-in-the-middle)
4. n (time skew up to 4 minutes)
5. y (rate limiting)
Przejdź do pliku konfiguracyjnego SSH:
vim /etc/ssh/sshd_config
Zmień wpis. Prawidłowo wpis powinien być ustawiony na yes:
KbdInteractiveAuthentication yes
Dodatkowo dopisz na końcu pliku:
AuthenticationMethods keyboard-interactive
Zapisz plik sshd_config i przejdź do /etc/pam.d/sshd:
cd /etc/pam.d/sshd
Dopisz linijkę na końcu pliku:
auth required pam_google_authenticator.so
Zresetuj serwer ssh. Resetowanie ssh jest niezbędne po każdej zmianie pliku konfiguracyjnego.
systemctl restart ssh
Przejdź na inny komputer z którego będziesz się logować do maszyny zdalnej, na której była wykonywana powyższa konfiguracja. Spróbuj zalogować się na zdalną maszynę.
ssh JanKowalski@192.168.15.15
Zostaniesz poproszony o hasło i kod z autentykatora.
Dodatkowe uwagi.
Pamiętaj, że nie musisz generować kodów na telefonicznej apce. Możesz generować kody OTP w Keepasie na przykład.
Bardzo ważne przy generowaniu sekretu jest przełączenie się na konto z którego będziesz się logować.
Dla zmaksymalizowania hardeningu możesz ustawić uwierzytelnianie poprzez logowanie kluczem zabezpieczonym hasłem i MFA. Takie zabezpieczenie byłoby bardzo czasochłonne do złamania. Ustawia się je w /etc/ssh/sshd_config.
### Dla logowania się metodą RSA. ###
AuthenticationMethods publickey
Sprawdź mój poprzedni artykuł o uwierzytelnianiu za po-> Kliknij.