“Secure shell” SSH е мрежов протокол за установяване на защитена връзка между хостове, стандартно през порт 22 (който е по-добре да промените). SSH клиенти и SSH сървъри са налични за повечето операционни системи. Почти всеки друг мрежов протокол работи в SSH, тоест можете да работите отдалечено на друг компютър, да предавате аудио или видео поток през криптиран канал и т.н. Освен това,
Удостоверяването става с помощта на парола, но разработчиците и системните администратори традиционно използват SSH ключове. Проблемът е, че личният ключ може да бъде откраднат. Добавянето на парола теоретично предпазва от кражба на частния ключ, но на практика при препращане и кеширане на ключове те
Как да приложим двуфакторно удостоверяване
Разработчиците от Honeycomb наскоро публикуваха
Инструкциите предполагат, че имате определен основен хост, отворен към Интернет (бастион). Искате да се свържете с този хост от лаптопи или компютри през интернет и да получите достъп до всички други устройства, които се намират зад него. 2FA гарантира, че нападателят не може да направи същото, дори ако получи достъп до вашия лаптоп, например чрез инсталиране на зловреден софтуер.
Първата опция е OTP
OTP - еднократни цифрови пароли, които в този случай ще се използват за SSH удостоверяване заедно с ключа. Разработчиците пишат, че това не е идеалният вариант, защото нападателят може да издигне фалшив бастион, да прихване вашия OTP и да го използва. Но е по-добре от нищо.
В този случай, от страната на сървъра, следните редове се записват в конфигурацията на Chef:
metadata.rb
attributes/default.rb
(отattributes.rb
)files/sshd
recipes/default.rb
(копие отrecipe.rb
)templates/default/users.oath.erb
Всяко OTP приложение е инсталирано от страна на клиента: Google Authenticator, Authy, Duo, Lastpass, инсталиран brew install oath-toolkit
или apt install oathtool openssl
, тогава се генерира произволен низ base16 (ключ). Той се преобразува във формат Base32, който използват мобилните удостоверители, и се импортира директно в приложението.
В резултат на това можете да се свържете с Bastion и да видите, че вече изисква не само парола, но и OTP код за удостоверяване:
➜ ssh -A bastion
Enter passphrase for key '[snip]':
One-time password (OATH) for '[user]':
Welcome to Ubuntu 18.04.1 LTS...
Втората опция е хардуерно удостоверяване
В този случай от потребителя не се изисква да въвежда OTP кода всеки път, тъй като вторият фактор става хардуерното устройство или биометричните данни.
Тук конфигурацията на Chef е малко по-сложна, а конфигурацията на клиента зависи от операционната система. Но след като изпълнят всички стъпки, клиентите на MacOS могат да потвърдят удостоверяване в SSH с помощта на парола и поставяне на пръст върху сензора (втори фактор).
Собствениците на iOS и Android потвърждават влизането
В Linux/ChromeOS има опция за работа с YubiKey USB токени. Разбира се, нападател може да открадне вашия токен, но той все още не знае паролата.
Източник: www.habr.com