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

Бірінші қатені жасыратын цикл

Көріп отырғаныңыз бір сәтсіздік емес, қайталанатын блок: қосылу әрекеті, TLS қатесі, үзіліс, содан кейін сол реттілік. Әр қайталау бастапқы жолды журналда жоғары қарай итереді. Егер бірлік сәтсіздікте қайта іске қосылса, цикл бірнеше сағатқа созылуы мүмкін, ал себебін ешкім оқымайды. Симптом — цикл, бірақ негізгі ақау келіссөздің бір мәселесі.

Интерактивті сессиялар бұған шыдайды, өйткені өтпелі сәтсіздік келесі әрекетте кетуі мүмкін. Автоматтандырылған байланыстар бұндай оптимизмге ие бола алмайды: процесс тоқтауы керек, сонда адам немесе монитор күйді көреді.

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

Циклдің артындағы қайталау механизмі

Қайталау әдепкі, өйткені бірнеше байланыссыз тайм-аут бір механизмді бөліседі. connect-retry қосылу әрекеттері арасындағы аралықты белгілейді, connect-retry-max әр қашықтағы жазбаның қаншалықты жиі сыналатынын шектей алады, ал resolv-retry қайталанатын атау іздеуін басқарады. TLS келіссөз сәтсіздігі бұл механизмге көлік оқиғасы ретінде жетеді, сондықтан клиент хабарлаудың орнына тағы бір әрекетті жоспарлайды. Әдепкі мән тұрақсыз желіге көмектеседі және жазылмайтын ақауға зиян келтіреді.

--tls-exit опциясы тек келіссөз жағдайын өзгертеді. Нұсқаулық оны TLS келіссөз сәтсіздігінде шығу деп сипаттайды, бұл әр қатеде шығудан тар. Тайм-ауттар, шешуші қателері және аутентификациядан бас тартулар өз мінез-құлқын сақтайды.

Клиентті TLS сәтсіздігінде шығуға мәжбүрлеу

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

Бақылаушы сол шығудың көрінетінін шешеді. Restart=always немесе Restart=on-failure бар systemd бірлігі клиентті қайта іске қосады, сондықтан цикл жалғасады және опция ештеңе істемейтін сияқты көрінеді. Клиентті кінәламас бұрын саясатты тексеріңіз:

systemctl show -p Restart -p RestartSec openvpn-client@office
journalctl -u openvpn-client@office -n 40 --no-pager

Restart=no процестің төменде қалуына мүмкіндік береді, ал Restart=on-failure нөлге тең емес күйден кейін де қайта іске қосады. Егер сәтсіздіктің көрінуін, бірақ қызметтің байланыссыз апаттардан қалпына келуін қаласаңыз, Restart=on-failure параметрін орнатып, қайта іске қосу дауылын тоқтату үшін StartLimitBurst және StartLimitIntervalSec қолданыңыз. Содан кейін соңғы шығу кодын растау үшін бірлік күйін оқыңыз: systemctl status оны хабарлайды, ал журнал бірінші қатені қайта іске қосулардың үстінде сақтайды.

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

Оны бір реттік соңғы нүктемен дәлелдеу

Мінез-құлықты оған сенбес бұрын көру үшін профильді көшіріп, көшірмені TCP қосылымын қабылдайтын, бірақ ешқашан OpenVPN сөйлемейтін соңғы нүктеге бағыттаңыз. Жауап беріп, содан кейін үнсіз қалатын тыңдаушы жеткілікті. tls-exit болса, қол алысу сәтсіз болғанда клиент аяқталуы керек; онсыз сол профиль айналуды жалғастыруы керек. Көшірмені қолданыңыз, жұмыс профилін ешқашан емес.

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

Аяқтаған соң сынақ профилін жойыңыз. Әдейі дұрыс емес соңғы нүктесі бар көшірме — кейінірек каталогтағы барлық профильді іске қосатындар үшін тұзақ.

Бұл опция ешқашан жетпейтін кезеңдер

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

Жоқ маршрут, дұрыс емес шешуші немесе қол жетпейтін шлюз де опциядан тыс, өйткені олар келіссөз сәтсіздіктері емес. Пакеттердің үнсіз жоғалуы — ең анық емес жағдай: айырбастың қаншалықты ілгерілегеніне байланысты клиент келіссөз сәтсіздігін хабарлауы немесе жай тайм-аутқа түсуі мүмкін.

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

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