Попробовал воспользоваться выданным на работе eToken для доступа на линукс-машину по ssh.
Естественно, на машине, куда я втыкал токен, уже установлен Safenet Authentication Client, родной софт от производителя токена, который содержит PKCS11-модуль libeTPkcs11.so. С его помощью можно использовать этот токен в firefox-е и еще много где, причем с ключами и сертификатами, созданными виндовым софтом.
Интерес представляло, насколько хорошо поддержка pkcs11 интегрирована в OpenSSH.
Наибольшую сложность составило почему-то преобразование открытого ключа, извлеченного из сертификата средствами OpenSSL в формат openssh-вого identity.pub. Команда
ssh-keygen -i -m pem -f filename.pem
злобно ругается на нераспознаваемый формат.
Это потому что, openssl полностью перешла на PKCS8 форматы а под pem в опции -m ssh-keygen понимается старый формат.
Правильная команда выглядит как
openssl x509 -in fromtoken.crt -noout -pubkey >filename.pem
ssh-keygen -i -m PKCS8 -f filename.pem
Получить старый формат средствами OpenSSL можно, Для этого в команде rsa есть ключик -RSAPublicKey_out
Можно взять ключик, выдрранный командой x509 (выше) из сертификата и сконвертировать.
Сертификат из токена достается командой:
pkcs11-tool --module libeTPkcs11.so --type cert --id <какой-там-у-вас-id> --read-object
Эта команда выдает сертификат в формате der на stdout, поэтому надо либо переназначить в файл, либо сразу направлять в openssl x509, не забыв ей сказать -inform DER.
Пин-кода чтение сертификата по очевидным причинам не спрашивает.
После того, как ключ получен и положен куда надо в authorized_keys дальше все просто:
Либо
ssh -I libeTPkcs11.so куда.надо
и мы попадаем на нужный хост, одноразово обратившись к токену.
Либо
ssh-add -s libeTPkcs11.so
и золотой ключик у вас в агенте. В обоих случаях, конечно PIN спросят.
Агент нормально переживает внезапное выдергивание токена. Правда, ключ в списке остается.
Что интересно, при попытке его удалить (командой
ssh-agent -e libeTPkcs11.so
спрашивают пассфразу.
При выдернутом токене.
Поиграться что-ли еще с pam-pkcs11?
Там интересно - предоставляются разные способы мэппинга информации из сертификата на карте в юзернеймы, что полезно в моём случае, поскольку юзернеймы на машине куда ходить и информация помещаемая в сертификат, контролиуются разными людьми. Сертификат - сисадмином конторы, а машина - мной.
Кроме того, в состав pkcs11 входит pkcs11_eventmgr, который позволяет, например, лочить экран при выдергивании токена. Интересно, удастся ли сделать так, чтобы ssh-agent при выдергивании токена "забывал" пассфразу от него, но когда после вставления токена она вводится в screensaver, получал бы ее оттуда средствами pam.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1103668.html. Please comment there using OpenID. Now there are
comments
Оторвал, наконец у своего ноутбука привычку уходить в suspend при закрытии крышки.
Которая появилась при апгрейде на jessie.
Оказалось, что за переход в саспенд при закрытии крышки теперь ответствененен logind.
Раньше это отрывалось на уровне acpi-support.
Нет, все-таки Поттеринга зря не довелит до самоубийства.
Сорок лет не было в unix'е logind. Был login который делал ровно одну вещь -
проверял имя и пароль и запускал то, что для этого имени в /etc/passwd написано. exec-ом.
А теперь завели хрень, которая что-то явно лишнее, и не относящееся к этой задаче делает - реагирует на кнопку питания, закрытие крышки etc.
Нет, я понимаю, что та концепция сессии, которую придумали 40 лет назад для PDP-8 с последовательными терминалами, устарела и её надо менять.
Но то что придумал Поттеринг всем хуже. Оно блин, похоже на того азимовского робота который не мог перемещаться. если у него на плечах не сидел человек. По соображениям безопасности. То есть типа sshd у меня на ноутбуке быть не может.
Понятно, что он не сам это придумиал, он это то ли с MacOS, то ли с андроида слизал.
Но вообще ублюдков. которые притащили в linux из эппловского мира avahi, хочется поубивать с еще большей жестокостью, чем Поттеринга.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1102651.html. Please comment there using OpenID. Now there are
comments
Нашел тут замечательный инстурмент SNIProxy
Позволяет решить задачу раскидывания https-траффика по машинам (в том числе виртуальным), сидящим за однм внешним IP. Причем полноценного такого раскидыванрия. когда каждый сервер имеет собственные ключи и хранит их у себя, может сам проверять клиентские сертификаты etc.
Под Bananian собралось, тестирвоать еще не тестировал, потому что для тестирования нужно иметь хотя бы два https-ных сервера, в локальной сети. А у меня в ЭТОЙ сети нет ни одного.
Хотя, конечно, такую штуку надо держать на роутере, а не на одном из серверов внутри сети. Но собирать ее под dd-wrt или openwrt мне ломы.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1096121.html. Please comment there using OpenID. Now there are
comments
Вчера наконец собрался поиграться с Banana PI.
Для этого надо было собрать в одном месте USB-шную клавиатуру, какой-нибудь дисплей с HDMI входом и нормальную сеть. Последнее привело к тому, что развлекаться этим на работе было крайне неинтересно.
В общем пришлось дождаться пока отец уедет в деревню, оторвать клавиатуру от его машинки (остальные все в доме PS/2) и поюзать его телевизор в качестве дисплея.
Выяснилось, что ставить vanilla jessie из образов вот отсюда - это для настоящих героев, умеющих цепляться к GPIO и имеющх в хозяйстве USB-RS232, - оно там serial console хочет.
Поэтому для начала взял Bananian у которого в sources.list сплошной wheezy, зато ядро 3.4. Можно еще попробовать вот эти образы. Хотя в общем, непонятно зачем. Можно и bananian до jessie сапгрейдить.
И bananian, и они имеют четкие инструкции как пересадить систему на SATA-диск.
Но у меня почему-то прикрутить жесткий диск не получилось. Вернее, несмотря на помощь
3a_5648 не получилось снять с разъема на котором написано SATA Power достаточно питания, чтобы раскрутить диск. Наверное, этим не в час ночи надо заниматься.
Попытался сдизайнить максимально компактный корпус (на предмет согнуть его из жести). Если делать так, чтобы влезал диск, получается примерно 70x30x127мм, при том что разъем аналогового видео и аудио торчит за пределы этих габаритов, а кабелю данных SATA потребуется Г-образный
разъем по крайней мере со стороны платы. (блин, где берут SATA кабели длиной не более 10 см?),
а разъемы питания и HDMI оказывается утоплены очень глубоко в корпус.
Так что вот думаю, а может отказаться от идеи SATA, так и жить на SD? Современные SD вроде довольно живучие. Без диска габариты получаются 65x20x115. Нет, разница не настолько велика, пожалуй, надо все-таки делать корпус под диск. А питание для диска снять прямо с того USB-шнурка, которым питание подается.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1095124.html. Please comment there using OpenID. Now there are
comments