Увезете профил во десктоп клиент и првиот неуспех често е ред што клиентот одбива да го почитува: скриптна кука што нема да ја изврши, или вредност на script-security што ја смета за премногу дозволена. Подигањето на бројот го отстранува дијалогот. Но тоа го проширува и она што тој профил смее да го изврши на вашата машина, што е чудно нешто да се даде само за да се затвори предупредување. Проследете го увозот до директивата и одлуката станува конкретна.

Од дијалогот за увоз до директивата

Профилот е текстуална датотека со директиви и клиентот ги чита пред да постои каков било тунел. Директива како up, down или tls-verify именува надворешна програма што OpenVPN треба да ја изврши во определен момент. Дали OpenVPN е подготвен да ја изврши е одделно поставување наречено script-security, а профилот обично го поставува и тоа.

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

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

Што всушност отвора секое ниво

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

LevelWhat OpenVPN may executeWhat it exposes
0No external programs at allInterface and route setup must not depend on helpers
1 (default)Built-in helpers such as ip, ifconfig, route or netshPrivileged commands the platform already ships
2Built-in helpers plus user-defined scriptsWhatever the named script does with the client's privileges
3Everything above, plus passwords in environment variablesCredentials visible to child processes and their logs

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

Ниту еден од овие броеви не е поставување за јачина. Профил на ниво 3 нема подобра шифрирање од оној на ниво 1; едноставно има поголема површина за извршување, а тунелот е идентичен.

Одлучете што заслужува профилот

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

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

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

grep -nE 'script-security|^up |^down |tls-verify' client.ovpn

Променете едно нешто, па следете го и расклопувањето

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

openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default

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

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

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

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