OpenVPN профилінің үш түрлі бөлігі үш түрлі сұраққа жауап береді, және оларды біріктіру адамдардың жұмыс істеп тұрған тексеруді өшіріп тастауына әкеледі. Қарсыластың сертификатына мен сенетін орган қол қойды ма? Бұл сертификат TLS сервер рөлін жариялай ма? Бұл мен жеткім келген нақты сервер ме? remote-cert-tls server тек ортаңғы сұраққа жауап береді және мұны сертификат ішіндегі кеңейтімдерді оқу арқылы жасайды.

Басыңызда біріктіруге оңай үш тексеру

Сенім тірегі ca директивасында тұрады. Рөлді тексеру remote-cert-tls директивасына жатады. Сәйкестікті тексеру verify-x509-name директивасына жатады, профиль оны пайдаланған кезде, немесе орналастыру қосатын кез келген атау тексеруіне.

Олар түрлі ақауларды қамтиды:

QuestionDirectiveFailure it catches
Who signed this?caCertificate from an unrelated authority
Is this a server?remote-cert-tlsClient certificate presented by a peer
Is this my server?verify-x509-nameAnother valid server from the same CA

Профильде үшеуі де болуы мүмкін және CA тым кең бөлінсе, әлсіз болып қала береді, бұл директива емес, кілттерді басқару мәселесі.

Рөлді тексеру нені оқиды

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

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

Директива дизайны бойынша асимметриялы: клиенттер remote-cert-tls server тасымалдайды, ал серверлер remote-cert-tls client тасымалдайды. Оларды ауыстырыңыз, сонда әрбір қосылым сынған сертификатқа ұқсайтын рөл қатесімен сәтсіз аяқталады.

Ескі профильдер кейде сол мақсат үшін ns-cert-type пайдаланады. Ағымдағы нұсқаулық беттері бұл опцияны ауыстырылған деп санайды, сондықтан әлі де оған сүйенетін профильді жөндеудің орнына көшіру керек.

Неліктен оны өшіру түзету сияқты көрінеді

Рөлді тексеру сәтсіз болғанда, қосылым тексеру қатесімен тоқтайды және айқын қадам — жолды жою. Содан кейін қосылым көтеріледі, бұл ілгерілеу сияқты сезіледі және шын мәнінде директиваны болдырмау үшін бар ақау режимі. Енді сіз сертификаты ешқашан бұл рөлге арналмаған қарсыласты қабылдайсыз.

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

Атауды тексеру — жеке директива

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

verify-x509-name сертификат субъектісін сіз конфигурациялаған мәнмен салыстырады, нақты субъект, префикс немесе бір өріс үшін сәйкестендіру режимдерімен. Шлюзді шынымен анықтайтын өрісті пайдаланыңыз және атау өзгергенде оны әдейі жаңартатыныңызды күтіңіз.

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

Профильді өңдеу алдында сертификатты зерттеңіз

Қарсыластың сертификатын және клиент журналын осы ретпен оқыңыз. Сертификат қандай рөлдерді жариялайтынын айтады; журнал қай тексерудің оны қабылдамағанын айтады.

Бұл командалар егжей-тегжейлі қосылымнан пайдалану кеңейтімдерін және тексеру жолдарын шығарады:

openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verify

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

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