VPN сертификат органын алмаштыруу файл алмаштыруу эмес. Жаңы CA өзүнүн биринчи сертификатына кол койгон учурда эле гана эскиге ишенген ар бир валидатор чечим кабыл алышы керек, ал эми жаңы якорду эч качан албаган хосттор жакшы өнөктөштөрдү четке кагууну улантат. Мен мунун эки багытта тең бузулганын көрдүм: шлюз жаңы CA-ны үйрөндү, кардарлар үйрөнгөн жок, ошондуктан жаңы туташуулар ишке ашпай калды, ал эми мурун көтөрүлгөн туннелдер ордунда калып, үзгүлтүктү маршруттоо көйгөйүнө окшотту. Эмне өзгөрөрүн, мүчүлүштүктөр пайда болгон тартипте келтирдим.

Бир алмаштыруу, эки өзүнчө өзгөрүү

Сертификат органы — бул ат, ачык ачкыч жана кол койгон жашыруун ачкыч. Валидаторлор «CAга» эч качан дерексүз ишенишпейт. Алар ишеним кампасында мурун эле турган белгилүү бир сертификатка ишенишет жана кол тамгалардын тизмеги ошол сакталган көчүрмөгө жеткенде гана чыгаруучуну кабыл алышат. Ошондуктан CA-ны алмаштыруу бири-бирине көз карандысыз иштен кетүүчү эки нерсени өзгөртөт: кайсы якорлор кабыл алынат жана алардын астында кайсы өнөктөш инсандыктары берилди.

VPN жайгаштырууларынын көбү эки багытта тең текшерет. Кардар шлюздун сертификатын, ал эми шлюз кардардын сертификатын аутентификациялайт. Бир гана кардар топтомун жаңырткан алмаштыруу серверди эски CA инсандыгын дагы эле көрсөтүп жаткан ар бир кардарды четке кагууга мажбурлайт, ал эми тескериси да ошончолук кеңири таралган. Адегенде аткаруу чекиттерин тизмелеңиз: кардарлардын ишеним кампалары, шлюздун ca файлы, анын алдында TLS-ти бүтүрүүчү каалаган прокси жана акыркы чекитти сырттан текшерүүчү зонд.

Валидатор эмнени текшерет, тартиби менен

Жолду валидациялоо өнөктөштүн сертификатынан ортоңкулар аркылуу ишенимдүү якорго жеткенге чейин көтөрүлөт. Ар бир кадамда ал кол тамганы текшерет, ар бир сертификат өзүнүн жарактуулук терезесинде экенин көзөмөлдөйт жана негизги чектөөлөр менен ачкыч колдонуу чыгаруучуга кол коюуга жол берерин ырастайт. Ошондон кийин гана колдонмо жалбырак сертификатына көз чаптырат: субъекттин альтернативалуу аттары терленген атты камтышы керек, ал эми кеңейтилген ачкыч колдонуу сервер же кардар аутентификациясына жол бериши керек.

Бул жолду офлайн кайталоо үчүн -CAfile көрсөткүчүн орнотула турган так топтомго багыттаңыз, система кампасына эмес. Болбосо сиз өзгөрүүнү эмес, хостту текшерип жатасыз:

openssl verify -CAfile new-ca.crt gateway.crt
openssl verify -CAfile new-ca.crt -untrusted intermediate.crt client.crt
openssl x509 -in gateway.crt -noout -subject -issuer -dates
openssl s_client -connect gw.example.net:443 -CAfile new-ca.crt

Бул буйрук шлюздун HTTPS башкаруу бети сыяктуу жөнөкөй TLS угуучуга каршы гана иштейт; OpenVPN башкаруу каналы TLSтен мурун келет, ошондуктан s_client туннелдин кол алышуусун текшере албайт.

Ошол каталардын артындагы жол куруу эрежелери RFC 5280 6-бөлүм ичинде турат. Алар болбосо өзүмчүл көрүнгөн ийгиликсиздиктерди түшүндүрөт: эч ким эсинде сактабаган мөөнөтү өткөн ортоңку сертификат, ачкыч колдонуусу кол коюуга тыюу салган сертификат же сиз текшерген хостту четтетүүчү ат чектөөсү.

Эски туннел эмнеге иштешин улантат

TLS жана OpenVPN экөө тең кол алышуу бүткөндөн кийин түзүлгөн сессияны тирүү кармайт. Эч нерсе өнөктөштүн сертификатын ар бир пакетте кайра текшербейт, ошондуктан өзгөрүүгө чейин туташкан кардар кайра сүйлөшүү, кайра туташуу же туннел кулаганга чейин трафикти өткөрүп турат. Ушул боштук CA алмаштыруунун бир саат жакшы көрүнүп, анан эң жаман учурда иштебей калышына себеп: ноутбук уйкудан ойгонот, NAT картасынын мөөнөтү бүтөт, шлюз кайра иштетилет.

Сессияны улантуу бул элести дагы созот. TLS сессия билети кардарга сертификаттарды кайра жибербестен кайтууга мүмкүндүк берет, ал эми улантуу жол валидациясын өткөрүп жиберет, анткени биринчи кол алышуу аны мурун эле жасаган. Ошондуктан ак ниет сыноо — жаңы процесстеги толук кол алышуу. Туннелди кайра туташтыруунун ордуна кардарды кайра иштетиңиз, ал эми сыноо профилинде билеттерди өчүрүүнү караштырыңыз, ошондо улантуу жолу үзүлгөн тизмекти жашыра албайт.

Статикалык ачкыч катмарын будан өзүнчө кармаңыз. tls-auth башкаруу каналына HMAC кошот, tls-crypt аны шифрлейт жана аутентификациялайт, жана экөө тең сертификат материалын ташыбайт, ошондуктан кайсынысын айландыруу болбосун өзүнүн ийгиликсиздик режими бар өзүнчө өзгөрүү. Экөөнү аралаштырган жайгаштыруулар статикалык ачкычы жайында, сертификаты эскирген жана ката билдирүүсү экөөнү тең эске албаган кардар менен бүтөт.

Субъект атын кайра колдонуу тузагы

Төмөндө эч нерсе өзгөрбөшү үчүн мурункунун айырмалоочу атын кайра колдонуу кызыктырат. Бул интерфейсте чыгаруучу сабын туруктуу кармайт жана сизге керектүү жалгыз сигналды жок кылат. Субъектилери бирдей, ачкычтары башка эки сертификатты ат боюнча ажыратуу мүмкүн эмес, ошондуктан эки якорду кармаган топтом валидаторго эки талапкерди берет, тандоо эрежесинсиз.

Анда жол куруу туура эмести тандашы, туура якор ордунда турганы менен «жергиликтүү чыгаруучунун сертификаты алынган жок» деп билдириши же талапкерлердин тартиби башка болгондуктан бир хостто ийгиликтүү болуп, экинчисинде ушул эле топтом менен ийгиликсиз аякташы мүмкүн. Атты кайра колдонуу милдеттүү болсо, өтмө мезгилде эки якорду өзүнчө файлдарда кармап, аларды ачык жүктөңүз жана ар бир өнөктөш жаңы чыгаруучуну көрсөткөндөн кийин гана бириктириңиз. Болбосо алмаштырууга өзүнчө жалпы ат бериңиз — муун же күн мүчөсү жетиштүү — журналдар менен ката тексттери ийгиликсиз өнөктөштүн кайсы органдын астында берилгенин айтышсын.

Тармакты кулатпаган айландыруу

Пландалган алмаштыруу үчүн бир кадам менен алмаштыруунун ордуна чектелген убакытка эки якорду тең кабыл алыңыз. Жаңы CA менен анын ортоңкуларын чыгарыңыз, жаңы якорду ар бир валидатордун топтомунда эскинин жанына коюңуз жана ошондон кийин гана андан өнөктөш сертификаттарын чыгара баштаңыз. Эски инсандыгы бар өнөктөштөр эски якорго каршы валидацияланат; жаңылары жаңысына каршы иштейт.

Ушул тартипте жасалса, ар бир кадам кайтарылат. Сиз качкан ийгиликсиздик — бир убакта алмаштыруу: топтом жаңыртуусун өткөрүп жиберген кардар эски якорду мурун эле чыгарып салган шлюзга туш болот, кол алышуу өлөт жана эч бир журнал кайсы тарап эскиргенин айтпайт.

Каршы багытта чыгарып салыңыз. Аман калышы керек болгон ар бир инсандыкты кайра чыгарыңыз, ар бири жаңы тизмекти көрсөтөрүн ырастаңыз, анан топтомдордон эски якорду алып салыңыз. Эски CAнын жашыруун ачкычын кызматтан чыгарыңыз, анткени дагы эле кол койо алган чыгаруучу айландыруу бүтө электигин билдирет. Сертификаттар менен берүү жазууларын аудит үчүн сактаңыз. Жоголгон чыгаруучу ошол эле ишенимге калыбына келет; ашкереленүү жаңы инсандыктарды талап кылат жана эски якорго кайтууга болбойт.

Файлдардын тизмесин эмес, жыйынтыкты текшериңиз

Күтүлгөн папкадагы ишеним файлы аз нерсени далилдейт. Колдонмо башка жолду, башка форматты же жаңыртуу алмаштыра турган пакеттин ичиндеги көчүрмөнү окушу мүмкүн. Файлдын бар-жогун эмес, эки учтагы жүрүм-турумду текшериңиз.

Жаңы инсандык менен жаңы туташуу ийгиликтүү болорун ырастаңыз, анан чыгарылып салынган CA берген инсандык четке кагыларын ырастаңыз. Адамдар өткөрүп жиберген экинчи сыноо ушул жана эски органдын мындан ары жол бербей турганын көрсөткөн жалгыз сыноо. Жайгаштыруу CRL же OCSPге таянса, жаңы сертификаттардагы таратуу чекиттери чечилерин жана сураган өнөктөштөр жооп берүүчүгө жете аларын текшериңиз.

Эч качан туташпаган кардар менен бүтүрүңүз: анын профилинин абалын өчүрүңүз, туташыңыз жана келишилген тизмекти окуңуз. Кэште сакталган сессияны уланткан өнөктөш эч нерсе текшербесе да, көчүрүү ийгиликтүү болгонун кубаныч менен билдирет.

Тектеш макалалар