Кланаванне вобраза VPN-сервера без кланавання яго ідэнтычнасці
Вызначце, ці копія аднаўляе адзін шлюз, ці дадае другі. Шматразовыя ўваходныя даныя, паўнамоцтвы подпісу і сеткавы стан пераносяцца па-рознаму.
Вобраз загружаецца, служба запускаецца, кліенты падключаюцца. Гэта момант спыніцца і спытаць, якая з дзвюх вельмі розных аперацый толькі што адбылася. Або копія аднаўляе адзін лагічны шлюз, які існаваў раней, або яна дадае другі шлюз у флот. Абодва варыянты законныя, і яны маюць розныя наступствы для ідэнтычнасці і доступу. Машына, якая чыста запускаецца, не даказвае ні аднаго з іх.
Тры ўмовы вызначаюць адказ, і гэта тры катэгорыі матэрыялу, які можа несці вобраз. Разбярыце іх да зборкі вобраза, а не пасля таго, як ён быў разгорнуты двойчы.
Спачатку вызначце, якую з дзвюх аперацый вы выконваеце
Аднаўленне захоўвае адну ідэнтычнасць службы. Стары асобнік знік, імя і сертыфікат застаюцца, і кліенты працягваюць давяраць той жа канцавой кропцы. Даданне стварае другую ідэнтычнасць, якую кліенты, журналы і адкліканне павінны адрозніваць.
Розніца не касметычная. Калі два жывыя хасты прадстаўляюць адзін і той жа сертыфікат шлюза, кліент не можа іх адрозніць, і аўдытарскі след таксама, а адкліканне гэтага сертыфіката выдаляе абодва адразу. Магчыма, гэта менавіта тое, чаго хоча наўмысная схема высокай даступнасці, і рэдка тое, што мае на ўвазе спешная копія вобраза.
Такім чынам, першае рашэнне — гэта сказ, запісаны да таго, як вобраз пакіне хост зборкі: гэтая копія аднаўляе шлюз 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, якая мела сэнс на першым хосце.
Калі вобраз з жывымі сакрэтамі ўжо выйшаў за зацверджаныя межы, заменіце ўліковыя даныя і стрымайце копіі. Выдаленне файла з апошняй зборкі — гэта не тое ж самае, што вывад у адстаўку ўліковых даных, якія старыя копіі ўсё яшчэ трымаюць, і прамежак паміж гэтымі двума фактамі — гэта менавіта тое акно, якое патрэбна зламысніку.