SECLEVEL=0 го лекува симптомот, не сертификатот
Намалувањето на безбедносното ниво на OpenSSL го проширува она што библиотеката го прифаќа. Откријте кој влез бил одбиен пред да ја промените таа граница за цел хост.
Врската на 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“ е набљудување за една врска, не безбедносна проценка на распоредувањето.