Երեք տարբեր հարցերի պատասխանում են OpenVPN պրոֆիլի երեք տարբեր մասեր, և հենց դրանք միաձուլելն է, ինչի պատճառով մարդիկ ի վերջո անջատում են աշխատող ստուգումը։ Արդյո՞ք գործընկերոջ վկայագիրը ստորագրված է այն մարմնի կողմից, որին վստահում եմ։ Արդյո՞ք այդ վկայագիրը հայտարարում է TLS սերվերի դերը։ Արդյո՞ք դա հենց այն սերվերն է, որին ուզում էի հասնել։ remote-cert-tls server պատասխանում է միայն միջին հարցին և դա անում է վկայագրի ներսում եղած ընդլայնումները կարդալով։

Երեք ստուգումներ, որոնք հեշտ է միաձուլել գլխում

Վստահության խարիսխը ապրում է ca հրահանգում։ Դերի ստուգումը պատկանում է remote-cert-tls-ին։ Ինքնության ստուգումը պատկանում է verify-x509-name-ին, երբ պրոֆիլն օգտագործում է այն, կամ ցանկացած անվան ստուգման, որը ավելացնում է տեղաբաշխումը։

Դրանք ծածկում են տարբեր խափանումներ:

QuestionDirectiveFailure it catches
Who signed this?caCertificate from an unrelated authority
Is this a server?remote-cert-tlsClient certificate presented by a peer
Is this my server?verify-x509-nameAnother valid server from the same CA

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

Ինչ է կարդում դերի ստուգումը

Հրահանգը մակրո է։ Այն ընդարձակվում է բանալու օգտագործման պահանջի և ընդլայնված բանալու օգտագործման պահանջի, որը նշում է TLS վեբ սերվերի դերը, ուստի գործընկերոջ վկայագիրը պետք է իրոք հայտարարի այդ նպատակը։ Հաճախորդի նույնականացման համար տրված վկայագիրը չի բավարարում դրան, նույնիսկ երբ նույն մարմինը ստորագրել է երկուսին էլ։

Դա կարևոր է, որովհետև ընդհանուր CA-ն սովորական է փոքր տեղաբաշխումներում։ Մեկ մարմին ստորագրում է յուրաքանչյուր հաճախորդի և սերվերը, և առանց դերի ստուգման այդ վկայագրերից ցանկացածը կարող էր ավարտել ձեռքսեղմման սերվերի կողմը։ Ստուգումը այդ սցենարը անհնար չի դարձնում, բայց հեռացնում է դրա տրիվիալ տարբերակը։

Հրահանգը դիզայնով ասիմետրիկ է՝ հաճախորդները կրում են remote-cert-tls server, իսկ սերվերները՝ remote-cert-tls client։ Փոխեք դրանք, և յուրաքանչյուր կապ կխափանվի դերի սխալով, որը նման է կոտրված վկայագրի։

Ավելի հին պրոֆիլները երբեմն օգտագործում են ns-cert-type նույն նպատակի համար։ Ընթացիկ ձեռնարկի էջերը այդ տարբերակը համարում են փոխարինված, ուստի պրոֆիլը, որը դեռ ապավինում է դրան, արժե տեղափոխել, ոչ թե վրիպազերծել։

Ինչու անջատելը թվում է լուծում

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

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

Անվան ստուգումը առանձին հրահանգ է

Դերի ստուգումը բավարարելը նշանակում է, որ գործընկերը ձեր մարմնի կողմից ստորագրված ինչ-որ սերվեր է։ Այն ոչինչ չի ասում, թե որն է, ինչը կարևոր է, երբ նույն CA-ն վկայագրեր է թողարկում մի քանի դարպասների համար, և նրանցից մեկը վտանգված է կամ վերանշանակված։

verify-x509-name համեմատում է վկայագրի սուբյեկտը ձեր կարգավորած արժեքի հետ՝ ճշգրիտ սուբյեկտի, նախածանցի կամ մեկ դաշտի համապատասխանեցման ռեժիմներով։ Օգտագործեք այն դաշտը, որն իրոք նույնականացնում է դարպասը, և սպասեք, որ անունը փոխվելիս դիտավորյալ կթարմացնեք այն։

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

Ուսումնասիրեք վկայագիրը նախքան պրոֆիլը խմբագրելը

Կարդացեք գործընկերոջ վկայագիրը և հաճախորդի մատյանը, այդ հերթականությամբ։ Վկայագիրը ասում է, թե ինչ դերեր է հայտարարում, իսկ մատյանը՝ թե որ ստուգումն է մերժել այն։

Այս հրամանները տպում են օգտագործման ընդլայնումները և ստուգման տողերը մանրամասն կապից:

openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verify

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

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