У једној теми на форуму ifconfig-noexec нуди се као исправка која одржава SSH сесију живу када се подигне тунел. Образложење звучи уверљиво док не провериш шта та опција заиста дотиче. Она спречава OpenVPN да подеси адресу интерфејса тунела и уместо тога те вредности предаје скриптама; о томе куда иду одговори на твоју управљачку везу не каже ништа. Веровање у супротно даје тунел без употребљиве адресе и SSH сесију која ипак умире.

Шта та опција заиста делегира

Подразумевано клијент подиже уређај тунела и додељује локалну и удаљену адресу које му је дао сервер. Када је ifconfig-noexec постављена, тај корак се прескаче, а договорене вредности се извозе у окружење скрипти да би их нешто друго могло применити.

Власништво се премешта. На његово место се ништа не измишља.

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

Три сличне опције са различитим пословима

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

OptionWhat stops happening
ifconfig-noexecOpenVPN's own tunnel-address configuration; values go to scripts instead
route-noexecAutomatic route addition and removal; route details go to a script
route-nopullServer-pushed routes and related options such as DNS are rejected

Ово су алтернативе које треба разумети појединачно, а не скуп за лепљење заједно. Потискивање подешавања адресе не потискује промене путања, правила заштитног зида или гурнуте опције које носе DNS. Делегирана скрипта такође слободно мења путање, а то је одлука коју предајеш уместо да је избегнеш.

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

SSH сесија коју си хтео да заштитиш

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

Ништа у подешавању адреса интерфејса тунела то не мења.

То поправља специфичнија путања за твоју управљачку адресу кроз капију пре тунела, или правило политике које скреће тај саобраћај, плус подешавања филтера која примењује твој домаћин. Два проблема се понекад појаве заједно, и тако се један узме за лек другог. Тестирај их одвојено: подигни тунел без опције, погледај адресу интерфејса и путању одговора, па одлучи који је од два заиста покварен.

Шта делегирана скрипта мора да преузме

Ако заиста желиш да интерфејс подешава други власник, наброј посао: примени локалну и удаљену адресу, подигни уређај, врати или уклони адресирање при раскидању и учини исто поново после поновног повезивања. Вредности из једне успешне сесије не смеју бити тврдо кодиране, јер сервер следећи пут може дати други пар.

Променљиве окружења које клијент извози једини су подржани улаз за тај посао.

env | grep -E '^ifconfig_|^route_'

Унутар скрипте route-up те променљиве су доступне; из cron задатка или ручне шкољке нису. Потврди који хук животног циклуса користи твоја верзија и потврди да хук ради са довољно привилегија да измени интерфејс, јер клијент је можда већ сишао на непривилегованог корисника.

Тестирај цео животни циклус, а не једну сесију

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

Затим тестирај оба критеријума прихватања заједно: нова SSH веза кроз предвиђену управљачку путању ради, и дозвољена апликација исправно користи тунел.

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

Повезани чланци