La Двуфакторното удостоверяване (2FA) не е нещо уникално, което може да се използва в социалните медии или на който и да е друг уебсайт. Е, тази мярка за сигурност може да бъде приложена и в рамките на операционна система.
Ето защо Днес ще видим как да приложим двуфакторно удостоверяване в SSH в Ubuntu и деривати, използващи добре познатия Google Authenticator, което значително ще повиши сигурността на вашия OpenSSH сървър.
Обикновено просто трябва да въведете парола или да използвате SSH ключа, за да влезете дистанционно в системата си.
Двуфакторното удостоверяване (2FA) изисква да бъдат въведени две части информация, за да влезете.
Следователно ще трябва да въведете еднократна парола, базирана на времето, за да влезете във вашия SSH сървър.
Тази еднократна парола се изчислява с помощта на алгоритъма TOTP, който е стандарт на IETF.
Инсталиране и конфигуриране на Google Authenticator в Ubuntu и деривати
Първата стъпка, която ще извършим, е инсталирането на Google Authenticator в нашата система, така че ще отворим терминал в системата (това може да стане с комбинацията от клавиши "Ctrl + Alt + T) и в него ще напишем следната команда:
sudo apt install libpam-google-authenticator
Инсталацията приключи ще стартираме новоинсталираното приложение със следната команда:
google-authenticator
Когато изпълняваме тази команда, това, което ще направим, е да присвоим таен ключ и това ще ни попита дали искаме да използваме жетоните въз основа на времето, на което ще отговорим да.
След това, те ще видят QR код, който могат да сканират с помощта на приложението TOTP на телефона си.
тук Препоръчваме да използвате приложението Google Authenticator на мобилния си телефон.il, така че можете да инсталирате приложението чрез Google Play или Apple App Store на мобилния си телефон.
Вече имате приложението на телефона си, трябва да сканирате QR кода с него. Имайте предвид, че трябва да увеличите прозореца на терминала, за да сканирате целия QR код.
QR кодът представлява тайният ключ, което е известно само на неговия SSH сървър и неговото приложение Google Authenticator.
След като QR кодът бъде сканиран, те могат да видят уникален шестцифрен маркер на телефона си. По подразбиране този маркер трае 30 секунди и трябва да бъде въведен, за да влезете в Ubuntu чрез SSH.
В терминала ще можете да видите и секретния код, както и кода за проверка и кода за аварийно стартиране.
От което препоръчваме да съхранявате тази информация на сигурно място за по-нататъшна употреба. От другите въпроси, които ни задават, ние просто ще отговорим да, като напишем буквата y.
Настройване на SSH за използване с Google Authenticator
Вече разчита на горното, Сега ще направим необходимата конфигурация, за да можем да използваме SSH връзката в нашата система с Google Authenticator.
В терминал vЩе въведем следната команда
sudo nano /etc/ssh/sshd_config
Вътре във файла ще потърсим следните редове и ще ги сменим на "да", като сме както следва:
UsePAM yes ChallengeResponseAuthentication yes
След като промените бъдат направени, запазете направените промени с Ctrl + O и затворете файла с Ctrl + X.
В същия терминал ще рестартираме SSH с:
sudo systemctl restart ssh
По подразбиране за удостоверяване се изисква те да въведат потребителската парола за влизане.
Така че нека редактираме файла с правила за PAM за демона SSH.
sudo nano /etc/pam.d/sshd
В началото на този файл можете да видите следния ред, който позволява удостоверяване с парола
ChallengeResponseAuthentication
Което трябва да зададем на да.
За да активирате и еднократно удостоверяване с парола, добавете следните два реда.
@include common-auth #One-time password authentication via Google Authenticator auth required pam_google_authenticator.so
Запазете и затворете файла.
Отсега нататък всеки път, когато влязат във вашата система чрез SSH връзка, ще бъдат подканени да въведат потребителската парола и кода за потвърждение (еднократната парола, генерирана от Google Authenticator).
Здравейте, доста прост урок, обаче, след като направя всички стъпки, които вече не мога да въведа чрез ssh, той ми извежда грешна грешка в паролата, дори не мога да поискам 2FA.
Имам Ubuntu Server 20.04