Профилот работеше во вторник, а во петок клиентот се врти триесет секунди и се откажува. Ништо на вашата машина не е променето. Токму тоа е поентата: преземената конфигурација опишува еден домаќин во еден момент, а операторот од другата страна нема обврска да го одржува тој опис вистинит. Искушението е да почнете да ги менувате безбедносните поставки додека тунелот повторно не се крене. Токму тој инстинкт е причината луѓето да завршат со профил со исклучена проверка на сертификат, што е полошо отколку воопшто да нема тунел.

Датотеката опишува момент, а не договор

Конфигурациската датотека е збир од тврдења: ова име на домаќин слуша на овој порт со овој протокол, прикажува сертификат што одговара на ова име и ги прифаќа овие акредитиви. Кога било кое од нив престанува да биде точно, датотеката е застарена и поправката ѝ припаѓа на страната на операторот од границата, а не на вашите поставки.

Јавни списоци на јазли тоа го прават очигледно по својата природа. Јазлите ги водат волонтери, тие се појавуваат и исчезнуваат, адресите се рециклираат, а портите ги блокира мрежата зад која се наоѓаат. Списокот е снимка што се генерира одново, а копијата на вашиот диск е фотографија од постара снимка.

Комерцијалните услуги се менуваат побавно, но не никогаш. Сертификациските тела се менуваат, слушачот се преместува од заедничка адреса на посебна, стариот протокол се повлекува и пристигнува нов список на шифри. Секое од тоа е невидливо додека вашиот клиент не се обиде да се поврзе и не добие поинаков одговор од оној што го очекува датотеката.

Прочитајте ја фазата на неуспех пред да допрете поставка

Пораката за грешка кажува кое тврдење откажа, а секое тврдење има сосема поинаква поправка. Менувањето шифри кога името на домаќинот веќе не се разрешува губи едно попладне и никого ништо не учи.

What happensThe assertion that brokeSupported response
Name never resolvesThe host still exists under that nameGet a current endpoint from the operator
TCP connect times outThe listener is on that port and reachableCheck the current published port, then the local network
TLS or key exchange failsThe peer presents the expected identityCompare the certificate, not the cipher list
Authentication rejectedThe account is still validGet credentials reissued or stop using the service
dig +short vpn.example.net
curl -sS -o /dev/null -w 'connect=%{time_connect} tls=%{time_appconnect}\n' --max-time 8 https://vpn.example.net:443/
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief </dev/null

Средниот ред го одделува блокираниот пат од расипаното ракување, а третиот го прикажува издавачот и датумите на важност на сертификатот што навистина се прикажува. Ако тој издавач не е оној што профилот го закачил, сертификатот се променил и ниту една опција на клиентот нема повторно да го направи старото закачување точно.

Промените на сертификатот и идентитетот се тивките

Повеќето неуспеси сами се најавуваат. Промените на идентитетот не, бидејќи клиент што закачува име на сертификат ќе одбие сосема добар нов сертификат со порака што многумина ја читаат како програмска грешка. Тунелот е во ред. Закачувањето е застарено.

Побарајте ги опциите за идентитет пред да заклучите нешто:

grep -nE '^(remote|proto|auth|verify-x509-name|tls-crypt|key-direction|ca) ' profile.ovpn
openssl x509 -in profile-ca.crt -noout -subject -dates

Ако профилот носи вграден CA и операторот преминал на ново тело, старата датотека не може да го валидира новиот сервер. Замената на CA блокот со оној што го објавил операторот е легитимна поправка. Бришењето на директивата за проверка не е, и тоа се истите притискања на копчиња со сосема поинаков резултат.

Надградбата на клиентот може да го произведе истиот симптом без никаква промена кај операторот. Опциите што тивко се толерираа сега се одбиваат, или застарен протокол се отстранува. Тоа е граница на компатибилност во вашиот софтвер и вреди да се проба втор профил со истиот клиент пред да го обвините серверот.

Само операторот може да објави валидна замена

Кога јазолот исчезнува, замената мора да дојде од истиот извор што го објавил оригиналот. Профилот што пристигнува во директна порака затоа што „го користи истото име на серверот“ е непроверена конфигурација од непозната страна, а неговото увезување ѝ дава на таа страна контрола врз вашето рутирање.

Проверката е евтина. Земете ја тековната датотека од објавеното место, споредете ја крајната точка и протоколот со списокот и потврдете го отпечатокот на CA материјалот наместо да му верувате на името на датотеката:

curl -sS -o current.ovpn https://example.org/nodes/current.ovpn
sha256sum current.ovpn profile.ovpn
grep -nE '^(remote|proto) ' current.ovpn

Ако двата хаша се разликуваат само во празни места, имате промена во форматирањето. Ако се разликуваат во крајните точки, операторот нешто преместил и објавената датотека е авторитетот. Ако објавената датотека е постара од вашата, веројатно гледате во кеш и застарениот одговор ќе ве испрати во погрешна насока.

Повлечете го стариот запис и запишете што се случило

Откако ќе се потврди работна замена, избришете го стариот профил наместо да го чувате како резерва. Застарен запис што се поврзува на половина е замка: ќе биде избран за време на прекин, полека ќе пропадне, а лицето што отстранува грешка ќе ги помине првите десет минути на погрешната датотека.

Водете краток запис надвор од конфигурацијата: датумот, старата крајна точка, фазата на неуспех и што го заменило. Јавните јазли се менуваат и шест недели подоцна истото прашање доаѓа со друго лице. Еден ред во датотека со белешки одговара на него за секунди.

Ако од една мрежа секој јазол пропадне на ист начин, а од друга ниту еден, престанете да уредувате профили и погледнете го локалниот пат. Заробениот портал, филтриран опсег на порти или пресретнувачки прокси ќе создадат идентични грешки кај неповрзани даватели на услуги, и токму тој образец е единствениот сигнал дека проблемот никогаш не бил во датотеката.

Поврзани статии