Көптеген OpenVPN TLS талқылауларында үш түрлі факт бір жолға жинақталады: клиент құрылымыңыз не істей алады, профиль неге рұқсат береді және сессия шын мәнінде не туралы келісті. Қысқа TLS 1.3 жиынтықтар тізімі ортаңғы сұраққа тек жартылай жауап береді және протокол нұсқасының төменгі шегі туралы ештеңе айтпайды. Төмендегі тексерулерді ретімен орындап, бірінші орындалмайтын жерде тоқтаңыз, өйткені әрбір келесі тексеру алдыңғылары шешілді деп есептейді.

Кез келген тізімді оқымас бұрын құрылымды тексеріңіз

Конфигурация директивасы протокол қолдауы жоқ бинарлық файлға оны қоса алмайды. Нұсқа баннерінен бастаңыз, ол компиляцияланған криптографиялық кітапхананы атайды:

openvpn --version

OpenSSL-ге байланған 2.6 құрылымы tls-cipher мен tls-ciphersuites екеуін де қабылдайды. mbed TLS-пен құрылымда TLS 1.3 жиынтықтарын таңдау мүлде жоқ, ал 2.6 нұсқаулығы tls-ciphersuites параметрін OpenSSL опциясы ретінде белгілейді. Егер сервер басқа backend-пен қайта құрылса, сол профиль конфигурацияның бір жолы өзгермей-ақ мінез-құлқын өзгертуі мүмкін.

Осында болған кезде openvpn --show-tls орындап, шығысты сақтаңыз. Бұл кейінірек салыстыратын түгендеу, және біреу профильдерді өңдей бастамай тұрып оны түсіріп алу арзан.

Баннер мен тізімді чат терезесіне емес, өзгеріс билетіне жазыңыз. Екі адам клиент алты аптадан кейін жиынтық ұсына ала ма деп дауласқанда, түсірілген шығыс мұны бір жолмен шешеді.

Нұсқа шектерін шифр тізімдерінен бөлек ұстаңыз

2.6 нұсқаулығында бұлар бір емес, үш басқару элементы:

  • tls-cipher TLS 1.2 және одан ескі нұсқалар үшін шифр саясатын белгілейді және OpenSSL шифр тізіміне беріледі;
  • tls-ciphersuites TLS 1.3 жиынтықтарын таңдайды;
  • tls-version-min мен tls-version-max қосылым пайдалана алатын протокол нұсқаларын шектейді.

Сондықтан мұқият қырқылған TLS 1.3 жиынтықтар тізімі ескі нұсқаның әлі рұқсат етілгені туралы ештеңені дәлелдемейді. Егер талап «тек TLS 1.3» болса, оны нұсқаның төменгі шегі көтереді, ал жиынтықтар тізімі сол шектің ішіндегі таңдауларды ғана тарылтады:

tls-version-min 1.3
tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Бұл жұп екі жұмыс атқарады. Бір жолды жойсаңыз, екіншісі сіз ойлағаннан аз міндеттейді, және дәл осы сәтсіздікті ұстау үшін осы тексерудің бәрі бар.

Деректер арнасы — төртінші басқару элементы. data-ciphers туннель ішіндегі симметриялық шифрды келіседі, және оның нәтижесі басқару арнасының TLS нұсқасы туралы ештеңе айтпайды. Сессия қорытындысында AES-256-GCM көру ешбір бағытта TLS 1.3 дәлелі емес.

show-tls-ті жергілікті түгендеу ретінде оқыңыз

--show-tls осы бинарлық файл байланған криптографиялық кітапхана қолдайтын жиынтықтарды басымдылық ретімен тізімдейді. Бұл шлюзден келген есеп емес. Нұсқаулық тізім жергілікті кітапханадан келетінін анық айтады, яғни OpenSSL 3.x бар ноутбук пен ескірек құрылымды маршрутизатор бір сервермен сөйлескенде әртүрлі тізімдер шығарады.

EvidenceWhat it actually describes
--show-tls outputCapabilities of this client build and its library
Profile directivesWhat this attempt is allowed to offer
Session log lineWhat this one negotiation selected

Клиент A, B және C жиынтықтарын қолдайды, ал бір сессия B-ны таңдайды делік. Бұл сервердің A немесе C-ға рұқсат беретінін де, B оның жалғыз рұқсат етілген таңдауы екенін де дәлелдемейді. Үш жолды бөлек ұстаңыз, және шатастыратын TLS тақырыптарының көбі өздігінен шешіледі.

Түгендеуді сақтау бәрібір тұрарлық. Сессия сәтсіз болғанда, кітапхана тізімін профиль тізімімен салыстыру клиенттің сервер қалаған нәрсені ұсынуға мүмкіндігі болды ма, соны көрсетеді. Ол сондай-ақ backend өзгерісі ескі клиенттер сүйенетін қордан TLS_CHACHA20_POLY1305_SHA256-ті үнсіз алып тастады ма, соны көрсетеді — басқалары ештеңе байқамай жатқанда, бірнеше пайдаланушының қосыла алмауы ретінде көрінетін регрессия түрі.

Шлюзге ол жауап бере алатын сұрақ қойыңыз

Егер қызметті өзіңіз басқарсаңыз, дискідегі файлды емес, жұмыс істеп тұрған дананың тиімді конфигурациясын тексеріңіз. OpenVPN басқа --config жолымен іске қосылған, қосымшаларды тартатын және өңдеуден бері қайта іске қосылмаған болуы мүмкін. Клиенттер кездесетін нәрсе — жұмыс істеп тұрған демонның саясаты.

Егер оны басқармасаңыз, оператордан қолдау көрсетілетін клиент талаптарын немесе шектеулі қабылдау тестін сұраңыз. Қабылданбаған әрекет автоматты түрде қабылданбаған жиынтық емес: нұсқаның төменгі шегі, remote-cert-tls тәрізді сертификат сәйкестігін тексеру немесе tls-auth мен tls-crypt арасындағы сәйкессіздік жиынтық таңдауы маңызды болмай тұрып алмасуды аяқтауы мүмкін. Клиент тізімін өзгертер алдында сервер қатесін оқыңыз, өйткені «handshake failed» төрт түрлі себепті қамтиды және олардың тек біреуі шифр сәйкессіздігі.

openssl s_client VPN портына бағыттау да сұрақты қайта шығармайды. Басқару арнасы OpenVPN-нің өз фреймінің ішінде жұмыс істейді, сондықтан шикі TLS зонды басқа нәрсені күтетін портта өзге протоколды тексереді. Одан шығарылған кез келген қорытынды зонд туралы, туннель туралы емес.

Екі нәтижені жазып алыңыз және оларды бөлек ұстаңыз

Жаңа рұқсат етілген сессия протокол нұсқасы мен таңдалған шифрды атайтын басқару арнасының жолын және туннель шифрын атайтын бөлек деректер арнасының жолын жасайды. Екеуін де клиент нұсқасымен және профиль атауымен бірге түсіріп, қай сервер данасы жауап бергенін жазыңыз:

openvpn --config office.ovpn --verb 4 2>&1 | tee session.txt

Содан кейін екі жолды жадыдан емес, сол файлдан оқыңыз. Жұп — дәлел; жиынтық атауы жалғыз өзі қалау, ал нұсқа шегі сервер нені қабылдамайтыны туралы бөлек мәлімдеме.

Тексерулерді осы ретпен орындаңыз. --version арқылы құрылым мен backend-ті растаңыз. Бірдеңені өзгертер алдында --show-tls түсіріңіз. Қажетті нұсқаның төменгі шегін жиынтықтар тізімінен бөлек айтыңыз. Жұмыс істеп тұрған дананың тиімді саясатын оның иесімен растаңыз. Бір рұқсат етілген сессияны және жоспар рұқсат етсе, ескі нұсқамен бір қабылданбаған әрекетті бақылаңыз. Басқару арнасы мен деректер арнасының нәтижелерін бөлек тұжырымдар ретінде жазып алыңыз.

Егер қажетті клиент жаңа минимумды қанағаттандыра алмаса, орналастыру аяқталғандай көрінуі үшін қатысы жоқ қабылдау ережесін үнсіз төмендетудің орнына сол көшіру немесе ерекшелік шешімін ашық қабылдаңыз.

Қатысты мақалалар