Поиск по сайту:

Управление ключами SSH с конфиденциальностьюIDEA


На этой странице

  1. Предпосылки
  2. Загрузить ключи SSH
  3. Назначить ключ SSH серверу SSH
  4. Настройка SSH-сервера
  5. Пройти аутентификацию!

В этом уроке я покажу, как вы можете управлять ключами SSH для всех ваших серверов и разных учетных записей пользователей. Это важно, если у вас более одного ключа SSH, и еще важнее, если вы отвечаете за множество разных пользователей с разными ключами SSH. Вы все еще знаете, чьи ключи находятся на каких серверах? Что вы будете делать, если вам придется отозвать ключи пользователей?

Мы будем использовать OpenRheinRuhr).

Предпосылки

Я предполагаю, что вы установили систему privacyIDEA и подключили свою базу данных пользователей. Вы можете легко сделать это, следуя этому руководству, которое даст вам устройство, похожее на систему, основанную на Ubuntu LTS.

Что мы будем делать сейчас, это

  1. загружать SSH-ключи для пользователей,
  2. настроить, какой SSH-ключ можно использовать на каком SSH-сервере
  3. и, наконец, адаптируйте конфигурацию SSH на серверах SSH, чтобы ключи SSH, управляемые privacyIDEA, использовались для аутентификации на сервере SSH.

Загрузить SSH-ключи

Сначала нам нужно загрузить SSH-ключи пользователей.

Обратите внимание: нам нужно загрузить только открытый ключ SSH. Никогда не загружайте закрытый ключ!

При загрузке ключа SSH создается новый объект токена типа Ключ SSH. На данный момент только администратор может загрузить SSH-ключ пользователя. Администратор должен войти в систему и выбрать соответствующего пользователя.

Затем нажмите кнопку Зарегистрировать, выберите тип Токен SSH и скопируйте и вставьте открытый ключ SSH.

Описание токена будет заполнено автоматически с комментарием ключа SSH.

Теперь вы можете перейти в представление Token и увидеть новый созданный токен типа sshkey.

Назначить SSH-ключ для SSH-сервера

Идея использования токенов для определенных машин изначально описана в онлайн-документации.

Вам необходимо определить, какой токен разрешен для аутентификации в каком приложении на какой машине. (Таким образом возможна автономная аутентификация с помощью LUKS). Это можно сделать в представлении Машины.

В PrivacyIDEA 1.5 вам также необходимо определить машину (сервер SSH) с IP-адресом. Это изменится в PrivacyIDEA 2.x.

Таким образом мы создаем определение машины, в котором говорится, что токен ssh SSHK00018FD9 может использоваться для входа через SSH на сервер 172.16.200.1. Если ключ параметра оставлен пустым, этот токен SSH можно использовать для входа в систему как пользователь root. Вы также можете ввести параметр «пользователь» с именем пользователя в качестве значения, чтобы иметь возможность войти в систему как другой пользователь.

Настроить SSH-сервер

Теперь сервер SSH должен знать о том, что ключ, который был определен централизованно в privacyIDEA, может использоваться для входа через SSH. Есть два альтернативных способа добиться этого.

Мы можем использовать saltstack для распространения ключей SSH на все SSH-серверы. Для этого нам нужно настроить и запустить saltstack, что дает нам некоторые накладные расходы. Вот почему мы выбираем второй вариант в этом уроке.

Второй вариант использует ключ конфигурации SSH AuthorizedKeysCommand. Это можно использовать в /etc/ssh/sshd_config для определения команды, которая запускается каждый раз, когда кто-то пытается войти через SSH. Такая команда должна принимать имя пользователя в качестве параметра и должна возвращать список разрешенных ключей SSH.

Для этого мы используем команду privacyidea-authorizedkeys, которая входит в состав административного клиента privacyidea. Поэтому вам необходимо установить клиент администрирования privacyidea на каждый из ваших SSH-серверов. Вы можете сделать это, используя индекс пакета Python.

Чтобы установить клиент администрирования privacyidea в свою основную систему, выполните:

pip install privacyideaadm

privacyidea-authorizedkeys не может принимать никаких дополнительных параметров, кроме имени пользователя. Вот почему вам нужно создать файл конфигурации /etc/privacyidea/authorizedkeyscommand, который выглядит следующим образом:

[Default]
url = https://your.privacyidea.server
admin = low_rights_admin
adminrealm = admin_realm
password = secret

Обязательно ограничьте права доступа к этому файлу. В продуктивной среде вы также должны убедиться, что администратору токенов, упомянутому в этом файле конфигурации, не разрешено выполнять какие-либо дополнительные задачи, такие как удаление или создание токенов.

Если все настроено правильно, вы сможете запустить

privacyidea-authorizedkeys root

... и вы должны увидеть открытый ключ ssh, который вы загрузили в privacyIDEA.

Наконец, вам нужно перенастроить демон SSH и перезапустить его. В вашем /etc/ssh/sshd_config должен быть раздел, который выглядит следующим образом:

AuthorizedKeysCommand /usr/bin/privacyidea-authorizedkeys
# You also should run the command with lower privileges.
# The low_priv_user needs to have read access to /etc/privacyidea/authorizedkeyscommand.
# AuthorizedKeysCommandUser low_priv_user

Подтвердить подлинность!

После перезапуска демона SSH вы сможете войти через SSH с загруженным ключом SSH. Как только вы либо удалите токен SSH, либо даже отключите токен SSH в privacyIDEA, пользователь больше не сможет войти в систему с этим ключом SSH.

Таким образом, вы имеете полный контроль над всеми ключами всех ваших пользователей. Вы можете отключить один SSH-ключ в одной центральной точке, и пользователь больше не сможет войти ни на один SSH-сервер.