Во некоја форумска тема, 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 сесија што сѐ уште случајно преживува додека тунелот нема адреса не е успех, и токму таа состојба ја создава оваа опција кога никој не ја презема работата. Прво провери ја адресата на интерфејсот, потоа патот за одговор на управувањето, потоа апликацијата. Ако два од трите се погрешни, опцијата преместила работа без да ѝ даде сопственик.

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