Адкліканне ніколі не заходзіць у працуючы тунель, каб выдаліць сесію. Спіс — гэта ўваходныя даныя для праверкі сертыфіката, якія чытаюцца падчас абмену ў канале кіравання, што пачынае сесію TLS. Гэты адзін факт тлумачыць абодва нечаканасці: адкліканы кліент падключаецца зноў, бо спіс так і не дайшоў да правяральніка, а існуючая сесія працягвае жыць, бо ніхто нічога не пераправяраў.

Спіс — гэта ўваходныя даныя, а не дзеянне

Падчас усталявання сесіі сервер правярае сертыфікат кліента супраць сваіх давераных якараў, і дырэктыва адклікання дадае да гэтага рашэння пошук па спісе. Праверка адбываецца на серверы, таму кліент не бачыць, што яго сертыфікат адкліканы, і працягвае прапаноўваць той жа самы. Профіль, які ўсё яшчэ падключаецца, такім чынам даказвае толькі тое, што нейкі правяральнік прыняў ланцуг, а не тое, што адкліканне не спрацавала.

Сам спіс — гэта падпісаны аб’ект з датай выпуску і датай наступнага абнаўлення. Старонні спіс, спіс, падпісаны іншай уладай, або спіс, чыя дата наступнага абнаўлення прайшла, не замяняе бягучы, і тое, ці адхіляецца састарэлы спіс ці ціха прымаецца, залежыць ад разгортвання.

Новае злучэнне супраць працуючай сесіі

Адкліканне ацэньваецца пры ўсталяванні або перагаворы сесіі, а не супраць канала даных на кожным пакеце. Кліент, які ўжо падключаны, трымае ключы трафіку, таму працягвае прапускаць пакеты пасля таго, як яго сертыфікат з’явіўся ў спісе. Інтэрвал перагавораў па змоўчанні вымяраецца гадзінамі, таму абноўлены спіс можа пачаць дзейнічаць для новых, пакуль працуючы тунель стаіць.

SituationWhat the list doesWhen it applies
Fresh connectionBlocks the handshakeAt verification, immediately
RenegotiationBlocks the new exchangeAt the next renegotiation interval
Established data channelNothingUntil the session ends

Неадкладнае выкананне патрабуе наўмыснага дзеяння, а не аднаго спіса. Перазапуск службы прымушае кожнага кліента перападключыцца, а завяршэнне адной сесіі праз інтэрфейс кіравання не кранае астатніх. Выберыце адзін варыянт на інцыдэнт і запішыце, які выкарысталі. Два варыянты маюць розны радыус уздзеяння, і гэта сапраўднае рашэнне.

Дастаўце файл, які правяральнік сапраўды чытае

Спіс трэба згенераваць з запісу ўлады, а затым скапіяваць на кожную машыну, якая правярае сертыфікаты. Згенераваць яго на хосце CA і ніколі не ўсталяваць на серверы — самая частая памылка, і яна выглядае як зусім зламаная функцыя адклікання.

ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem

Дзве дэталі вырашаюць, ці будзе файл сапраўды прачытаны. Адносны шлях вызначаецца адносна каталога канфігурацыі, таму копія, пакінутая ў хатнім каталозе аператара, можа ніколі не знайсціся. І дэман звычайна скідае прывілеі пасля запуску, таму ўліковы запіс часу выканання патрабуе права пошуку ў кожным бацькоўскім каталозе і права чытання файла. Праверце абодва з уліковага запісу часу выканання, а не з-пад root, інакш тэст дакажа не тое.

На хостах з systemd укрэплены модуль таксама можа схаваць шлях: праз прагляд толькі для чытання або абаронены сістэмны каталог. Знутры службы гэта не адрозніваецца ад адсутнага файла, таму праверце абмежаванні модуля, перш чым шукаць памылку ў правах. Прачытайце файл модуля, перш чым вінаваціць рэжым файла.

Пацвердзіце на серверы, а не на кліенце

Журнал сервера называе, што адбылося: адкрыццё спіса, яго загрузка або збой праверкі з адкліканым серыйным нумарам. Кліент паведамляе толькі агульны збой рукапаціску, таму журналы кліента — дрэннае месца для пошуку рашэння аб адкліканні.

Праверце свежай спробай з адкліканага профілю і спыніцеся. Паспяховае злучэнне з гэтага профілю — гэта сігнал праверыць шлях да файла і ўліковы запіс часу выканання, а не меркаваць, што спіс быў няправільны. Пакіньце гэтую паспяховую спробу як прыёмачны тэст і не лічыце перападключэнне, за якім вы не назіралі.

Што нічога не адклікае

Выдаленне профілю з ноўтбука, выдаленне файла сертыфіката з кліента або просьба да карыстальніка перастаць падключацца нічога не мяняе на серверы. Сертыфікат застаецца сапраўдным, пакуль улада не запіша адкліканне і правяральнік не прачытае атрыманы спіс.

Менавіта таму ланцуг варта запісаць: запішыце адкліканне, згенеруйце і падпішыце спіс, распаўсюдзіце менавіта гэты файл і пацвердзіце, што ўліковы запіс службы можа яго чытаць. Кожнае звяно кароткае, і любое адсутнае пакідае адкліканага кліента радасна падключацца. Кантрольны спіс з чатырох радкоў лепш за меркаванне без нічога.

Падобныя артыкулы