Чаму OpenVPN перастаў падключацца пасля абнаўлення Ubuntu?
Ubuntu 22.04 і 22.10 змянілі палітыку OpenSSL, стандартнае ўзгадненне шыфра і налады пакетаў. Прачытайце этап, які збаўляе, перш чым правіць профіль.
Профілі VPN, якія працавалі на тым тыдні, ламаюцца пасля абнаўлення выпуску Ubuntu, а журнал рэдка згадвае абнаўленне наогул. Што ён называе, дык гэта пласт, які збаўліў: рукапацісканне TLS, шыфр, узгоднены для канала даных, пакет, які быў усталяваны, або копія OpenSSL, якую бінарнік загружае пры запуску. Кожны пласт мае сваю форму памылкі і свой рамонт, таму класіфікацыя — першая праца, а рэдагаванне — другая. Лічыце профіль невінаватым, пакуль журнал яго не назаве.
Які пласт збаўліў: рукапацісканне, шыфр, пакет ці бібліятэка
Прачытайце журнал кліента, перш чым чапаць профіль. найранейшая памылка ў вывадзе — гэта тая, што вызначае пласт; усё, што друкуецца пасля яе, звычайна з'яўляецца наступствам гэтага першага збою. Калі кліент наогул не запускаецца, журнал VPN — не той файл, які трэба адкрываць.
Скаргі на сертыфікаты і подпісы або паведамленне пра даўжыню ключа прыходзяць з кантрольнага канала і палітыкі бібліятэкі, якая ім кіруе. Папярэджанне, што пачынаецца з DEPRECATED OPTION, адносіцца хутчэй да ўзгаднення канала даных.
Радок выгляду Unrecognized option — гэта трэцяя катэгорыя: новы бінарнік больш не прымае дырэктыву, якую стары цярпеў, таму профіль трэба перапісаць, а не бібліятэку паслабіць. Збоі пакетаў выглядаюць яшчэ інакш, бо адбываюцца да таго, як запусціцца хоць які код тунеля. Адсутны бінарнік, плагін, які не загружаецца, або рэпазіторый, накіраваны на няправільнае кодавае імя, — усе даюць такую форму. Чатыры сімптомы, чатыры месцы для пошуку і амаль ніякага перакрыцця паміж рамонтамі.
Калі рукапацісканне збаўляе, сертыфікат адхіляе палітыка TLS
Ubuntu 22.04 перанесла сістэму на OpenSSL 3, а стандартны ўзровень бяспекі ў гэтай галіне больш строгі да подпісаў сертыфікатаў і памераў ключоў, чым быў у 20.04. Сертыфікат CA, падпісаны старэйшым дайджэстам, або ключ ніжэй за бягучы парог цяпер збаўляюць падчас рукапаціскання. Паколькі яшчэ нічога не аўтэнтыфікавана, памылка чытаецца як няправільны пароль або мёртвы сервер.
Вузкі рамонт далучае шыфраваны радок толькі да гэтага злучэння. У настольным рэдактары адкрыйце профіль, перайдзіце да пашыраных налад і змясціце DEFAULT:@SECLEVEL=0 у поле шыфра TLS. Файл ключоў NetworkManager бярэ тое ж значэнне ў раздзеле [vpn]:
[vpn]
tls-cipher=DEFAULT:@SECLEVEL=0Перазапусціце NetworkManager і падключыцеся зноў, бо дэман кэшуе разгледжаныя профілі і інакш працягне выкарыстоўваць копію, якую ўжо мае. Ведайце, што робіць гэты радок, перш чым пакідаць яго: гэтая налада — парог па некалькіх параметрах сертыфікатаў і ключоў, а не назва шыфра, таму яе паніжэнне пашырае тое, што прымае адзін профіль. Запішыце, які сервер гэта патрабаваў, і адкіньце наладу, калі аператар перавыдасць актуальны матэрыял. Змяняць жа /etc/ssl/openssl.cnf — значыць дасягнуць таго ж парога для кожнай праграмы, якая чытае гэты файл, а гэта значна далей за VPN.
OpenVPN 2.6 патрабуе, каб шыфр быў пералічаны для ўзгаднення
Ubuntu 22.10 паставіла OpenVPN 2.6, і ў гэтым выпуску --cipher перастае самастойна выбіраць канал даных. Шыфр таксама павінен прысутнічаць у узгодненым спісе data-ciphers, інакш кліент друкуе папярэджанне пра састарэнне і потым не можа ўзняць тунель.
Плагін NetworkManager таго ж перыяду ўсё яшчэ запісваў толькі старую дырэктыву. Гэтая дэталь раздзяляе дыягностыку, бо профіль, выпраўлены ўручную, можа падключыцца з абалонкі і ўсё яшчэ збаўляць з настольнага аплета. Дадайце спіс у файл злучэння ў раздзеле [vpn]:
data-ciphers=AES-256-CBCВыкарыстоўвайце значэнне, якое аб'яўляе сервер, а не тое, што памятаеце; сервер, які прапануе AES-256-GCM, не ўзгодніцца са спісам кліента, дзе названы толькі CBC. Перазапусціце мэнэджар і падключыцеся зноў, затым паўтарыце спробу з абалонкі, перадаўшы шыфр яўна і для ўзгаднення, і для запаснога варыянту:
sudo openvpn --config client.ovpn --data-ciphers AES-256-CBC --data-ciphers-fallback AES-256-CBCКалі гэтая каманда ўздымае тунель, сервер, сертыфікаты і ўліковыя даныя цалкам здаровыя, і адзіная рэшта няспраўнасці — захаваная опцыя мэнэджара. Папярэджанне пра дырэктыву keysize адносіцца да таго ж чыстага прыбору: закаментуйце яе і трымайце арыгінальны файл побач з профілем.
Збоі пакетаў і плагінаў выглядаюць як збоі VPN
Не кожны збой пасля абнаўлення — крыптаграфічны. Рэпазіторый OpenVPN, дададзены пад кодавым імем, якое выпуск не выкарыстоўвае, дае пакет, што ніколі не ўсталюецца, таму параўнайце, што lsb_release -a паведамляе, са спісам, які вы дадалі. Адсутны кампанент universe або кішэня бяспекі даюць пакет, які наогул нельга знайсці. Абодва выпадкі пакідаюць профіль некранутым, а тунель немагчымым.
Прачытайце памылку мэнэджара пакетаў перад журналам VPN. Калі кліент ніколі не ўсталёўваўся, ніякая праца з профілем не дасць рукапаціскання.
Профілі з двума фактарамі, якія перастаюць запытваць, — гэта версія гэтай жа гісторыі для плагіна. Запыт прыходзіць ад плагіна аўтэнтыфікацыі, і абнаўленне, якое яго выкінула або замяніла, пакідае профіль цэлым, пакуль запыт знікае. Пераўсталюйце падтрымліваемы плагін замест таго, каб выдаляць другі фактар дзеля працы злучэння.
Бібліятэка пастаўшчыка можа хавацца за памылкай палітыкі
Адзін узор варта пазнаваць, бо ён перамагае любы рамонт палітыкі. Інструмент налады ад пастаўшчыка абсталявання можа ўсталяваць уласныя бібліятэкі OpenSSL і паставіць іх перад сістэмнымі копіямі ў шляху пошуку загрузчыка. Тады кліент стартуе супраць бібліятэкі, якую ніхто не абнаўляў, і збой запуску выглядае дакладна як адхілены сертыфікат.
Пераўсталяванне пакета VPN не мяняе, якая бібліятэка знойдзецца першай, а паніжэнне ўзроўню TLS не дасягне бібліятэкі, што ніколі не паходзіла з сістэмы. Спытайце ў загрузчыка, якія крыптааб'екты бінарнік насамрэч развязаве:
ldd /usr/sbin/openvpn | grep -i -E 'ssl|crypto'Выдаліце або перанакіруйце копію пастаўшчыка, затым паўтарыце тую ж праверку. Чаканая версія мусіць быць той, што ўжываецца, перш чым вяртацца да профілю.
Прышпільванне старога кліента купляе час, а не рашэнне
Утрыманне папярэдняй версіі кліента аднаўляе тунель, пакуль доўжыцца ўтрыманне. Яно таксама замарожвае абнаўленні бяспекі для гэтага пакета і плануе такі ж збой на наступнае абнаўленне, таму лічыце гэта датаваным часовым рашэннем, а не выпраўленнем.
Калі вы ўсё ж прышпільваеце яго, утрымлівайце пакет яўна, каб незаўважнае абнаўленне не зняло прышпільванне, запішыце прычыну і дату перагляду і пастаўце напамін на наступны выпуск профілю ад пастаўшчыка. Вартая ўвагі ўмова — серверны профіль, які ўзгадняе актуальны шыфр; як толькі ён з'явіцца, прышпільванне губляе ўсякае апраўданне. Незапісанае прышпільванне, наадварот, становіцца збоем, які ніхто не здолее патлумачыць праз паўгода, бо чалавек, што яго ўжыў, ужо сышоў, а файл нічога не фіксуе.
Наступным разам, калі VPN памірае пасля абнаўлення выпуску, задайце пяць пытанняў па чарзе: які пласт даў першую памылку, ці адхіліла палітыка TLS сертыфікат, ці ўзгадняецца шыфр у абодвух кірунках, ці ўсталяваліся пакет і яго плагін, і якую бібліятэку загружае працэс. Толькі калі ўсе пяць адкажуць чыста, паніжэнне версіі мае сэнс.