Поновно издавање сертификата за лаптоп под истим заједничким именом изгледа као замена, и сви претпостављају да је стари мртав. Није. Претходник остаје важећи сертификат потписан од истог тела, и свака контрола која прима клијенте по имену ће га наставити примати. Оно што раздваја проверу идентитета од провере креденцијала јесте серијски број, и ту треба да буде исправка.

Почните од политике именовања коју сервер користи

Две контроле се мешају: примање клијента зато што тврди да је неко, и уклањање једног конкретног сертификата из употребе. Прва је провера имена, друга је провера опозива. Оне одговарају на различита питања, и у поставци може бити једна без друге.

Прочитајте конфигурацију сервера и забележите који извор идентитета је у игри. username-as-common-name чини аутентификовано корисничко име ефективним именом за претраге специфичне за клијента. Без тога се користи заједничко име субјекта из сертификата. Какав год да је одговор, запишите га пре него што додирнете било коју листу дозвољених.

Оба пута дају различит скуп дозвољених имена за исти сертификат. Нагађање овде значи уређивање погрешног фајла и закључак да контрола не ради.

Проверите шта заправо прима клијента

Повезан са одговарајућим фајлом client-config-dir пружа опције специфичне за клијента; сам по себи није правило пријема. Пријем по имену захтева ccd-exclusive, који одбија клијенте без одговарајућег фајла. Укључивање тога у активној поставици искључује све чије име нема фајл, зато пребројте фајлове пре него што било шта пребаците.

grep -nE 'ccd-exclusive|client-config-dir|username-as-common-name' /etc/openvpn/server/server.conf
ls -1 /etc/openvpn/ccd/

Број је провера: упоредите списак директоријума са идентитетима за које очекујете да се повежу.

Затим потврдите да свако име фајла тачно одговара ефективном идентитету, укључујући величину слова и размаке. Фајл за office-laptop не ради ништа за сертификат чији субјекат гласи Office-Laptop. Размаци на крају се такође скривају од обичног списка, и тако фајл који изгледа присутно остаје непрочитан.

Проверите CRL који учитава мрежни пролаз

CRL именује опозване сертификате по издаваоцу и серијском броју, и то је детаљност која недостаје провери имена. Два сертификата могу делити заједничко име и разликовати се по серијском броју, и само списак на нивоу серијског броја их раздваја.

Потврдите конфигурисану путању, датум издавања и поље следећег ажурирања пре него што уопште верујете фајлу.

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
openssl x509 -in office-laptop.crt -noout -serial -subject

Упоредите серијски број у CRL са серијским бројем на сертификату који намеравате да задржите. То поређење је цео тест, и урадити га једном оком вреди више него веровати скрипти коју нико није прочитао. Дистрибуирајте ажурирани CRL путањом коју пролаз већ чита. CRL у погрешном директоријуму ништа не спроводи, и ниједан клијентски дневник га неће поменути.

Замените, па докажите оба исхода

Издајте замену под истим заједничким именом, забележите оба серијска броја и тек онда опозовите стари. Тај редослед одржава радни идентитет доступним док припремате промену.

Прво тестирајте замену: треба да се аутентификује и да досегне све на шта њено име има право. Затим тестирајте стари сертификат и потврдите да је одбијен, јер успешна замена не говори ништа о опозиву. Ако се оба још повезују, улаз опозива се не чита или стари серијски број никада није био на списку. Ако се ниједан не повезује, покварили сте правило пријема, а не креденцијал.

Већ успостављене сесије су посебно питање, јер опозив важи за нове аутентификације осим ако пролаз није конфигурисан и да прекида активне везе. Одлучите да ли је тренутно уклањање потребно пре него што то некоме обећате.

Шта провера имена никада не може

Листа дозвољених одговара да ли овај идентитет може да се повеже. Не може да каже који сертификат је тај идентитет користио, и примиће старије креденцијале све док они остају важећи и неопозвани. Тај јаз се појављује током инцидента, када је замена издата пре месецима а претходник још ради.

Тамо где је потребна контрола на нивоу сертификата, користите механизам који именује сертификат: уносе у CRL, или куку за верификацију која проверава отисак који одржава оператер. Оба захтевају одржавање, и оба су искрени у погледу објекта који испитују. OpenVPN 2.6 приручник документује crl-verify и пријем специфичан за клијента као одвојене опције, управо из тог разлога.

Запишите која контрола обавља који посао, па тестирајте негативан случај. Опозив који никада нисте видели да одбија везу је конфигурација за коју се надате да ради.

Повезани чланци