Ваша .ovpn датотека може да извршава код, не само да усмерава саобраћај
Профил који именује up или down помоћника извршава код са вашим привилегијама. Проверите путању, власништво, чишћење и поставку script-security.
Већина људи чита .ovpn датотеку као што чита страницу подешавања рутера: адресе, руте, листу шифара. Део који извршава код налази се близу дна, поред директива које изгледају као водоинсталатерски посао, и ради са оним привилегијама које клијент већ има. То је празнина коју искоришћава немаран или злонамеран профил, а то је и празнина која корисног DNS помоћника претвара у проблем подршке три недеље касније. Директива догађаја, ниво безбедности и власништво датотеке одлучују шта може да се догоди; садржај скрипте одлучује шта се заиста догађа. Прочитајте сва четири пре повезивања.
Профил који покреће помоћника је програм, а не датотека подешавања
Директиве попут route и dhcp-option описују стање које клијент треба да успостави, а клијент их третира као податке. up скрипта је другачија: клијент је покреће као процес и даје јој окружење пуно детаља о вези, па све што је аутор написао ради са правима вашег налога. На преносном рачунару где је корисник администратор, то су широка врата за датотеку која је стигла као прилог или залепљена из форумске теме. Разлика није стилска, то је разлика између конфигурације и кода.
Мит који вреди напустити је да профил може само да преусмери саобраћај. Помоћник који извршава ip route add и онај који извршава curl према удаљеном хосту су исти механизам, а профил споља изгледа исто. Ништа у изгледу датотеке не каже који имате, зато преглед мора да стигне до саме скрипте.
Шта заправо одлучује о извршавању и како изгледају редови који га омогућавају
Помоћником управљају три ствари: директива догађаја која га именује, ниво script-security који га дозвољава и сама имплементација клијентске платформе. Профил може да затражи куку и ипак не види ништа да се догађа, јер мобилни клијент или сведена десктоп верзија можда уопште не имплементира тај догађај. Исто тако, профил који тражи више дозволе него што је његовој функцији потребно говори вам нешто о свом пореклу. Ниво дозволе је способност, не одобрење. Редови који га омогућавају изгледају овако, а путања стоји на месту ваше.
script-security 2
up /etc/openvpn/update-resolv-conf.sh
down /etc/openvpn/update-resolv-conf.shНиво 0 одбија спољне програме, а ниво 1, подразумевани, дозвољава само уграђене извршне датотеке клијента, па куци треба 2 или више; ниво 3 постоји углавном за преношење старих лозинки и најбоље га је избегавати. Профил који се испоручује са куком захтева и директиву и тај ниво, зато један ред близу дна датотеке заслужује исти преглед као блок сертификата. Приручник OpenVPN-а наводи нивое дозвола, а његов текст вреди читати уз оно што профил заиста тражи.
Власништво, путања и чиме се храни помоћник
Профил коме верујете, али који указује на скрипту коју други налог може да препише, није поуздан аранжман, јер јучерашњи преглед више не описује шта данас ради. Проверите власника и режим помоћника и проверите да конфигурисана путања води до датотеке коју сте прегледали, а не до имена које нешто друго може да засени. Аргументи и окружење заслужују исти поглед: клијент предаје детаље о вези куци, а помоћник који бележи цело своје окружење можда уписује акредитиве у тикет подршке. Дајте предност документованој интеграцији од оператера или платформе уместо DNS скрипте копиране са неповезаног поста, јер два управљача резолвера која се свађају око исте датотеке стварају квар који изгледа као покварен VPN.
Када пријављујете куку која не успева, редигујте окружење пре него што га залепите било где. Испис који вам помаже у отклањању грешака може да носи и токен који вас аутентификује.
Кварови чишћења појављују се након што тунел нестане
up помоћник додаје руте и подешавања резолвера, а down помоћник би требало да их поново уклони. Када down кука недостаје, тихо не успева или се никада не покреће јер је клијент убијен, остаци надживљавају сесију. Саобраћај тада иде путем који нико није планирао, а имена се разрешавају преко резолвера који је требало да буде уклоњен, док сам тунел изгледа здраво. Ти симптоми долазе после прекида везе, зато се криви мрежа, а не профил.
Тестирајте демонтажу као посебан корак: подигните тунел, забележите руте и резолвер, спустите га, затим потврдите да су обоје нестали. Профил који се чисто повезује ипак може да остави стање за собом, а нулти излазни код помоћника не доказује да је резолвер завршио тамо где мислите.
Преглед помоћника и чување излаза
Прочитајте скрипту од почетка до краја тражећи три ствари: наредбе које захтевају привилегију, чврсто кодиране путање које можда не постоје на вашем систему и сваки мрежни позив који прави. Затим погледајте како не успева, јер помоћник који гута грешке претвара грешку у конфигурацији у мистерију. Ако не можете једном реченицом да кажете шта скрипта ради и ко може да је промени, нисте спремни да је омогућите. Профил који тражи више привилегија него што та реченица захтева је сигнал да станете.
Чувајте последњи исправни профил и помоћник на који се позивао у заштићеном складишту, са забележене обе верзије, да повратак буде копија, а не поновна изградња у најгорем могућем тренутку. Ако помоћник постоји само за дистрибуцију или верзију клијента којој више није потребан, повуците га у конфигурацији која поседује подешавање, уместо да подижете привилегије док грешке не престану. То је излаз: мање покретних делова, не више дозвола.