Образът стартира, услугата тръгва и клиентите се свързват. Това е моментът да спрете и да попитате коя от две много различни операции току-що се е случила. Или копието възстановява един логически шлюз, който е съществувал преди, или добавя втори шлюз към флота. И двете са законни и имат различни последствия за самоличността и достъпа. Машина, която се вдига чисто, не доказва нито едно от двете.

Три условия решават отговора и това са трите категории материал, които един образ може да носи. Подредете ги преди образът да бъде изграден, а не след като е бил разгърнат два пъти.

Първо решете коя от двете операции извършвате

Възстановяването запазва една самоличност на услуга. Старата инстанция е изчезнала, името и сертификатът остават и клиентите продължават да се доверяват на същата крайна точка. Добавянето създава втора самоличност, която клиентите, журналите и оттеглянето трябва да различават.

Разликата не е козметична. Ако два живи хоста представят един и същ сертификат на шлюз, клиентът не може да ги различи, одитната следа също не може, а оттеглянето на този сертификат премахва и двата наведнъж. Това може да е точно това, което иска умишлен дизайн за висока наличност, и рядко е това, което има предвид прибързано копие на образ.

Затова първото решение е едно изречение, записано преди образът да напусне хоста за изграждане: това копие възстановява шлюз A или това копие става шлюз B. Всичко след това е счетоводство спрямо изречението. Ако никой не може да го напише, копието не е готово за изграждане.

Многократно използваеми входни данни, самоличност и правомощия, състояние на разгръщане

Категорията за многократна употреба е лесната: пакети, прегледана конфигурация без тайни, шаблони за услуги, настройки за засилване на сигурността. Точно в това образът е наистина добър и може да се възпроизвежда без ограничение.

Категорията самоличност и правомощия е мястото, където копията се объркват. Частният ключ и сертификатът на шлюза идентифицират този шлюз пред всеки клиент. Ключът за подписване на сертифициращия орган е различен обект с различна мощ: той издава самоличности. Да се доверявате на издател не означава, че всеки нов шлюз се нуждае от способност да издава, а изпращането на ключа за подписване вътре в образ дава тази способност на всичко, което може да прочете образа.

Категорията състояние на разгръщане е тази, която хората забравят, защото изглежда като конфигурация. Адреси за слушане, пулове от адреси, изтласквани маршрути, настройки на резолвера и локална интеграция кодират предположения за първия хост. Втори възел, който ги копира, може да разпределя от пул, който друг шлюз вече притежава, или да насочва клиенти към ресурс, който съществува само до оригинала.

Какво трябва да получи новият възел и от кого

Самостоятелно управляван възел трябва да получи собствените си идентификационни данни чрез одобрения процес за записване, като операцията по подписване се извършва там, където живее ключът за подписване, а не на новия хост. Запишете коя самоличност може да бъде оттеглена, без да се смущават другите възли; ако отговорът е „всички“, дизайнът има една самоличност, която се представя за две.

Мрежовите стойности заслужават същото отношение. Изберете пул, адрес за слушане и набор от изтласквани маршрути, които не се сблъскват със съществуващия шлюз, и ги запишете във входните данни за осигуряване, а не в образа. Входните данни подлежат на преглед; образът не.

Има законен междинен случай. Поддържан дизайн за възстановяване или репликация може умишлено да запази една логическа самоличност на услуга на няколко хоста, с контролиран достъп до старото копие и план за ротация. Това е решение с отговорник, а не настройка по подразбиране, която се случва, защото образът е бил удобен.

openssl x509 -in /etc/openvpn/server/server.crt -noout -subject -issuer -dates
find /etc/openvpn -name '*.key' -o -name '*.pem' | head -20

Първата команда показва коя самоличност възелът всъщност представя и кой я е подписал. Втората е начална инвентаризация, а не доказателство: частен материал може да живее извън тази директория, вътре в база данни на приложение или в слой на снимка, който работещата файлова система вече не показва.

Какво носи тихо едно копие на образа

Изтриването на файл от най-новата ревизия на образа не го премахва от по-старите ревизии, кешовете на слоеве или снимките, направени, докато е съществувал. Затова образите с идентификационни данни трябва да се третират като чувствителни обекти през целия им живот, а не само в момента на изграждане.

Проверете съдържанието на образа и входните данни за осигуряване като отделни въпроса. Образът отговаря на „какво има вътре в този артефакт“, а входните данни — на „какво ще стане тази инстанция при първото стартиране“. Чист образ със скрипт за първоначално зареждане, който изтегля споделен ключ, отговаря добре на първия въпрос и зле на втория.

Дръжте образите за възстановяване, които законно съдържат тайни, ограничени до хората, които се нуждаят от тях, и записвайте къде се съхраняват. Алтернативата — образ, който е удобен, защото работи без никакво осигуряване — е същият образ, който дава на всеки, който го намери, самоличността на шлюза. Само една от тези две задачи се появява в журнала за изграждане.

Проверки за допускане преди производство

Преди възелът да поеме трафик, потвърдете четири неща: самоличността, която представя, клиентите, които ще приеме, ресурсите, до които му е разрешен достъп, и обратния път за адресите, които раздава.

systemctl status openvpn-server@lab --no-pager
ss -lunp 'sport = :1194'
ip -4 route show table all | grep -F '10.90.'

След това проверете отрицателния случай, който именно хваща инцидентите: има ли новият възел администраторски или клиентски достъп, предназначен за оригинала? Копирана конфигурация може да носи допълнителен запис за клиент, наследен маршрут за управление или push директива, която е имала смисъл на първия хост.

Ако образ с живи тайни вече е излязъл извън одобрените си граници, сменете идентификационните данни и овладейте копията. Премахването на файла от последната сборка не е същото като извеждането от употреба на идентификационните данни, които по-старите копия все още държат, а разликата между тези два факта е точно прозорецът, от който се нуждае нападателят.

Подобни статии