Вход
Русский
USD
Цены в иностранной валюте приведены информационно

Многофакторная аутентификация. Использование РАМ.

Увеличиваем уровень безопасности сервера. Часть 2

Ранее в нашем блоге мы уже писали о многофакторной аутентификации с использованием РАМ. Теперь же мы хотим дать вам несколько советов по применению данной инфраструктуры.

Как восстановить потерянный доступ?

Стоит понимать, что ответственность за безопасность системы лежит на ваших плечах. Это значит, что пароли и ключи не должны теряться, забываться. Если же такое произошло, то утерянный доступ потребуется как-то вернуть. Операцию стоит разделить на два этапа: вход без ключа, его восстановление. При помощи консоли у вас получится зайти на сам сервер. Если же это невозможно, то можете использовать пользователя, у которого есть доступ к «sudo». При этом у него должна быть активирована MFA. Ключ ТОТР удастся вернуть двумя способами: восстановить старый или сделать новый. У каждого пользователя в файле ~/.google-authenticator хранятся параметры Google Authenticator, а также секретный ключ. Если вывести в консоль первую стройку из него, то вы сможете увидеть там забытый пароль:

head -n 1 /home/8host/.google_authenticator

Хотя, может случиться и так, что восстанавливать ключ не нужно. В такой ситуации можно просто перенести файл ~/.google-authenticator в другое место. Если вы не установили многофакторную аутентификацию в качестве обязательной, то войти на сервер у вас получится с помощью одной ступени идентификации. А после этого запустите Authenticator Google для генерации нового пароля.

В ситуации утраты возможности войти в ТОТР-приложение, не будет иного способа получить код подтверждения, кроме обращения к ключам восстановления. Вы получали их когда создавался первый секретный ключ. Но помните, что все ключи являются одноразовыми и использовать их повторно не удастся.

Как поменять аутентификационные настройки?

Для этого вам придется вносить изменения в файл ~/.google-authenticator. Его структура достаточно проста:

<sеcret key> <оptions> <rеcovery codes>

Но такая структура не является обязательной. Все строки добавляются внутрь файла по мере настройки при первом запуске. В случае отрицательных ответов на вопросы, соответствующая строка может не прописаться. Какие же изменения внести?

  • Когда возникает необходимость поменять синхронизирующиеся по времени токены на применяющие математический алгоритм, стоит убрать » TOTP_AUTH заменив ее на » HOTP_COUNTER 1;
  • Для возможности повторного применения кода избавьтесь от строки » DISALLOW_REUSE;
  • Система позволяет увеличить длительность открытия скользящего окна до 4 минут. Чтобы это стало возможным, пропишите строчку » WINDOW_SIZE 17;
  • Строка » RATE_LIMIT 3 30 служит для ограничения скорости передачи данных. Удалив ее, вы сможете убрать лимит;
  • Вышеописанная строка расшифровывается просто: 30 – промежуток ожидания в секундах, а 3 – количество попыток на ввод кода;
  • Восьмизначные коды в самом низу файла нужны для активации опции применения кодов восстановления. Если такая возможность не требуется, то их можно удалить.

Как избирательно отключить MFA?

Всегда существует вероятность проявления такой ситуации, когда приложениям или аккаунтам нужен SSH-доступ, но без MFA. Хороший пример – это FTP-клиенты, ведь они не знают MFA, но работают с помощью SSH-подключения. Смысл в том, что не каждая программа способна делать запрос на получение кода подтверждения. И она не сможет совершить подключение, пока не закончится лимит подключения по SSH. Чтобы изменить параметры многофакторной аутентификации, нужно редактировать файл /etc/pam.d/sshd. Внутри нужно активировать следующие опции:

# PAM configuration for the Secure Shell service # Standard Un*x authentication. #@include common-auth . . . # Standard Un*x password updating. @include common-password auth required pam_google_authenticator.so nullok

Закомментированная опция @include common-auth служит для отключения пароля. Если добавить nullok в конец файла, появится возможность сделать MFA необязательной. Внесенные изменения нужно применить. После этого аутентификацию Google можно запускать только для тех юзеров, которым требуется многофакторная аутентификация. А случае, когда применяются SSH-ключи, команда запускаться не будет.

Многофакторную аутентификацию также можно автоматизировать.

то станет возможным, если применять системы управления конфигурациями вроде Ansible, Puppet, Chef. Для автоматизации всех действий по установке РАМ, нужно набрать:

google-authenticator -t -d -f -r 3 -R 30 –W

Система самостоятельно даст нужные ответы на поставленные вопросы, после чего сохранит установки в файл, выведет ключ, код QR и ключи восстановления. Но помните, что во время этапа автоматизации нужно, чтобы все пользователи получили ключи восстановления и секретные коды.

MFA можно также сделать обязательной для всех.

Система позволяет запретить юзерам самостоятельно генерировать ключи доступа. Чтобы это стало возможным, файл .google-authenticator должен быть единым для всех, без дополнительных персонализированных данных. После завершения этапа первой настройки, файл требуется скопировать в root для каждого домашнего каталога и поменять права доступа. Дополнительно стоит скопировать файл в /etc/skel/, откуда он будет самостоятельно продублирован в домашний каталог нового юзера. Однако, помните, что это может быть небезопасно. Причина в том, что каждый пользователь будет применять одинаковый второй аспект аутентификации.

Вторым способом является сценарий bash, помогающий сделать MFA обязательной. Он способен создать ТОТР-токен, загрузить Google Authenticator, просканировать QR-код, а также проверить, создал ли файл .google-authenticator. Для запуска сценария при входе пользователя его нужно назвать .bash_login, после чего поместить его в root домашнего каталога юзеров.

Опубликовано: Февраль 27, 2017