Блок-лист Nebula: распространяйте его сами, маяк этого не сделает
Запись в блок-листе действует только на тех хостах, которые её загрузили. Сравните распространение списка с ротацией CA, а затем проверьте отклонённый узел и работающий.
Применение блок-листа — свойство хоста, который выполняет проверку, а не сертификата, который проверяют. Машина, которая ни разу не загрузила запись, продолжает принимать эту личность, и ничто в рукопожатии не предупреждает, что два узла расходятся. Дешёвое и дорогое исправления для одной раскрытой учётной записи различаются по охвату и по обратимости, поэтому выбирайте осознанно. Разделы ниже описывают, что делает запись, куда её нужно доставить, когда ротация — лучший ответ и как доказать, что сработало любое из двух.
Что на самом деле делает запись в блок-листе
Конфигурация PKI перечисляет отпечатки, которые хост должен отклонять, даже если сертификат корректно подписан и не истёк. Применение происходит локально, по тому списку, который хост загрузил при запуске службы. Ничто из записи не путешествует внутри сертификата, поэтому узел не может узнать решение из предъявленной ему учётной записи. Именно поэтому маяк здесь ни при чём: маяки помогают узлам находить друг друга и передают трафик там, где прямой путь не работает. Это слой обнаружения и передачи, а не канал распространения конфигурации.
Обновление одной машины меняет решения этой машины и оставляет каждый другой узел точно таким, каким он был. Узел, который доверяет подписывающему органу и никогда не видел записи, не имеет причин что-либо отклонять. Поэтому проверка отзыва наблюдением за маяком ничего не доказывает: компонент, за которым вы наблюдаете, никогда не просили применять список.
Идентифицируйте сертификат, а не устройство
Используйте отпечаток той учётной записи, которую собираетесь отклонить, потому что имя хоста, метка устройства или текущий адрес сегодня обозначают одну машину, а в следующем месяце — что-то другое. Ни одна из этих строк не встречается в блок-листе, и ни одна не переживает переустановку. Распечатайте сертификат, прочитайте отпечаток и проверьте, что он принадлежит выводимой учётной записи, а не её замене. Читать оба файла важно, когда замена уже выдана, поскольку старый и новый сертификаты могут делить имя и различаться во всех остальных полях.
Запишите, какой отпечаток был заблокирован и когда, чтобы последующий аудит отличал завершённое изменение от задуманного. Отметьте и то, чего запись не делает: она не аннулирует подписывающий орган и не мешает принять будущий сертификат от этого органа. Блокировка сертификата хоста и замена скомпрометированного органа — разные операции с разными последствиями.
nebula-cert print -path /etc/nebula/host.crt
pki:
blocklist:
- "a1b2c3d4e5f6"
Распространяйте его как любую другую конфигурацию
Относитесь к списку как к конфигурации с механизмом доставки, а не как к файлу, который кто-то правит, когда вспомнит. Отправляйте весь список, а не дельту, чтобы хост, пропустивший предыдущее обновление, сходился, а не накапливал пробелы. Документация PKI Nebula рекомендует именно это, и совет стоит выполнять буквально, а не пересказывать в ручной процесс.
Подтвердите, что работающая служба перезагрузила содержимое, а не только то, что файл на диске изменился. Отслеживайте, какие машины применили изменение, и держите список незакрытых хостов на виду, пока он не станет пустым. Ноутбук, закрытый на неделю, — это узел, который так и не узнал решение, и он может переподключиться из сети, которой никто не ожидал. Запишите способ доставки рядом с отпечатком, потому что следующий отзыв его переиспользует, а на первом и отлаживают процесс.
Блок-лист или ротация органа
Запись в блок-листе узкая: одна личность перестаёт работать, а всё остальное продолжается. Ротация подписывающего органа широка: каждый выданный им сертификат становится недоверенным, и каждому хосту нужны новая учётная запись и новый якорь доверия. Первое — точечный отзыв, второе — миграция, поэтому им нужны разные согласования и разные окна обслуживания. Таблица ставит оба рядом по охвату, трудозатратам и обратимости.
| Question | Blocklist entry | Authority rotation |
|---|---|---|
| What stops working | One identity | Every certificate from that authority |
| Fleet work | Push one file and confirm a reload | New credentials and a new trust anchor everywhere |
| Reversible | Yes, remove the line | No, the old authority stays distrusted |
| Fits | A lost or stolen device | A leaked authority key |
Потерянный ноутбук требует блок-листа, потому что радиус поражения — одна личность, а изменение обратимо, если вы заблокировали не тот отпечаток. Утёкший ключ органа требует ротации, потому что блок-лист не поможет с сертификатами, которые ещё не выданы. Между этими крайностями спросите, могла ли раскрытая учётная запись подписать что-то ещё, ведь орган — это больше одного хоста.
Запишите решение до инцидента, потому что выбор под давлением по умолчанию склоняется к широкому варианту. Какой бы путь вы ни выбрали, оставшаяся работа одинакова: доказать, что применение произошло на тех хостах, которые важны. Именно запись отпечатка и даты в этот момент делает доказательство возможным позже.
Проверьте отказ и остальное
Подключитесь от заблокированной личности и подтвердите отказ, затем подключитесь от авторизованного узла и подтвердите, что он по-прежнему достигает нужного. Изменение, которое ломает всех, — не успешный отзыв. Делайте оба из новых сеансов, потому что кэшированное состояние может скрыть результат.
Проверьте, завершается ли установленный сеанс после изменения, и отметьте поведение для своей версии и конфигурации, вместо того чтобы предполагать, что правка файла что-то завершает. Параметр disconnect_invalid охватывает клиентов, чьи сертификаты истекли или недействительны, поэтому подтвердите, как он применяется в вашем случае, прежде чем на него полагаться. Если немедленное завершение — требование, проверьте именно его и запишите наблюдения. Затем повторите тест после перезапуска, потому что хост, который применяет список только до следующей перезагрузки, имеет проблему доставки, которую первый тест скрыл. Исправный маяк говорит, что обнаружение работает, а не что какой-то узел применил политику.