Откажан клиент сѐ уште се поврзува: списокот никогаш не пристигна
Откажувањето е влез за проверка на сертификатот, а не команда што завршува сесија. Споредете како нова врска и активен тунел го гледаат списокот.
Откажувањето никогаш не навлегува во активен тунел за да избрише сесија. Списокот е влез за проверка на сертификатот и се чита за време на размената на контролниот канал што започнува 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 домаќини зацврстена единица може да ја скрие патеката, со приказ само за читање или заштитена системска папка. Од внатрешноста на услугата тоа не се разликува од отсутна датотека, па проверете ги ограничувањата на единицата пред да тргнете во потрага по грешка во дозволите. Прочитајте ја датотеката на единицата пред да го обвините режимот на датотеката.
Потврдете на серверот, а не на клиентот
Серверскиот дневник именува што се случило: отворање на списокот, негово вчитување или неуспех на проверката со откажаниот сериски број. Клиентот пријавува само општ неуспех на ракувањето, затоа клиентските дневници се лошо место за барање одлука за откажување.
Проверете со свеж обид од откажаниот профил и потоа застанете. Успешна врска од тој профил е сигналот да ја проверите патеката на датотеката и сметката за извршување, а не да претпоставите дека списокот бил погрешен. Задржете го тој успешен обид како приемен тест и не сметајте повторно поврзување што не сте го набљудувале.
Што не откажува ништо
Бришењето на профилот од преносен сметач, отстранувањето на датотеката со сертификат од клиентот или кажувањето на корисникот да престане да се поврзува не менува ништо на серверот. Сертификатот останува валиден додека телото не го запише откажувањето и проверувачот не го прочита добиениот список.
Затоа вреди синџирот да се запише: запишете го откажувањето, генерирајте и потпишете го списокот, распределете ја точно таа датотека и потврдете дека службената сметка може да ја чита. Секоја алка е кратка и секоја што недостига остава откажан клиент радосно да се поврзува. Контролна листа со четири реда победува претпоставка без ниту еден.