Веза на OpenVPN не успева, неко пронађе поправку у једном реду која додаје SECLEVEL=0, и тунел се подиже. Није се променио сертификат ни скуп шифри; померио се праг прихватања на нивоу целе библиотеке, и све што процес после тога ради наслеђује нову границу. То вреди разумети пре него што се исти ред копира у сваки профил у окружењу.

Утврдите која библиотека и која политика важе

SECLEVEL је концепт OpenSSL-а, па је прво питање да ли ваша градња уопште користи OpenSSL. OpenVPN може да се повеже са више од једне криптографске библиотеке, а подешавање које важи за једну од њих бесмислено је за остале. Питајте бинарну датотеку чиме је изграђена, а затим питајте библиотеку коју је верзију и конфигурацију учитала:

openvpn --version | head -3
openssl version -a

Пажљиво прочитајте излаз верзије, јер дистрибуције крпе подразумеване вредности. Неке испоручују системску конфигурацију која подиже минимални ниво изнад подразумеваног у upstream-у, и зато се исти профил понаша другачије на два рачунара са идентичним OpenVPN пакетима. Ефективна политика је она коју је учитао процес који ради, а не она из upstream приручника.

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

Раздвојте три ствари које могу бити одбијене

Први кандидат је идентитетски материјал: сертификат чији је кључ премали или чији алгоритам потписа политика више не прихвата. Други је параметар размене кључева, као група коју политика сматра преслабом. Трећи је скуп шифри који политика искључује. Сва три могу да изазову неуспех руковања, и само текст грешке и фаза преговора их разликују.

Ниједан од та три није шифра канала за податке. OpenVPN преговара о шифровању тунела одвојено од TLS руковања, па веза која успе после промене безбедносног нивоа не говори ништа о томе која шифра штити ваше податке. Ако је питање које заправо постављате о поверљивости података, гледате потпуно погрешан точак.

Снижавање нивоа проширује прихватање сва три улаза одједном. То је део који људи пропуштају: поправка која прихвата стари сертификат прихвата и слабу групу и скуп који можда нисте намеравали да дозволите. Једна грешка је покренула промену, а промена је шира од грешке. Та асиметрија је разлог зашто је ограничен изузетак бољи од подразумеване вредности за цело окружење.

Мењајте улаз, а не праг

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

Ако одбијени улаз припада партнеру којег не контролишете, разговор је са његовим власником о подржаном заменском материјалу. Снижавање сопственог прага да бисте угостили систем који нико не одржава преноси трошак са њих на све који се повежу после њих.

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

Ако морате да га снизите, ограничите и забележите

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

Запишите четири ствари уз изузетак: тачно подешавање, власника који га је одобрио, погођене клијенте и услов под којим се уклања. Изузетак без услова повлачења је трајно слабљење са приложеним привременим оправдањем.

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

Затим проверите идентитет и заштиту

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

openssl x509 -in /etc/openvpn/client.crt -noout -subject -dates -text | grep -E 'Signature Algorithm|Public-Key'
openvpn --show-tls | head -20

Референца OpenSSL-а за безбедносне нивое изричито наводи да оквир примењује ограничења на кључеве, потписе, групе и скупове заједно и да нулти ниво дозвољава све што повратни позив проверава. То је обим онога што сте променили, и то је реченица коју треба цитирати када неко пита да ли је поправка била уска.

Предаја која издржи ревизију каже која је политика одбила који улаз, шта је промењено и шта као резултат остаје прихваћено. „Ради са SECLEVEL=0“ је запажање о једној вези, не безбедносна процена распоређивања.

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