OpenVPN продолжува да обидува повторно по TLS грешка: како да го запрете
TLS грешката се повторува стандардно, така што клиентот кружи и првата грешка исчезнува од вид. tls-exit го тера да излезе; проверете што го рестартира.
Клиентот се поврзува, не успева при TLS преговорите, чека и повторно го обидува истиот сервер со истиот резултат. Под надзорник што рестартира неуспешен процес, тие обиди стануваат бескрајна јамка во дневникот, и првата дијагностичка линија исчезнува од дофат. OpenVPN нуди опција што го претвора тој неуспех при преговорите во видлив излез наместо уште еден обид. Тоа е поставка за дијагностика и надзор, не поправка, затоа поврзете ја со политика што навистина му дозволува на процесот да остане запрет.
Циклусот што ја крие првата грешка
Она што го гледате е блок што се повторува, а не еден неуспех: обид за поврзување, TLS грешка, пауза и потоа истата низа. Секое повторување ја турка оригиналната линија повисоко во дневникот. Ако единицата се рестартира при неуспех, циклусот може да трае со часови без никој да ја прочита причината. Симптомот е јамката, иако основната дефект е еден проблем со преговорите.
Интерактивните сесии го поднесуваат ова затоа што привремен неуспех може да се исчисти при следниот обид. Автоматските врски не можат да си го дозволат истиот оптимизам: процесот мора да запре за да може човек или монитор да ја види состојбата.
Пред да промените нешто, забележете еден целосен циклус. Запишете ја оддалечената адреса, фазата на TLS наведена во грешката и дали процесот воопшто излегува.
Механизмот за повторување зад јамката
Повторувањето е стандардно затоа што неколку неповрзани временски ограничувања го делат истиот механизам. connect-retry го поставува интервалот меѓу обидите за поврзување, connect-retry-max може да ограничи колку често се обидува секој оддалечен запис, а resolv-retry управува со повторените пребарувања на имиња. Неуспехот при TLS преговорите стигнува до тој механизам како транспортен настан, затоа клиентот закажува уште еден обид наместо да пријави. Стандардната вредност помага при нестабилна врска и штети при дефект што не може да се излечи.
Опцијата --tls-exit ја менува само состојбата со преговорите. Прирачникот ја опишува како излез при неуспех на TLS преговорите, што е потесно од излез при секоја грешка. Временските ограничувања, грешките на резолверот и одбивањата при автентикација го задржуваат своето однесување.
Натерајте го клиентот да излезе при TLS неуспех
Ставете tls-exit во профилот што клиентот навистина го вчитува, или дајте --tls-exit при стартување, и пуштете го еднаш во преден план. Читајте го излезниот статус и последната линија од дневникот, затоа што надзорникот дејствува токму врз статусот. Излез различен од нула по неуспех при преговорите е посакуваниот резултат. Ако процесот продолжува да обидува наместо да заврши, опцијата не е во профилот што клиентот навистина го вчитува.
Надзорникот одлучува дали тој излез ќе биде видлив. systemd единица со Restart=always или Restart=on-failure повторно го стартува клиентот, така што јамката продолжува и опцијата изгледа како да не прави ништо. Проверете ја политиката пред да го обвините клиентот:
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 не се активира. Поставките за повторување при автентикација се следното место за проверка, и причината од серверот е поважна од последната линија на клиентот. Погрешна лозинка и сертификат што недостасува можат да создадат слични пораки на страната на клиентот.
Маршрута што недостасува, погрешен резолвер или недостапна порта се исто така надвор од опцијата, затоа што не се неуспеси при преговорите. Тихото губење пакети е најмалку очигледниот случај: зависно од тоа колку напредувала размената, клиентот може да пријави неуспех при преговорите или едноставно да истече по време.
Задржете ја разликата во вашите белешки. Поставката е за дијагностика и надзор, а не за поправка, затоа не го поправа несовпаѓањето на шифрата, проблемот со сертификат или погрешната порта. Прво поправете ја причината за неуспешните преговори, потоа одлучете дали моменталниот излез сѐ уште одговара на распоредувањето.