LINUX.ORG.RU
ФорумAdmin

2nd factor auth for ssh

 ,


4

2

Всем привет.

Хочу приделать многофакторную авторизацию для ssh. Кто-нить уже пробовал? Какие сервисы использовались? Какие подводные камни были?

★★★★★

Я duosecurity пробовал. Завелось с полпинка, подводных камней никаких. Google auth не ковырял.

Хотя, какие-то проблемы, с dou+openvpn были, какие-то скрипты править приходилось.

generator ★★★
()

умные люди говорят, что для этого у PAM есть готовое решение.

Komintern ★★★★★
()

А зачем тут какие-то сервисы? Хочется именно SMS, банального TOTP (aka google authenticator) недостаточно?

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

банального TOTP (aka google authenticator) недостаточно?

Мне бы хотелось получить сразу удобство и безопасность. Т.е. чтобы, например, в присутствии интернета я могу на мобилке нажать кнопоку «разрешить доступ». А без интернета чтобы вбивать пин. Бывает такое?

Меня бы больше всего устроило поднять свой сервер для этих вещей.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от invokercd

Пока нравится идея вот этого проекта: https://github.com/ghewgill/ssh-otp

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

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

[1], например. OpenSSH server, конечно же, работает с PAM, так что вряд ли там будут сложности. Каждому серверу можно и нужно свой ключик-secret.

Если приложение для телефона/планшета позволяет, можно добавлять несколько ключей, а если не позволяет – взять другое приложение, которое позволяет. Меня сначала смутило слово Google в названии Google Authenticator, но оказалось, что там внутри всё просто, и, главное, что интернет для работы всего этого добра не нужен. Не нужен даже гугловский аккаунт. Вот тут[2] на примере описан алгоритм. Реализаций его есть много под все мыслимые платформы.

[1]: http://www.opennet.ru/tips/info/2805.shtml [2]: http://jacob.jkrall.net/totp/

xenith
()

использовал DUO, позже его же в связке с yubikey через pam. сам не сетапил, но yubikey очень доволен и от секьюрити тимы слышал только позитив о них. навязал на него во второй слот еще ключ для харда в ноуте, на лонгпресс. думаю, так как ты хочешь можно сделать через пам sufficient правила.

val-amart ★★★★★
()
Ответ на: комментарий от anonymous_sama

Тоже с удовольствием послушаю.

Да вроде шесть цифирей вбить не велик труд

Велик, меня тоже интересует вариант

Т.е. чтобы, например, в присутствии интернета я могу на мобилке нажать кнопоку «разрешить доступ»

val-amart> навязал на него во второй слот еще ключ для харда в ноуте, на лонгпресс

Звучит интересно, можно подробнее, пожалуйста?

Krieger_Od ★★
()
Ответ на: комментарий от Krieger_Od

у ключа два слота, на которые можно назначить произвольный бинарь, текстовую строку или доступ к генератору one-time password. у меня на короткое нажатие генерируется OTP для доступа к сетевым ресурсам (ssh, kerberos), а на длинное нажатие я сохранил длинную рандомную строку. третьим ключем в LUKS я добавил конкатенацию простой строки и этой длинной рандомной с yubikey, — в итоге если я нахожусь в hostile environment где могут заснять как я ввожу пароль, например в аеропроту или кафе, я могу расшифровать диск используя комбинацию простой строки и длинного нажатия на yubikey. это добавляет немного неприятностей злоумышленнику — ему нужно будет получить доступ к моему юбикею, видео того как я ввожу простую строку (или другому ее источнику), ну и конечно самому диску. разумеется, при таком подходе yubikey ни в коем случае нельзя просто оставлять в ноуте, это полностью нивелирует преимущества от его использования. да, в первом LUKS слоте если что обычный длинный пароль который я теперь почти не использую, разве что я дома и юбикей лень доставать, а во втором — резервный рандомный ключ который надежно хранится в специальном месте. очень удобная схема.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Спасибо за подробности.

у ключа два слота, на которые можно назначить произвольный бинарь, текстовую строку или доступ к генератору one-time password. у меня на короткое нажатие генерируется OTP для доступа к сетевым ресурсам (ssh, kerberos), а на длинное нажатие я сохранил длинную рандомную строку

ncrmnt, а твоя штука может это, или ты какой-то другой режим реализовал?

Krieger_Od ★★
()
Ответ на: комментарий от Krieger_Od

У моего самопального клона йубикея (skeleton-key) 4 кнопки и RGB светодиодик, на которые можно назначить:

1. Генерацию yubikey-совместимого OTP

2. Быстрый набор запомненной строки

3. Генератор красивых хостнеймов

4. Отправку произвольных сканкодов на хост/горячую клавишу.

Все что я реализовал пока. Мне нужны по сути было разовые пароли для owncloud и roundcube. У йуби есть какие-то еще режимы - я в них не вниккл, и не запиливал (HSOTP и прочие)

RGB управляется с хоста - можно использовать для подсветки уведомлений из скайпа/kopete и прочих.

Прикручивается ли их OTP к SSH не смотрел еще. Пока я только сам код на своем uISP отладил, да плату развел. Раньше чем через месяц печатные платы для моих брелков не приедут.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

прикручивается замечательно. https://wiki.archlinux.org/index.php/Yubikey#Two-factor_authentication_with_SSH и вот так поднимается свой сервер аутентификации: https://developers.yubico.com/Software_Projects/YubiKey_OTP/YubiCloud_Validat...

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

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Хотел купить йубикей, но в РФ не завезли и не планируют, из-за бугра шиппинг дорогой и кусается. В итоге психанул, за 2 вечера оладил на uISP своем черновой вариант фирмвари, убедился что yubikey-val скушал сгенеренный мною токен. Сейчас плату практически развел (символы для SMD кнопок нарисовать еще надо). Пока выглядит как-то так: http://images.netbynet.ru/img.php?2b8f485e717925aa656f4739d9d47ffa.png

На неделе отправлю китайцам, в течение месяца приедут. Могу отсыпать немного печаток (самому паять мне лень).

yubikey-ksm и yubikey-val уже поднял, а вот PAM не подымал. Пока.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от val-amart

Угу, такая атака на что угодно возможна, что потребляет ток. Но практически провернуть ее крайне сложно - проще терморектально ключ узнать. Для меня основной смысл йубикея - чтобы пароль от почты/облака не утек, если к зайдут через веб с протрояненой винды/чужого компа.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

я вкурсе что возможно. но. во-первых, есть эффективные способы противодействия, они перечислены в статье и успешно применены в новой прошивке. во-вторых, я бы не сказал что $3k и час времени физического доступа без видимых последствий — это крайне сложно.

энивей, просто хотел поделиться информацией :)

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Сейчас прикинул - у меня это будет сложнее сделать, потому как:

1. Постоянно мешается USB прерывание, которое от раза к разу непредсказуемо и в котором дофига работы (ибо vusb и, соответственно, ногодрыг). Это уже дает эффект рандомизации, так как AES работает не в контексте прерывания.

2. Питание специально сделано шумным, оно подается без доп. развязки на питание ADC, и на не менее шумящий зенер диод, с которого шум семплирует ADC и использует младшие биты в виде источника энтропии для генерации рандома.

3. Сейчас в AES воткнул небольшие рандомизированные задержки, рандомизация идет рандомными данными с ADC.

В теории - должно хватить. Самый годный вариант - батарейку и металлический корпус, но тогда больно большой будет.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от invokercd

Я сейчас начну тестовое внедрение на виртуалку, посмотрим... Пока из граблей я вижу только то что на сервере должно быть правильным время. На всякий случай скрипт выводит текущее время и сделал +-1 минуту толерантность.

В будущем подниму мониторинг точности времени.

Так же вторым каналом хотел добавить duo, но он, оказывается, денег стоит. Пытаюсь найти нормальную альтернативу. Пока мучаю tokenizer.

true_admin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.