Адкліканы кліент усё яшчэ падключаецца: спіс так і не дайшоў
Адкліканне — гэта ўваходныя даныя для праверкі сертыфіката, а не каманда, якая завяршае сесію. Параўнайце, як новае злучэнне і працуючы тунель бачаць спіс.
Адкліканне ніколі не заходзіць у працуючы тунель, каб выдаліць сесію. Спіс — гэта ўваходныя даныя для праверкі сертыфіката, якія чытаюцца падчас абмену ў канале кіравання, што пачынае сесію TLS. Гэты адзін факт тлумачыць абодва нечаканасці: адкліканы кліент падключаецца зноў, бо спіс так і не дайшоў да правяральніка, а існуючая сесія працягвае жыць, бо ніхто нічога не пераправяраў.
Спіс — гэта ўваходныя даныя, а не дзеянне
Падчас усталявання сесіі сервер правярае сертыфікат кліента супраць сваіх давераных якараў, і дырэктыва адклікання дадае да гэтага рашэння пошук па спісе. Праверка адбываецца на серверы, таму кліент не бачыць, што яго сертыфікат адкліканы, і працягвае прапаноўваць той жа самы. Профіль, які ўсё яшчэ падключаецца, такім чынам даказвае толькі тое, што нейкі правяральнік прыняў ланцуг, а не тое, што адкліканне не спрацавала.
Сам спіс — гэта падпісаны аб’ект з датай выпуску і датай наступнага абнаўлення. Старонні спіс, спіс, падпісаны іншай уладай, або спіс, чыя дата наступнага абнаўлення прайшла, не замяняе бягучы, і тое, ці адхіляецца састарэлы спіс ці ціха прымаецца, залежыць ад разгортвання.
Новае злучэнне супраць працуючай сесіі
Адкліканне ацэньваецца пры ўсталяванні або перагаворы сесіі, а не супраць канала даных на кожным пакеце. Кліент, які ўжо падключаны, трымае ключы трафіку, таму працягвае прапускаць пакеты пасля таго, як яго сертыфікат з’явіўся ў спісе. Інтэрвал перагавораў па змоўчанні вымяраецца гадзінамі, таму абноўлены спіс можа пачаць дзейнічаць для новых, пакуль працуючы тунель стаіць.
| Situation | What the list does | When it applies |
|---|---|---|
| Fresh connection | Blocks the handshake | At verification, immediately |
| Renegotiation | Blocks the new exchange | At the next renegotiation interval |
| Established data channel | Nothing | Until the session ends |
Неадкладнае выкананне патрабуе наўмыснага дзеяння, а не аднаго спіса. Перазапуск службы прымушае кожнага кліента перападключыцца, а завяршэнне адной сесіі праз інтэрфейс кіравання не кранае астатніх. Выберыце адзін варыянт на інцыдэнт і запішыце, які выкарысталі. Два варыянты маюць розны радыус уздзеяння, і гэта сапраўднае рашэнне.
Дастаўце файл, які правяральнік сапраўды чытае
Спіс трэба згенераваць з запісу ўлады, а затым скапіяваць на кожную машыну, якая правярае сертыфікаты. Згенераваць яго на хосце CA і ніколі не ўсталяваць на серверы — самая частая памылка, і яна выглядае як зусім зламаная функцыя адклікання.
ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem
Дзве дэталі вырашаюць, ці будзе файл сапраўды прачытаны. Адносны шлях вызначаецца адносна каталога канфігурацыі, таму копія, пакінутая ў хатнім каталозе аператара, можа ніколі не знайсціся. І дэман звычайна скідае прывілеі пасля запуску, таму ўліковы запіс часу выканання патрабуе права пошуку ў кожным бацькоўскім каталозе і права чытання файла. Праверце абодва з уліковага запісу часу выканання, а не з-пад root, інакш тэст дакажа не тое.
На хостах з systemd укрэплены модуль таксама можа схаваць шлях: праз прагляд толькі для чытання або абаронены сістэмны каталог. Знутры службы гэта не адрозніваецца ад адсутнага файла, таму праверце абмежаванні модуля, перш чым шукаць памылку ў правах. Прачытайце файл модуля, перш чым вінаваціць рэжым файла.
Пацвердзіце на серверы, а не на кліенце
Журнал сервера называе, што адбылося: адкрыццё спіса, яго загрузка або збой праверкі з адкліканым серыйным нумарам. Кліент паведамляе толькі агульны збой рукапаціску, таму журналы кліента — дрэннае месца для пошуку рашэння аб адкліканні.
Праверце свежай спробай з адкліканага профілю і спыніцеся. Паспяховае злучэнне з гэтага профілю — гэта сігнал праверыць шлях да файла і ўліковы запіс часу выканання, а не меркаваць, што спіс быў няправільны. Пакіньце гэтую паспяховую спробу як прыёмачны тэст і не лічыце перападключэнне, за якім вы не назіралі.
Што нічога не адклікае
Выдаленне профілю з ноўтбука, выдаленне файла сертыфіката з кліента або просьба да карыстальніка перастаць падключацца нічога не мяняе на серверы. Сертыфікат застаецца сапраўдным, пакуль улада не запіша адкліканне і правяральнік не прачытае атрыманы спіс.
Менавіта таму ланцуг варта запісаць: запішыце адкліканне, згенеруйце і падпішыце спіс, распаўсюдзіце менавіта гэты файл і пацвердзіце, што ўліковы запіс службы можа яго чытаць. Кожнае звяно кароткае, і любое адсутнае пакідае адкліканага кліента радасна падключацца. Кантрольны спіс з чатырох радкоў лепш за меркаванне без нічога.