Как настроить аутентификацию SSH на смарт-карте?

9

Я хотел бы иметь возможность SSH к моей машине, используя смарт-карту Gemalto .NET в качестве метода аутентификации. Как это можно сделать на машине Fedora 13 (или в стиле Red Hat)?

Вот те грубые шаги, которые я считаю необходимыми:

  1. Предоставление сертификата для смарт-карты (и, возможно, ЦС для его выдачи?)
  2. Получить сертификат на смарт-карту
  3. Сконфигурируйте сервер SSH, чтобы разрешить аутентификацию смарт-карты и настройте его для использования определенного сертификата / CA
  4. Клиент SSH с поддержкой смарт-карт (дополнительные баллы за бесплатный Windows-клиент)
Джефф Чайлдс
источник

Ответы:

2

Я считаю, что драйверы Gemalto теперь с открытым исходным кодом. У них есть исходный код на их сайте.

Вам нужно будет настроить pamмодуль (я не уверен, как это сделать, но код, безусловно, есть). Я предполагаю, что pamконфигурация потребует сопоставления принципа сертификата с локальным идентификатором пользователя.

Я полагаю, что GDM теперь поддерживает смарт-карты, но я не уверен, как он его обнаруживает. Я постараюсь найти это позже (самый простой способ - просто взглянуть на gdmисходный код).

Конечно это все требует pcscdи libpcscliteбыть установленным. Вам также нужно будет скопировать libgtop11dotnet.soв /usr/lib.

vwduder
источник
Спасибо! Это сделало меня на правильном пути. Здесь также есть некоторая действительно полезная информация, если кто-то смотрит на установку на основе RedHat: centos.org/docs/5/html/Deployment_Guide-en-US/sso-ov.html
Джефф Чайлдс
Где вы найдете файл libgtop11dotnet.so?
user568021
2

Я бы порекомендовал Kerberos. MIT производит клиент и сервер krb5.

vwduder, не могли бы вы порекомендовать устройство для чтения смарт-карт и источник карт, совместимых с FIPS-201?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

У меня есть копия на моем собственном сервере, но я недостаточно популярен на этой трассировке стека, чтобы поделиться ею с вами. Вышеуказанное лишь немного менее надежно, чем наши собственные серверы, поэтому вы, вероятно, сможете получить его от них;)

[править] Я сейчас достаточно популярен!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf

cjac
источник
@vwduder попытался ответить, но он еще не участвует в закрытой бета-версии
cjac
Спасибо CJAC! В сочетании с вкладом vwduder, я думаю, что я его облизал.
Джефф Чайлдс
Круто! Еще раз, пока я об этом думаю. Мой папа получает кредит за их поиск. smartcardworld.com
cjac
1

При использовании ключей RSA 1) и 2) тривиальны, потому что, как мы увидим в 3), фактический сертификат не имеет значения в этом контексте. Просто зайдите на cacert.org или создайте самоподписанный сертификат, и все готово.

В 3) вам необходимо извлечь ваш открытый ключ и установить его в $ HOME / .ssh / authorized_keys. Обратите внимание на владение файлами и разрешения! (700 для .ssh, 600 для авторизованных ключей). Аутентификация открытого ключа на уровне хоста не рекомендуется, но оставляется в качестве упражнения для любознательных.

Что касается 4), вам следует изучить PuTTY SC ( http://www.joebar.ch/puttysc/ ) или, предпочтительно, PuTTY-CAC ( http://www.risacher.org/putty-cac/ ), в котором улучшены PuTTY SC с улучшенным алгоритмом извлечения открытого ключа, а также включает поддержку Kerberos-GSSAPI из ветви разработки PuTTY.

codehead
источник
0

Я сделал видео, чтобы показать, как использовать смарт-карту с сервером Linux, используя PuttySC и SecureCRT . Вы можете посмотреть его здесь: Как использовать SSH со своей смарт-картой

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

После того, как вы подготовили карту, вам нужно извлечь открытый ключ, а затем добавить его в ~ / .sshd / авторизованный_ключ.

Для подключения к серверу вы можете использовать такие инструменты, как PuttySC или SecureCRT. Вам нужно будет приобрести библиотеку PSKC # 11 для карты (либо у производителя смарт-карты, либо у версии с открытым исходным кодом). Сконфигурируйте инструмент SSH с библиотекой, он должен быть в состоянии прочитать его и найти сертификат.

Когда вы авторизуетесь, инструмент запросит у вас PIN-код смарт-карты.

Матиас Бюхнер
источник