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

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

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

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

Пред двете вреди да се постави трето прашање: дали платформата воопшто ја нуди куката што ја сакате? Уред што сам генерира конфигурација можеби не ги нуди истите имиња на настани, а десктоп клиент што увезува .ovpn датотека не е нужно истиот клиент за кој е напишана датотеката. Потврдувањето на платформата однапред ве спасува од дизајнирање околу кука што таму не постои. Тоа ви кажува и која документација навистина се однесува на машината пред вас.

Серверската опција: настан за секое поврзување

client-connect скриптата се извршува во контекст на серверскиот процес кога се поврзува автентификуван клиент и прима документирани детали за врската како common name и доделената адреса. Тоа е вистинското место за пишување конфигурациски фрагмент за поединечен клиент, спроведување одлука за политика или запишување состојба што ја поседува серверот.

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

На уред со веб-интерфејс користете го поддржаниот механизам за проширување наместо да уредувате генерирани демонски датотеки. Генерираните датотеки се препишуваат при следното зачувување и препишувањето тивко ја отстранува вашата промена во најлошиот можен момент. Чувајте копија од текстот на проширувањето надвор од уредот, за да не ја изгуби и намерата при ажурирање на firmware.

Клиентската опција: работа што мора да се изврши локално

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

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

И именувањето е важно. up куката одговара на создавање на уредот, а route-up на инсталирање рути, но задача што бара достапна приватна мрежа треба да ја провери достапноста наместо да претпостави дека создавањето на уредот значи дека секоја рута, запис во resolver и апликација се подготвени.

Зошто туркањето извршлив код не е меѓу опциите

Опциите што се праќаат со push се намерно ограничени и опциите што извршуваат скрипти се меѓу категориите што серверот не смее да ги пренесе. Тоа ограничување постои затоа што алтернативата би му дозволила на компромитиран или погрешно конфигуриран сервер да извршува произволни команди на секој клиент што некогаш ќе се поврзе.

Овозможувањето извршување скрипти локално тоа не го менува. Вашата script-security поставка дозволува локални скрипти што самите сте ги избрале; таа не му дава на серверот право да доставува нови.

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

Што да се провери пред да и се верува на која било од двете куки

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

Тестирајте под сметката што навистина ќе ја изврши, во моментот кога навистина ќе се изврши. Прирачникот openvpn(8) ги документира двете фамилии куки и ограничувањата на push; платформата на која распоредувате документира дали воопшто ги изложува. Скрипта што успева во интерактивен администраторски терминал е хипотеза, а не проверка.

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