ifconfig-noexec ne bo rešil vaše seje SSH: kaj v resnici počne
Zaduši lastno nastavitev naslova vmesnika v OpenVPN. Ne rezervira poti odgovora za SSH, ne izklopi vseh sprememb poti in ne zagotovi manjkajočega naslova.
V neki forumski niti ifconfig-noexec je ponujen kot popravek, ki ohrani sejo SSH živo, ko se dvigne tunel. Razlogovanje zveni verjetno, dokler ne pogledaš, česa se ta možnost v resnici dotakne. Preprečuje OpenVPN , da bi nastavil naslov vmesnika tunela, in te vrednosti namesto tega preda skriptom; o tem, kam gredo odgovori na tvojo upravljalno povezavo, ne pove ničesar. Prepričanje o nasprotnem ustvari tunel brez uporabnega naslova in sejo SSH, ki vseeno umre.
Kaj ta možnost v resnici delegira
Privzeto odjemalec dvigne napravo tunela in dodeli lokalni in oddaljeni naslov, ki mu ju je dal strežnik. Ko je ifconfig-noexec nastavljena, je ta korak izpuščen, pogajane vrednosti pa se izvozijo v okolje skriptov, da jih lahko uporabi nekaj drugega.
Lastništvo se premakne. Na njegovo mesto se nič ne izmisli.
Torej vprašanje, na katero možnost odgovarja, je, kdo nastavi vmesnik, in vprašanje, na katero ne odgovarja, je, kako paketi najdejo pot nazaj do tebe. Ti dve stvari drži ločeni, sicer boš preživel cel večer z urejanjem poti, da bi nadomestil vmesnik brez naslova.
Tri podobne možnosti z različnimi nalogami
To družino je lahko zamenjati, ker se imena razlikujejo za eno besedo in se simptomi prekrivajo. Preberi, kaj katera zaduši, preden katero izbereš.
| Option | What stops happening |
|---|---|
ifconfig-noexec | OpenVPN's own tunnel-address configuration; values go to scripts instead |
route-noexec | Automatic route addition and removal; route details go to a script |
route-nopull | Server-pushed routes and related options such as DNS are rejected |
To so alternative za razumevanje vsake posebej, ne niz za lepljenje skupaj. Zadušitev nastavitve naslova ne zaduši sprememb poti, pravil požarnega zidu ali potisnjenih možnosti, ki prenašajo DNS. Delegirani skript lahko tudi prosto spreminja poti, in to je odločitev, ki jo predajaš, namesto da bi se ji izognil.
Če odjemalec ponudnika ovije pogon, uporabi njegovo podprto integracijo, namesto da v profil vržeš nizkonivojsko direktivo in upaš, da jo bo ovoj upošteval. Ovoji pogosto ob povezavi znova ustvarijo profil, zato ročna sprememba izgine brez napake. Preveri, kje odjemalec hrani svoje nastavitve, preden preživiš večer ob datoteki. To velja za vsako vrstico v tabeli, ne le za tisto, po katero si prišel.
Seja SSH, ki si jo hotel zaščititi
Povezava SSH ima izvorni naslov, ciljni naslov in pot odgovora. Na strežniku, ki je pravkar namestil privzeto pot polnega tunela, se odgovor na tvoj javni naslov ujema s tunelom, in prehod VPN ga zavrže.
Nič v nastavitvi naslovov vmesnika tunela tega ne spremeni.
Kar to popravi, je natančnejša pot za tvoj upravljalni naslov skozi prehod pred tunelom, ali pravilo politike, ki preusmeri ta promet, skupaj z nastavitvami filtra, ki jih uporablja tvoj gostitelj. Težavi se včasih pojavita skupaj, in tako eno vzamejo za zdravilo druge. Preizkusi ju ločeno: dvigni tunel brez možnosti, poglej naslov vmesnika in pot odgovora, nato odloči, katera od obeh je v resnici pokvarjena.
Kaj mora delegirani skript prevzeti
Če resnično želiš, da vmesnik nastavi drug lastnik, naštej delo: uporabi lokalni in oddaljeni naslov, dvigni napravo, ob odstranitvi obnovi ali odstrani naslavljanje in po ponovni povezavi stori isto znova. Vrednosti iz ene uspešne seje ne smejo biti trdo kodirane, ker lahko strežnik naslednjič da drug par.
Okoljske spremenljivke, ki jih izvozi odjemalec, so edini podprti vhod za to delo.
env | grep -E '^ifconfig_|^route_'Znotraj skripta route-up so te spremenljivke na voljo; iz opravila cron ali ročne lupine niso. Potrdi, kateri kavelj življenjskega cikla uporablja tvoja različica, in potrdi, da kavelj teče z dovolj pravicami za spremembo vmesnika, ker je odjemalec morda že padel na neprivilegiranega uporabnika.
Preizkusi celoten življenjski cikel, ne ene seje
Dvigni tunel, preveri naslov na napravi, nato se znova poveži in preveri še enkrat. Konfiguracija, ki deluje enkrat in spodleti ob drugem poskusu, običajno pomeni, da se delegirani korak izvede le ob prvi povezavi.
Nato preizkusi oba kriterija sprejemljivosti skupaj: nova povezava SSH po predvideni upravljalni poti deluje in dovoljena aplikacija pravilno uporablja tunel.
Stara seja SSH, ki po naključju preživi, medtem ko tunel nima naslova, ni uspeh, in točno to stanje ustvari ta možnost, ko dela nihče ne prevzame. Najprej preveri naslov vmesnika, nato pot odgovora upravljanja, nato aplikacijo. Če sta dva od treh napačna, je možnost premaknila delo, a mu ni dala lastnika.