How-to-Setup-Two-Factor-Authentication-(Google-Authenticator)-for-SSH-Logins - Google Authenticator SSH

Как настроить двухфакторную аутентификацию (Google Authenticator) для входа в SSH

SecurityАутентификация

По умолчанию SSH использует защищенный обмен данными между удаленными компьютерами, но если вы хотите добавить дополнительный уровень безопасности для своих SSH-соединений, вы можете добавить модуль Google Authenticator (двухфакторная аутентификация), который позволяет вводить случайно сгенерированный одноразовый пароль (TOTP) при подключении к SSHсерверам. При подключении вам нужно будет ввести код подтверждения со своего смартфона или ПК.

Google Authenticator — это модуль с открытым исходным кодом, который включает в себя реализацию токена проверки одноразовых паролей (TOTP), разработанного Google. Он поддерживает несколько мобильных платформ, а также PAM (Pluggable Authentication Module). Эти одноразовые пароли создаются с использованием открытых стандартов, созданных OATH (Initiative for Open Authentication).

SSH-Two-Factor-Authentication

 

 

В этой статье я покажу вам, как настроить SSH для двухфакторной аутентификации в Red Hat, CentOS, FedoraUbuntu, Linux Mint и Debian.

 

Установка модуля Google Authenticator

Откройте машину, на которой вы хотите настроить двухфакторную аутентификацию, и установите следующие библиотеки PAM вместе с библиотеками для разработки, которые необходимы для корректного взаимодействия модуля PAM с модулем аутентификации Google.

В системах Red Hat, CentOS и Fedora установите пакет «pam-devel».

# yum install pam-devel make automake libtool gcc-c++ wget

 

В системах Ubuntu, Linux Mint и Debian установите пакет «libpam0g-dev».

# apt-get install libpam0g-dev make automake libtool gcc-c++ wget

 

Теперь клонируйте с github, а затем установите модуль аутентификатора Google в домашний каталог (предположим, вы уже вошли в домашний каталог root) с помощью следующей команды git:

# git clone https://github.com/google/google-authenticator-libpam.git
# cd google-authenticator-libpam/
# ./bootstrap.sh
# ./configure
# make
# make install
# google-authenticator

 

После того, как вы запустите команду «google-authenticator», она предложит вам серию вопросов. Просто вводите «у» (да) в качестве ответа в большинстве ситуаций. Если что-то пойдет не так, вы можете снова выполнить команду «google-authenticator» для сброса настроек.

  • Do you want authentication tokens to be time-based? (y/n) y

После этого вопроса вы получите «секретный ключ» и «аварийные коды». Запишите куда-нибудь эти данные, позже нам потребуется «секретный ключ» для настройки приложения Google Authenticator.

[[email protected] google-authenticator-libpam]# google-authenticator

Do you want authentication tokens to be time-based (y/n) y
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/[email protected]%3Fsecret%3DXEKITDTYCBA2TLPL
Your new secret key is: XEKITDTYCBA2TLPL
Your verification code is 461618
Your emergency scratch codes are:
65083399
10733609
47588351
71111643
92017550

 

 

Затем следуйте указаниям мастера установки и снова в большинстве случаев вводите ответ «y» (да), как показано ниже:

Do you want me to update your "/root/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

 

 

Настройка SSH для использования модуля Google Authenticator

Откройте файл конфигурации PAM «/etc/pam.d/sshd» и добавьте следующую строку в начало файла:

auth required pam_google_authenticator.so

 

Затем откройте файл конфигурации SSH «/etc/ssh/sshd_config» и прокрутите вниз, чтобы найти строку с надписью:

ChallengeResponseAuthentication no

 

Измените «no» на «yes». В итоге вы получите:

ChallengeResponseAuthentication yes

 

Наконец, перезапустите службу SSH, чтобы принять новые изменения:

# /etc/init.d/sshd restart

 

Настройка приложения Google Authenticator

Запустите приложение Google Authenticator на своем смартфоне. Нажмите «Menu» и выберите «Setup an account». Если у вас не установлено это приложения, вы можете загрузить и установить Google Authenticator на свои устройства Android/iPhone/Blackberry.

Google-Authenticator-Setup-Account

 

 

Нажмите «Enter key provided».

Enter-Google-Authenticator-Secret-Key

 

 

Добавьте свою учетную запись «Account name» и введите «Secret key», созданный ранее:

Google-Authenticator-Account-Name-and-Secret-Key

 

 

Приложение сгенерирует одноразовый пароль (проверочный код), который будет постоянно обновляться каждые 30 секунд на экране вашего телефона.

Google-Authenticator-One-Time-Password

 

 

Теперь попробуйте войти через SSH, вам будет предложено ввести код Google Authenticator (код подтверждения), ну и соответственный пароль при каждой попытке входа через SSH. У вас есть только 30 секунд для ввода этого одноразового кода подтверждения, если вы не успеете ввести код за отведённое время, будет создан новый код подтверждения.

login as: sedicomm
Access denied
Using keyboard-interactive authentication.
Verification code:
Using keyboard-interactive authentication.
Password:
Last login: Tue Apr 23 13:58:29 2013 from 172.16.25.125
[[email protected] ~]#

 

Если у вас нет смартфона, вы также можете использовать надстройку Firefox под названием GAuth Authenticator для двухфакторной аутентификации.

 

Важное замечание: Двухфакторная аутентификация работает с паролем на основе SSH. Если вы используете сеанс SSH с закрытым/открытым ключом, он проигнорирует двухфакторную аутентификацию и войдет в систему напрямую.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
SecurityАутентификация

Больше похожих постов

1 комментарий. Оставить новый

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню