remote-cert-tls server։ ինչ է ստուգում OpenVPN պրոֆիլում
Հրահանգը ստուգում է գործընկերոջ վկայագրում կոդավորված դերը, ոչ թե նրա անունը։ Համեմատեք դերը, վստահության խարիսխը և հոսթի անվան ստուգումը նախքան որևէ բան անջատելը։
Երեք տարբեր հարցերի պատասխանում են OpenVPN պրոֆիլի երեք տարբեր մասեր, և հենց դրանք միաձուլելն է, ինչի պատճառով մարդիկ ի վերջո անջատում են աշխատող ստուգումը։ Արդյո՞ք գործընկերոջ վկայագիրը ստորագրված է այն մարմնի կողմից, որին վստահում եմ։ Արդյո՞ք այդ վկայագիրը հայտարարում է TLS սերվերի դերը։ Արդյո՞ք դա հենց այն սերվերն է, որին ուզում էի հասնել։ remote-cert-tls server պատասխանում է միայն միջին հարցին և դա անում է վկայագրի ներսում եղած ընդլայնումները կարդալով։
Երեք ստուգումներ, որոնք հեշտ է միաձուլել գլխում
Վստահության խարիսխը ապրում է ca հրահանգում։ Դերի ստուգումը պատկանում է remote-cert-tls-ին։ Ինքնության ստուգումը պատկանում է verify-x509-name-ին, երբ պրոֆիլն օգտագործում է այն, կամ ցանկացած անվան ստուգման, որը ավելացնում է տեղաբաշխումը։
Դրանք ծածկում են տարբեր խափանումներ:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another 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Եթե ընդլայնումները ցույց են տալիս սերվերի դերը, և մատյանը դեռ հաղորդում է դերի ձախողման մասին, ապա պրոֆիլը հավանաբար մատնանշում է սխալ վկայագրի ֆայլ, այլ ոչ թե վատ վկայագիր։ Եթե ընդլայնումները ցույց են տալիս միայն հաճախորդի նույնականացում, դադարեցրեք հաճախորդին նայելը և ուղղեք թողարկումը։ Ամեն դեպքում, վերականգնեք ստուգումը նախքան կապը առողջ անվանելը, որովհետև ստուգումը հեռացնելուց հետո հաջող ձեռքսեղմումը ապացուցում է ավելի քիչ, քան այն սխալը, որը այն փոխարինել է։