Я не понимаю, как решить проблему курицы или яйца при автоматизации установки серверов.
У меня есть ряд серверов, которые можно перестроить через PXE. Когда машина перестраивается, она загружает все необходимые ей настройки, включая свой личный сертификат, который она будет использовать для аутентификации себя при использовании различных сервисов в дальнейшем, с сервера Apache. Этот сервер Apache идентифицирует клиентов по их IP-адресам, чтобы либо предоставить им конфигурацию или сертификат, предназначенные для данного сервера, либо отказаться от их предоставления.
Однако IP-адрес клиента может быть подделан. То же самое касается и MAC-адреса, если в какой-то момент я добавлю и такую проверку.
Чтобы безопасно получить его конфигурацию и его личный сертификат, машина, которая загружается через PXE, должна уже иметь сертификат, который она могла бы использовать при взаимодействии с сервером Apache. Однако это не выглядит возможным, так как машина, которая загружается через PXE, либо совершенно новая, либо в любом случае отформатирует свой диск во время установки.
Я что-то упустил? Как мне определить новую машину без риска подделки?
Стоит ли использовать постоянно подключенный USB-ключ, содержащий закрытый ключ? Или есть другие варианты?
решение1
Мы используем бригадираплагин загрузочного дискадля этой цели. Я не подразумеваю, что это правильный или уникальный способ, это то, что мы успешно используем.
Каждый раз, когда хосту необходимо (повторно) предоставить, генерируется кратковременный токен, который хранится в базе данных, связанной с хостом. Этот токен помещается в файл iso с двоичным файлом ipxe и скриптом, который загружает файл kicstart с хоста предоставления, только если он предлагает правильный токен в качестве идентификатора. После предоставления хоста токен удаляется. По истечении определенного (настраиваемого, из головы выскочило, по умолчанию 60 минут) токен становится недействительным.
Это работает как с BIOS, так и с прошивкой UEFI, и нет необходимости в pxe, только http(s), так что вы действительно можете иметь интернет-развертывания с небольшими изменениями (удобно для развертывания оборудования в удаленных местах).