OpenVPN կապը ձախողվում է, ինչ-որ մեկը գտնում է մեկ տողանոց ուղղում, որն ավելացնում է SECLEVEL=0, և թունելը բարձրանում է։ Փոխվել է ոչ վկայականը և ոչ էլ ծածկագրերի հավաքածուն. շարժվել է գրադարանային մակարդակի ընդունման շեմը, և այն ամենը, ինչ գործընթացն անում է դրանից հետո, ժառանգում է նոր սահմանը։ Արժե դա հասկանալ, նախքան նույն տողը կպատճենվի միջավայրի բոլոր պրոֆիլներում։

Պարզեք, թե որ գրադարանն ու որ քաղաքականությունն են գործում

SECLEVEL-ը OpenSSL-ի հասկացություն է, ուստի առաջին հարցն այն է՝ օգտագործո՞ւմ է արդյոք ձեր կառուցումը OpenSSL։ OpenVPN-ը կարող է կապակցվել մեկից ավելի գաղտնագրային գրադարանների, և դրանցից մեկի համար գործող կարգավորումը անիմաստ է մյուսների համար։ Հարցրեք բինարին, թե ինչով է այն կառուցվել, ապա հարցրեք գրադարանին, թե որ տարբերակն ու կոնֆիգուրացիան է այն բեռնել:

openvpn --version | head -3
openssl version -a

Կարդացեք տարբերակի ելքը ուշադիր, որովհետև դիստրիբյուտիվները կարկատում են լռելյայն արժեքները։ Ոմանք տրամադրում են համակարգային կոնֆիգուրացիա, որը նվազագույն մակարդակը բարձրացնում է upstream-ի լռելյայնից, և դրա պատճառով նույն պրոֆիլը տարբեր կերպ է վարվում նույնական OpenVPN փաթեթներով երկու մեքենաներում։ Գործող քաղաքականությունն այն է, որը բեռնել է աշխատող գործընթացը, ոչ թե upstream-ի ձեռնարկինը։

Ապա բաժանեք երկու շերտերը, որոնք մարդիկ շփոթում են։ OpenVPN-ն ունի իր TLS կառավարումները, ներառյալ վկայականի պրոֆիլի կարգավորումը և հստակ ծածկագրերի ցանկերը, և դրանք գտնվում են այն ամենի վրա, ինչ պարտադրում է գրադարանը։ Գրադարանի մակարդակն իջեցնելը չի փոխում, թե ձեր OpenVPN կոնֆիգուրացիան որ ծածկագրերն է թվարկում, և OpenVPN ցանկը նեղացնելը չի բարձրացնում գրադարանի շեմը։ Իմանալը, թե որ շերտն է ձեզ մերժել, հենց այն է, ինչը թույլ չի տալիս ուղղմանը մնալ ենթադրություն։

Բաժանեք երեք բաները, որոնք կարող են մերժվել

Առաջին թեկնածուն ինքնության նյութն է՝ վկայական, որի բանալին չափազանց փոքր է կամ որի ստորագրության ալգորիթմը քաղաքականությունն այլևս չի ընդունում։ Երկրորդը բանալիների փոխանակման պարամետրն է, օրինակ՝ խումբ, որը քաղաքականությունը չափազանց թույլ է համարում։ Երրորդը ծածկագրերի հավաքածու է, որը քաղաքականությունը բացառում է։ Երեքն էլ կարող են ձեռքսեղմման ձախողում առաջացնել, և միայն սխալի տեքստն ու բանակցությունների փուլն են տարբերում դրանք։

Այս երեքից ոչ մեկը տվյալների ալիքի ծածկագիրը չէ։ OpenVPN-ը բանակցում է իր թունելի գաղտնագրումը TLS ձեռքսեղմումից առանձին, ուստի անվտանգության մակարդակի փոփոխությունից հետո հաջողված կապը ոչինչ չի ասում այն մասին, թե որ ծածկագիրն է պաշտպանում ձեր տվյալները։ Եթե հարցը, որն իրականում տալիս եք, վերաբերում է տվյալների գաղտնիությանը, դուք նայում եք բոլորովին սխալ կոճակի։

Մակարդակն իջեցնելը լայնացնում է ընդունումը բոլոր երեք մուտքերի համար միաժամանակ։ Հենց այն մասն է, որ մարդիկ բաց թողնում են՝ հին վկայական թույլ տվող ուղղումը թույլ է տալիս նաև թույլ խումբ և հավաքածու, որը գուցե չէիք նախատեսում թույլատրել։ Մեկ սխալն առաջացրեց փոփոխությունը, և փոփոխությունն ավելի լայն է, քան սխալը։ Այս ասիմետրիան է պատճառը, որ սահմանափակ բացառությունը լավ է ամբողջ միջավայրի լռելյայնից։

Փոխեք մուտքը, ոչ թե շեմը

Պահեք ճշգրիտ սխալը նախքան կոնֆիգուրացիան դիպչելը, ներառյալ այն փուլը, որը հաղորդել է այն, և այն օբյեկտը, որը նա նշել է։ Վկայականի խնդիրը լուծվում է վկայականը փոխարինելով ինչով-որ, ինչն ընդունում է ընթացիկ քաղաքականությունը, ինչը սովորաբար նշանակում է վերաթողարկել այն մարմնում, այլ ոչ թե նույն ֆայլը վերատեղադրել։

Եթե մերժված մուտքը պատկանում է գործընկերոջ, որին դուք չեք վերահսկում, զրույցը նրա սեփականատիրոջ հետ է՝ աջակցվող փոխարինող նյութի մասին։ Ձեր սեփական շեմն իջեցնելը մի համակարգի համար, որը ոչ ոք չի պահպանում, ծախսը նրանցից տեղափոխում է բոլոր նրանց, ովքեր միանում են նրանցից հետո։

Այնտեղ, որտեղ սերվերը պարտադրում է քաղաքականությունը, ստուգեք, արդյոք OpenVPN-ի մակարդակի կարգավորումն է իրական պատճառը, նախքան գրադարանին մեղադրելը։ Վկայականի պրոֆիլը, որը պահանջում է ավելի խիստ դաս, քան տեղակայված վկայականը կարող է բավարարել, կձախողվի անկախ անվտանգության մակարդակից, և այդ պրոֆիլը հեռացնելը ավելի նեղ փոփոխություն է, քան գրադարանի ստուգումներն անջատելը։

Եթե պետք է իջեցնել, սահմանափակեք և գրանցեք

Երբեմն հաստատված համատեղելիության բացառությունը ճիշտ պատասխանն է, հատկապես թվագրված դուրսբերման պլան ունեցող հին գործընկերոջ համար։ Սահմանափակեք այն ծառայությամբ, որին այն պետք է, ոչ թե ամբողջ հոսթով. ծառայությանը հատուկ կոնֆիգուրացիոն ֆայլը կամ հատուկ OpenSSL կոնֆիգուրացիան ավելի փոքր ազդեցության շառավիղ ունի, քան գլոբալ պրոֆիլում արտահանումը։

Բացառության հետ գրեք չորս բան՝ ճշգրիտ կարգավորումը, այն հաստատած սեփականատերը, ազդակիր հաճախորդները և այն պայմանը, որով այն կհեռացվի։ Առանց դուրսբերման պայմանի բացառությունը մշտական թուլացում է՝ կցված ժամանակավոր հիմնավորմամբ։

Վերադարձը պետք է լինի մեկ քայլ, որը դուք արդեն փորձարկել եք։ Պահեք նախորդ կոնֆիգուրացիան, կիրառեք փոփոխությունը, հաստատեք, որ ծառայությունը մեկնարկում է, և իմացեք ճշգրիտ, թե որ ֆայլը վերականգնել, եթե հաջորդ կապը վարվի սպասվածից տարբեր։

Հետո ստուգեք ինքնությունը և պաշտպանությունը

Հաջող կապը միայն ապացուցում է, որ վերանայված պայմանները թույլ են տվել այն։ Հաստատեք, որ հոսթի անվան և գործընկերոջ ստուգումը դեռ կատարում է իր աշխատանքը, որ օգտագործվող վկայականը այն է, որը նախատեսել էիք տեղակայել, և որ բանակցված տվյալների ալիքը համապատասխանում է այն քաղաքականությանը, որը կարծում եք՝ ունեք։

openssl x509 -in /etc/openvpn/client.crt -noout -subject -dates -text | grep -E 'Signature Algorithm|Public-Key'
openvpn --show-tls | head -20

OpenSSL-ի անվտանգության մակարդակների տեղեկագիրը հստակ ասում է, որ շրջանակը սահմանափակումներ է կիրառում բանալիների, ստորագրությունների, խմբերի և հավաքածուների վրա միասին, և որ զրոյական մակարդակը թույլատրում է այն ամենը, ինչ ստուգում է հետադարձ կանչը։ Սա է ձեր փոփոխածի շրջանակը, և սա է այն նախադասությունը, որը մեջբերում են, երբ մեկը հարցնում է՝ արդյոք ուղղումը նեղ էր։

Աուդիտը վերապրող հանձնումը ասում է, թե որ քաղաքականությունը որ մուտքը մերժեց, ինչ փոխվեց և ինչ է մնում ընդունելի արդյունքում։ «Այն աշխատում է SECLEVEL=0-ով» դիտարկում է մեկ կապի մասին, ոչ թե տեղակայման անվտանգության գնահատում։

Առնչվող հոդվածներ