Многофакторная аутентификация. Использование РАМ.
Увеличиваем уровень безопасности сервера. Часть 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>
Но такая структура не является обязательной. Все строки добавляются внутрь файла по мере настройки при первом запуске. В случае отрицательных ответов на вопросы, соответствующая строка может не прописаться. Какие же изменения внести?
Всегда существует вероятность проявления такой ситуации, когда приложениям или аккаунтам нужен 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 и ключи восстановления. Но помните, что во время этапа автоматизации нужно, чтобы все пользователи получили ключи восстановления и секретные коды.
Система позволяет запретить юзерам самостоятельно генерировать ключи доступа. Чтобы это стало возможным, файл .google-authenticator должен быть единым для всех, без дополнительных персонализированных данных. После завершения этапа первой настройки, файл требуется скопировать в root для каждого домашнего каталога и поменять права доступа. Дополнительно стоит скопировать файл в /etc/skel/, откуда он будет самостоятельно продублирован в домашний каталог нового юзера. Однако, помните, что это может быть небезопасно. Причина в том, что каждый пользователь будет применять одинаковый второй аспект аутентификации.
Вторым способом является сценарий bash, помогающий сделать MFA обязательной. Он способен создать ТОТР-токен, загрузить Google Authenticator, просканировать QR-код, а также проверить, создал ли файл .google-authenticator. Для запуска сценария при входе пользователя его нужно назвать .bash_login, после чего поместить его в root домашнего каталога юзеров.
Опубликовано: Февраль 27, 2017