OpenConnect vpnc-script: која датотека се извршува?
Помошникот што инсталира маршрути и DNS е одделен од клиентот на тунелот. Најдете ја патеката што ја користи клиентот што работи пред да ја замените со копија од форум.
OpenConnect може да го заврши ракувањето на тунелот и сепак да ве остави без маршрута до приватната подмрежа, бидејќи клиентот и помошникот што ја менува состојбата на локалната мрежа се два различни програма. Автентикацијата докажува дека портата ја прифатила сесијата; таа не докажува ништо за тоа кој интерфејс, кои маршрути или кои поставки на резолверот биле инсталирани потоа. Повеќето збунувачки извештаи доаѓаат од замена на помошникот со копија од стар одговор, што го менува однесувањето на секоја врска на машината. Пред да смените било кој дел од него, пронајдете го помошникот што клиентот што работи навистина го повикува.
Два програми, две одговорности
Клиентот го поседува транспортот, автентикацијата и уредот на тунелот. Одделен помошник го поседува она што се случува во локалниот систем откако тунелот постои: адресирањето на интерфејсот, маршрутите до подмрежите што ги објави портата и конфигурацијата на резолверот. документацијата на помошникот OpenConnect ја опишува таа поделба и околината што ја добива помошникот. Разликата е важна при дефект, бидејќи одбиена лозинка и маршрута што недостасува не се истиот инцидент, дури и кога работната површина прикажува еден дијалог за двете.
Држењето на оваа поделба на ум исто така објаснува зошто врската може да пријави успех додека приватните имиња сѐ уште не се решаваат. Тунелот е подигнат во двата случаи, а се разликува само фазата на локална интеграција.
Пронајдете го помошникот што го користи клиентот што работи
Патеката се поставува при изградбата на пакетот и може да се надмине при секое повикување, затоа датотеката што ја паметите од друга дистрибуција може да нема никаква врска со оваа врска. Прашајте го процесот што работи, а не документацијата што случајно ви е отворена.
openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null
Ако линијата на процесот носи аргумент --script , таа датотека победува над компајлираната стандардна вредност. Постари патеки како /etc/vpnc/vpnc-script можат да постојат и да останат неискористени, затоа нивното бришење или уредување не менува ништо во нова изградба. Проверете го и датумот на измена, бидејќи помошник што никој не го допрел со години е силен знак дека спакуваната стандардна вредност ја работи работата.
Интеграцијата со NetworkManager е трет сопственик, со свој помошник и свои поставки за профилот. Ставањето втор скрипт за маршрути или резолвер врз таа интеграција ги удвојува маршрутите и остава резолвер за кој два програма тврдат дека го управуваат. Изберете еден сопственик по врска и оневозможете го другиот пред тестирање.
Читајте ја првата неуспешна операција, а не последното предупредување
Конфигурацијата на интерфејсот, инсталирањето маршрути, изборот на резолвер и чистењето на застарена состојба се одделни чекори, а предупредувањето испечатено последно често е жалба за чистење, а не дефектот што ја прекинал врската. Читајте нагоре до првата конкретна операција што не успеала. Грешка на помошникот што именува датотека или адреса вреди повеќе од десет линии врева од расклопување.
Споредете го предвидениот локален резултат со забележаниот: уредот на тунелот постои, маршрута до позната приватна адреса минува низ него, а резолверот одговара за приватно име. Помошник што успева во првите две и не успева во третата укажува на политиката на резолверот, а не на рутирањето. Помошник што воопшто не го конфигурира уредот веројатно никогаш не бил извршен, а тоа е прашање на дозволи, не на мрежа. Потврдете го битот за извршување и сервисната сметка пред да препишете било каква логика.
Проверете поврзување, повторно поврзување и прекин
Поставувањето е само половина од договорот, бидејќи истиот помошник мора да ја врати или отстрани состојбата што ја поседува кога тунелот се затвора. Помошник што додава маршрути и никогаш не ги отстранува ја остава машината со застарена патека што ја надживува сесијата.
ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'
Извршете ги првите три додека сте поврзани, прекинете ја врската, па извршете ги повторно и потврдете дека маршрутата и записот на резолверот исчезнале. Четвртата линија покажува дали помошникот воопшто бил повикан и која извршна патека ја користела службата. Зачувајте го тој пар излези во тикетот, бидејќи токму споредбата пред и потоа ја прави грешката при чистење очигледна.
Држете го помошникот спакуван и извршлив за сервисната сметка, бидејќи скрипта што работи во вашата обвивка сѐ уште може да биде одбиена под ограничена сервисна политика. Кога прилагодувањето навистина е потребно, документирајте ја неговата цел и сопственик и споредете го со спакуваната верзија при секое надградување. Необјаснет форк на помошник е едно од малкуте нешта што можат да направат работна врска да не успее една година подоцна.