ifconfig-noexec-ը չի փրկի ձեր SSH նստաշրջանը, և ահա թե ինչ է այն իրականում անում
Այն ճնշում է OpenVPN-ի սեփական ինտերֆեյսի հասցեի կարգավորումը։ Այն չի վերապահում SSH-ի պատասխանի երթուղին, չի անջատում երթուղու բոլոր փոփոխությունները և չի տալիս բացակայող հասցեն։
Ինչ-որ ֆորումի թեմայում ifconfig-noexec-ը առաջարկվում է որպես լուծում, որը կենդանի է պահում SSH նստաշրջանը, երբ թունելը բարձրանում է։ Պատճառաբանությունը հավաստի է թվում, քանի դեռ չես ստուգել, թե ինչի է դիպչում այդ ընտրանքը։ Այն խանգարում է OpenVPN-ին կարգավորել թունելի ինտերֆեյսի հասցեն և այդ արժեքները փոխանցում է սկրիպտներին՝ այն ոչինչ չի ասում այն մասին, թե ուր են գնում ձեր կառավարման միացման պատասխանները։ Հակառակը հավատալը ստեղծում է թունել առանց օգտագործելի հասցեի և SSH նստաշրջան, որը դեռ մեռնում է։
Ինչ է իրականում պատվիրազրկում այս ընտրանքը
Լռելյայնորեն հաճախորդը բարձրացնում է թունելի սարքը և նշանակում տեղական ու հեռավոր հասցեները, որոնք սերվերը տվել է նրան։ Երբ ifconfig-noexec-ը սահմանված է, այդ քայլը բաց է թողնվում, և համաձայնեցված արժեքները արտահանվում են սկրիպտի միջավայր, որպեսզի մեկ ուրիշը կարողանա կիրառել դրանք։
Սեփականությունը տեղափոխվում է։ Նրա փոխարեն ոչինչ չի հորինվում։
Այսպիսով, հարցը, որին պատասխանում է ընտրանքը, այն է, թե ով է կարգավորում ինտերֆեյսը, և այն հարցը, որին այն չի պատասխանում, այն է, թե ինչպես են փաթեթները վերադառնում ձեզ մոտ։ Այս երկուսը առանձին պահեք, այլապես մի ամբողջ երեկո կանցկացնեք երթուղիներ խմբագրելով՝ առանց հասցեի ինտերֆեյսը փոխհատուցելու համար։
Երեք նման ընտրանք՝ տարբեր աշխատանքով
Այս ընտանիքը հեշտ է շփոթել, որովհետև անունները տարբերվում են մեկ բառով, իսկ ախտանշանները համընկնում են։ Կարդացեք, թե ինչ է ճնշում յուրաքանչյուրը, նախքան դրանցից մեկը ընտրելը։
| 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 |
Սրանք առանձին հասկանալու այլընտրանքներ են, ոչ թե միասին փակցնելու հավաքածու։ Հասցեի կարգավորումը ճնշելը չի ճնշում երթուղու փոփոխությունները, ֆայրվոլի կանոնները կամ DNS կրող հրող ընտրանքները։ Պատվիրազրկված սկրիպտը նույնպես ազատ է փոխել երթուղիները, ինչը որոշում է, որը դուք հանձնում եք, այլ ոչ թե խուսափում եք դրանից։
Եթե վաճառողի հաճախորդը փաթաթում է շարժիչը, օգտագործեք նրա աջակցվող ինտեգրումը՝ պրոֆիլի մեջ ցածր մակարդակի հրահանգ գցելու և փաթաթիչից դրա հարգանքը ակնկալելու փոխարեն։ Փաթաթիչները հաճախ միանալիս վերաստեղծում են պրոֆիլը, այնպես որ ձեռքի խմբագրումը անհետանում է առանց սխալի։ Նախքան ֆայլի վրա մի ամբողջ երեկո ծախսելը՝ ստուգեք, թե որտեղ է հաճախորդը պահում իր կարգավորումները։ Դա վերաբերում է աղյուսակի յուրաքանչյուր տողին, ոչ միայն այն մեկին, ինչի համար եկել եք։
Այն SSH նստաշրջանը, որը ցանկանում էիք պաշտպանել
SSH միացումն ունի աղբյուրի հասցե, նպատակակետի հասցե և պատասխանի ուղի։ Սերվերի վրա, որը նոր է տեղադրել ամբողջական թունելի լռելյայնը, ձեր հանրային հասցեին ուղղված պատասխանը համընկնում է թունելին, և VPN դարպասը գցում է այն։
Թունելի ինտերֆեյսի հասցեի կարգավորման մեջ ոչինչ չի փոխում դա։
Ինչ ուղղում է դա՝ ձեր կառավարման հասցեի համար ավելի կոնկրետ երթուղին թունելից առաջ եղած դարպասով, կամ քաղաքականության կանոն, որը շեղում է այդ հոսքը, գումարած այն զտիչի կարգավորումները, որոնք կիրառում է ձեր հոսթը։ Երկու խնդիրները երբեմն ի հայտ են գալիս միասին, և այդպես է, որ մեկը շփոթվում է մյուսի բուժման հետ։ Ստուգեք դրանք առանձին՝ բարձրացրեք թունելը առանց ընտրանքի, նայեք ինտերֆեյսի հասցեին և պատասխանի ուղուն, ապա որոշեք, թե երկուսից որն է իրականում կոտրված։
Ինչ պետք է ստանձնի պատվիրազրկված սկրիպտը
Եթե իսկապես ուզում եք, որ մեկ այլ սեփականատեր կարգավորի ինտերֆեյսը, թվարկեք աշխատանքը՝ կիրառեք տեղական և հեռավոր հասցեն, բարձրացրեք սարքը, վերականգնեք կամ հեռացրեք հասցեավորումը անջատման պահին, և նույնը կրկնեք վերամիացումից հետո։ Մեկ հաջող նստաշրջանի արժեքները չպետք է կոշտ կոդավորվեն, որովհետև սերվերը հաջորդ անգամ կարող է այլ զույգ տալ։
Հաճախորդի արտահանած միջավայրի փոփոխականները այդ աշխատանքի միակ աջակցվող մուտքն են։
env | grep -E '^ifconfig_|^route_'Որևէ route-up սկրիպտի ներսում այդ փոփոխականները հասանելի են, cron առաջադրանքից կամ ձեռքի shell-ից՝ ոչ։ Հաստատեք, թե ձեր տարբերակն օգտագործում է կյանքի ցիկլի որ կցորդը, և հաստատեք, որ կցորդը գործարկվում է ինտերֆեյսը փոխելու համար բավարար արտոնություններով, քանի որ հաճախորդը կարող է արդեն իջել անարտոնյալ օգտատիրոջ։
Ստուգեք ամբողջ կյանքի ցիկլը, ոչ թե մեկ նստաշրջան
Բարձրացրեք թունելը, ստուգեք սարքի հասցեն, ապա նորից միացեք և կրկին ստուգեք։ Կարգավորումը, որն աշխատում է մեկ անգամ և ձախողվում երկրորդ փորձին, սովորաբար նշանակում է, որ պատվիրազրկված քայլը գործարկվում է միայն առաջին միացման ժամանակ։
Այնուհետև միասին ստուգեք ընդունման երկու չափանիշները՝ նոր SSH միացումը նախատեսված կառավարման ուղով աշխատում է, և թույլատրված հավելվածը ճիշտ է օգտագործում թունելը։
Հին SSH նստաշրջանը, որը պատահաբար ողջ է մնում, երբ թունելը հասցե չունի, հաջողություն չէ, և հենց այդ վիճակն է ստեղծում այս ընտրանքը, երբ ոչ ոք չի ստանձնում աշխատանքը։ Նախ ստուգեք ինտերֆեյսի հասցեն, ապա կառավարման պատասխանի ուղին, ապա հավելվածը։ Եթե երեքից երկուսը սխալ են, ընտրանքը տեղափոխել է աշխատանքը՝ առանց դրա համար սեփականատեր նշանակելու։