Злучэнне 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» — назіранне пра адно злучэнне, а не ацэнка бяспекі разгортвання.

Падобныя артыкулы