Что такое iid файл

Обновлено: 07.07.2024

TL;DR В этот статье мы установим single sign-on для SSH от Google. За кулисами мы воспользуемся OpenID Connect (OICD), краткосрочными SSH сертификатами, несколькими хитростями конфигурации SSH, и опенсорсными пакетами step-ca и step от Smallstep. Мы настроим SSH Certificate Authority и воспользуемся им, чтобы загрузить в нашей системе нового пользователя и новый хост. Этот метод привносит много преимуществ помимо single sign-on, так как отпадает нужда в сборе, передаче и контроле файлов authorized_keys , хоть и требует больше подготовительной работы по сравнению с настройкой типичной пары открытого/секретного SSH ключей.

Как не следует пользоваться SSH

Еще в далеком 2004 году кто-то научил меня копипастить открытый ключ в файл authorized_keys . С тех пор я продолжал невинно копировать один и тот же старый публичный ключ на каждый сервер, с которым мне приходилось работать, и у меня постоянно не получалось сделать это с первого раза, потому что я забывал корректно настраивать chmod .

Лишь однажды, когда в 2015 году OpenSSH объявил мой тип ключа устаревшим, я с неохотой заменил свой ключ. Теперь, за давностью лет, остается только гадать, на каких серверах мой открытый ключ все еще лежит. Может, у старых стартапов, с которыми я когда-то работал? У клиентов с фриланса? На криптоферме моей племянницы?

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

Большинство организаций обычно создают сценарий (playbook) для автоматизации управления файлами authorized_keys , однако их сбор, выгрузка и обслуживание остаются месивом вне зависимости от продуманности исполнения.

Single Sign-On с OpenID Connect и SSH сертификатами

Вместо использования файлов authorized_keys мы настроим SSH Certificate Authority и осуществим доступ по SSH через краткосрочные сертификаты, а для поддержки single sign-on мы добавим OpenID Connect (OICD). Как только у нас все получится, результат будет отменный, поэтому прошу вашего терпения, так как нам понадобится чуть больше подготовительных настроек, чем при типичной SSH-конфигурации «из коробки».

Что такое SSH сертификат? SSH сертификат — это альтернатива, которая превосходит пару открытого/секретного SSH ключей. Пользователь и хост обмениваются сертификатами в ходе SSH-соединения (handshake), своего рода урезанной версии сертификата TLX X.509, в той же манере что и пара SSH ключей. Для более глубоко анализа рекомендуем ознакомиться со следующей статьей.

Ниже можно увидеть расшифрованный SSH сертификат:


Пользовательские сертификаты, как на примере выше, позволяют хостам опознавать пользователей, а сертификаты хостов помогают пользователям опознавать хосты. Ключевым различием является поле Principals .

По умолчанию, в ходе SSH соединения SSHD позволит войти в хост под именем пользователя из поля Principals пользовательского сертификата. Аналогично, SSH ожидает увидеть искомое имя хоста в поле Principals сертификата хоста.

Кроме того, у сертификатов могут быть расширения, которые допускают привелегированные SSH функции (например, agent forwarding и port forwarding) или форсируют директивы конфигураций.

Чтобы у нас все заработало, мы настроим SSH Certificate Authority (CA), а именно — step-ca сервер от Smallstep. При наличии у них соответствующих полномочий, пользователи и хосты буду получать SSH сертификаты от нашего CA.

Ниже представлена схема того, как Алиса получает свой пользовательский сертификат и заходит в хост:


Мы проведем настройку CA через работающий совместно с нашим инструментом командной строки step блоком конфигурации OpenSSH.

Преимущества

Чего в этой статье нет

  • Более тесной интеграции с поставщиками идентификации (например, синхронизации с директориями SCIM или LDAP).
  • Добавления поддержки использования сертификатов для sudo .
  • Расширенных списков управления доступом (access control lists, ACLs) для определения доступа между пользователями и группами хостов.
  • Резервного копирования базы данных CA.
  • Немедленного отзыва пользовательского сертификата, еще до его истечения.

Обязательные условия перед началом

  • Ваши хосты находятся на EC2.
  • Ваши пользователи находятся на одном домене GSuite.
  • У вас есть локально установленный инструментарий step
    • Для macOS вы можете запустить brew install step .
    • Для Linux вы можете воспользоваться пакетами Debian.

    Но я не хочу пользоваться Certificate Authority!

    Возможно, вы думаете, что это сложно и страшно. Такую репутацию Certificate Authorities заработали из-за загадочных подробностей сертификатов TLS X.509, одного только числа акронимов в мире ИОК (инфраструктуры открытых ключей, PKI), и сложности таких инструментов, как openssl.

    Кроме того, у больших CA, например Let's Encrypt, есть огромное число ответственностей по обеспечению безопасности интернета.

    Мы не будем пользоваться Let’s Encrypt.

    SSH сертификаты проще, чем TLS сертификаты. SSH CA попросту позволяет нам делегировать часть ответственностей в области аутентификации и авторизации множества хостов одному централизованному сервису.

    В этом проекте мы настроим CA с тремя поставщиками — тремя методами выдачи сертификатов:

    • Для пользовательских сертификатов мы воспользуемся поставщиком OAuth OIDC, соответствующим нашему Google OAuth приложению. Мы доверяем Google в надежном доступе людей и выдаче только корректных, подписанных Google токенов идентификации OAuth аутентифицированным пользователям. CA проверит токен открытым ключом Google.
    • Для новых EC2 хостов нам потребуется поставщик AWS, соответствующий нашему AWS аккаунту. Новые хосты будут запрашивать SSH сертификаты хостов через этого поставщика. Мы доверяем AWS в предоставлении подписанных Amazon IIDs, и CA проверит их открытым ключом Amazon.
    • И наконец, для еженедельного обновления сертификатов хостов мы воспользуемся поставщиком SSHPOP.

    1. Создайте учетные данные Google OAuth

    В этом проекте вам потребуются учетные данные Google 2.0 OAuth, их создание займет пару минут.

    • Создайте его в том GSuite Organization, в котором вы будете пользоваться single sign-on.
    • При выборе вида приложения (Application Type) выберите Прочее (Other)

    2. Запустите ваш Certificate Authority

    Мы установим step-ca на Ubuntu 18.04 LTS в инстансе AWS. Нам должно хватить бесплатного уровня инстанса AWS (t2.micro/t3.micro).

    • ID OICD клиента
    • OICD client secret
    • Доменное имя вашего GSuite
    • Имя вашего CA
    • Пароль корневого ключа
    • Вашу почту

    Воспользуйтесь своим PEM ключом, чтобы подключиться к вашему CA инстансу.

    Результат User Data скрипта находится в /var/log/cloud-init-output.log . Проверьте его и убедитесь, что все инициализировано корректно и step-ca работает.

    CA должен создать следующие ключи и сертификаты:

    • /etc/step-ca/certs/root_ca.crt — корневой TLS сертификат вашего CA (самоподписаный).
    • /etc/step-ca/certs/ssh_host_ca_key.pub — CA SSH ключ хоста дает пользователям верифицировать сертификаты хостов.
    • /etc/step-ca/certs/ssh_user_ca_key.pub — CA SSH ключ пользователя дает хостам верифицировать сертификаты пользователей.
    • У вас также будут секретные ключи подписи CA (в /etc/step-ca/secrets ) для указанных выше сертификатов и ключей. Для дешифровки этих ключей CA при загрузке прочитывает их пароли из файла /etc/step-ca/password.txt .


    От вашего CA вам потребуется немного информации:

    • Публичное имя хоста, чтобы мы могли его снова найти.
    • Отпечаток корневого сертификата — для установки общего TLS соединения с этим хостом.


    Не забудьте записать это. Ваш CA заработал!

    Загрузите новый хост

    Давайте загрузим инстанс Ubuntu, который станет нашим первым ssh target хостом.

    Заметка: Ваш CA будет выдавать сертификаты хоста только инстансам на его аккаунте AWS.

    В этот раз для запуска нового инстанса воспользуйтесь User Data скриптом хоста и заполните следующие значения:


    Таким образом, мы получаем сертификат хоста в обмен на Instance Identity Document (IID) и его подпись.

    Кстати об IID… В случае если вы раньше никогда с ними не работали, вот так выглядит один из них:


    Этот сегмент JSON подписан Amazon, так выглядит подпись:


    Авторизируйтесь с вашим PEM ключом и проверьте, что все запустилось корректно. Результат вашего User Data скрипта должен быть в /var/log/cloud-init-output.log .

    Создайте себе на хосте пользователя

    Логин нового пользователя, которого вы создадите, обязательно должен совпадать с именем почты, через которую вы авторизовались в Google, например:


    Вот мы и закончили настройку со стороны хоста!

    4. На борту нового аккаунта

    Давайте настроим ваш первый пользовательский аккаунт. Запустите на вашем локальном устройстве следующее:


    Эта команда установит и настроит на вашем устройстве корневой сертификат CA. У вас появятся два новых файла:

    /.step/config/defaults.json (файл конфигурации step ) и

    /.step/certs/root_ca.crt (TSL сертификат вашей корневой CA).

    После этого мы можем выдать себе пользовательский сертификат:


    Что делает эта команда?

    1. Запускает ваш системный браузер и запускает процесс авторизации Google OICD.
    2. После авторизации полученный от Google токен ID отправляется вашему CA.
    3. Ваш CA подтверждает токен и выдает соответствующий вашей почте SSH сертификат.
    4. Сертификат добавляется к вашему SSH агенту. Чтобы взглянуть на него, воспользуйтесь step ssh list , а чтобы разобрать и изучить — step ssh list --raw | step ssh inspect .


    Эта команда делает следующее:

      Сначала она достает открытый ключ хоста CA — он используется для верификации сертификатов хоста — и устанавливает этот ключ в вашу конфигурацию SSH со следующим результатом (хранящимся в

    Команда обращается к вашему CA и спрашивает, есть ли у имени хоста, к которому вы пытаетесь соединиться через SSH, соответствующий сертификат. Если он есть, команда возвращает true. Мы не хотим, чтобы управляемые CA хосты вмешивались в ваш sconfig каких-либо других хостов.

    Директива ProxyCommand осуществляет всю магию процесса Single Sign-On. Прежде чем инициировать подключение, step ssh proxycommand проверит ваш SSH сертификат, и если он отсутствует или истек, она проведет вас через процесс OAuth OIDC и запросит новый сертификат от вашего CA.

    Заметка: Блок конфигурации вашего CA определяется шаблоном, который хранится в <code>/etc/step-ca/templates/ssh, и при желании что-либо поменять, например, убрать директиву ForwardAgent , достаточно обратиться к этому шаблону.

    Время попробовать!

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


    Вуаля! У вас получилось.

    Совет: Вы можете запросить у CA список всех хостов, которым были выданы сертификаты, через команду step ssh hosts .

    Как мне зарегистрировать в CA уже существующий хост?

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

    Заметка: Созданный скриптом Instance Identity токен — это одноразовый токен. Вы не можете перерегистрировать хост, вы можете лишь обновить его сертификат. Почему? Потому что любой пользователь на хосте может в любой момент получить доступ к IID, и мы не хотим, чтобы пользователи могли получить сертификат хоста от CA.

    Могу я пользоваться другим поставщиком OAuth OIDC?

    Конечно! Для этого достаточно поменять сетевой адрес сервера конфигурации OAuth и поменять имя поставщика OIDC в User Data скрипте для CA.

    Могу я пользоваться GCP или Azure вместо AWS?

    Да! У step-ca есть поставщики для всех трех, вам только нужно будет внести правки в конфигурацию CA и скрипт загрузки хоста. Более подробно об этом можно почитать в документации поставщиков step-ca .

    Могу я использовать хост-бастион (инсталляционный сервер)?

    Можете. Сначала выдайте всем своим хостам сертификаты, а затем добавьте в known_hosts на вашем бастионе CA ключ хоста:


    После этого достаточно будет ssh к бастиону, и затем ssh к внутреннему хосту.

    Могу я изменить срок действия SSH сертификата?

    Да. По умолчанию они действительны 16 часов, и в файле конфигурации CA ( ca.json ) под объектом claims , у вашего поставщика OIDC, вы можете внести изменения в соответствующих строчках, например:

    Буду ли я отрезан от всех своих хостов при отключении моей CA?

    Будете, хотя SSH и SHHD не взаимодействуют с CA напрямую. CA выдает сертификаты и поддерживает базу данных хостов. Ваши пользователи полагаются на эту базу, чтобы понять, нужно ли пробовать соединяться с хостом через аутентификацию сертификата.

    Для безопасности системы не пользуйтесь SSH сертификатами для подключения напрямую к CA: это единственное место, где стоит и дальше использовать пары ключей.

    Могу я использовать хосты на нескольких AWS аккаунтах?

    Конечно. Для этого достаточно добавить ID аккаунта в файл конфигурации CA ( /etc/step-ca/config/ca.json ) и перезапустить сервер CA.

    Как мне добавить поддержку sudo ?

    Что еще я могу сделать со своей CA?

    Многое! Теперь, когда у вас есть свой личный CA, вы можете настроить TSL сертификаты для шифрования всего своего внутреннего трафика через общие TLS. Если вы хотите узнать побольше о CA, поставщиках, вариантах конфигурации и прочем, прочтите Step Certificates Documentation.

    Если появилась ситуация, в которой Вы не можете открыть файл IID на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей IID среди установленных на Вашем компьютере.

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

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

    Программа(ы), умеющие открыть файл .IID

    Mac OS

    Возможные проблемы с файлами в формате IID

    Отсутствие возможности открытия и работы с файлом IID, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом IInstaller Idirectory. Ниже находится список возможных проблем.

    • Повреждение открываемого файла IID.
    • Ошибочные связи файла IID в записях реестра.
    • Случайное удаление описания расширения IID из реестра Windows
    • Некомплектная установка аппликации, обслуживающей формат IID
    • Открываемый файл IID инфицирован нежелательным, вредным программным обеспечением.
    • На компьютере слишком мало места, чтобы открыть файл IID.
    • Драйверы оборудования, используемого компьютером для открытия файла IID неактуальные.

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

    Похожие расширения

    Как связать файл с установленной программой?

    Если Вы хотите связать какой-то файл с новой программой (напр. moj-plik.IID) Вы можете воспользоваться двумя вариантами. Первый и самый простой - это нажатие правой кнопкой мышки на избранный файл IID. Из открытого меню выберите опцию Выбрать программу по умолчанию", затем опцию "Пересматривать" и найти требуемую программу. Всю операцию необходимо утвердить нажатием кнопки OK.

    Есть ли универсальный метод открытия неизвестных файлов?

    Многие файлы содержат данные в виде текста или чисел. Возможно, что во время открытия неизвестных файлов (напр. IID) популярный в системе Windows простой редактор текста, которым является Notatnik позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.

    Обычно решить проблему с файлом IID просто - просто установите соответствующее программное обеспечение и откройте файл. Прочтите руководство и откройте файл IID прямо сейчас!

    1. 1. IID расширение файла
    2. 2. Как открыть файл IID?
      1. 2.1 Установите программу, которая поддерживает IID файлы
      2. 2.2 Найти и скачать подходящее программное обеспечение
        1. 2.2.1 Программы, поддерживающие файлы с расширением IID

        IID расширение файла

        • Тип файла IInstaller Idirectory
        • Разработчик файлов i-Installer Team
        • Категория файла Другие файлы
        • Рейтинг популярности файлов

        Как открыть файл IID?

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

        Шаг 1: Установите программу, которая поддерживает IID файлы

        Если приложение, поддерживающее файлы IID, установлено в системе пользователя, но не используется для открытия таких файлов по умолчанию, щелкните правой кнопкой мыши значок файла и выберите в меню пункт «Открыть с помощью». Затем выберите подходящее приложение и установите флажок «Всегда использовать выбранное приложение для открытия файлов такого типа». Система будет хранить эту информацию в своем реестре и использовать выбранную программу для открытия файлов с расширением IID по умолчанию.

        Подсказка для пользователей Mac OS

        Для пользователей Mac OS процедура аналогична - откройте меню файла, щелкнув правой кнопкой мыши по файлу IID, выберите опцию «Информация» и выберите опцию «Открыть с помощью программы». В подменю выберите приложение и нажмите кнопку «Изменить все».

        Шаг 2: Найти и скачать подходящее программное обеспечение

        Невозможность открыть файлы IID также может быть связана с отсутствием какого-либо приложения, поддерживающего данный файл, устанавливаемого в системе. В этом случае пользователь должен загрузить и установить одно из следующих приложений. После установки система автоматически свяжет вновь установленное приложение с файлами IID. Если этот шаг не пройден, см. Шаг 1.

        Если файл .IID известен Вашей системе, то открыть его можно двойным нажатием мышкой или клавишей ENTER. Эта операция запустит ассоциируемые с файлом .IID аппликации, установленные в системе. Если система встречает файл впервые и отсутствуют соответствующие ассоциации, то акция закончится предложением системы, найти соответствующее программное обеспечение в компьютере либо сети интернет.

        Иногда случается, что для обслуживания типа файлов .IID приписана неправильная программа. Это случается в следствии действия враждебных программ, таких как вирусы или вредоносные программы, но чаще всего это результат ошибочного совмещения аппликации с расширением файла .IID. Если во время обслуживания нового типа файлов .IID мы укажем системе неправильную программу, то система ошибочно будет рекомендовать ее использование всякий раз, когда будет встречаться файл этого типа. В таком случае следует попробовать повторно выбрать соответствующую аппликацию. Нажмите правой кнопкой мышки на файл .IID, а затем выберите из меню опцию "Открыть с помощью. " затем "Выбрать программу по умолчанию" . Сейчас выберите одну из установленных аппликаций из вышеуказанного списка и попробуйте снова.

        Rate
        Rate
        Rate
        Rate
        Rate

        MAC

        Ручное редактирование Реестра Windows

        Если наша система не справляется с расширением .IID и подвели все автоматические и полуавтоматические методы обучения его этому искусству, остается ручное редактирование реестра Windows. Этот реестр хранит всю информацию, касающуюся рабоы нашей операционной системы, в том числе соединения расширений файлов с программами для их обслуживания. Команда REGEDIT вписанная в окне „поиск программ и файлов” или „запустить в случае старших версий операционной системы, предоставляет нам доступ к реестру нашей операционной системы. Все операции, проведенные в реестре (даже не очень сложные, касающееся расширения файла .IID) имеют значительное влияние на работу нашей системы, поэтому прежде чем проводить какие-либо модификации следует убедится, что сделана копия актуального реестра. Интересующий нас раздел - это ключ HKEY_CLASSES_ROOT. Следующая инструкция показывает, шаг за шагом, как модифицировать реестр, а конкретно запись в реестре, содержащую информацию о файле .IID.

        Читайте также: