Մեկ OpenVPN հաճախորդի դադարեցում. ինչու չեղարկումը սխալ լծակ է
Նստաշրջանը սպանելը շրջելի է. վկայագիրը չեղարկելը՝ ոչ։ Որոշեք, թե որ լծակն է պետք դեպքին, և վերակառուցեք CRL-ը միայն երբ դա տեղին է։
Մեկ հաճախորդի հասանելիությունը դադարեցնելը և նրան ընդմիշտ հեռացնելը նույն խնդիրն են թվում, մինչև չփորձեք հետարկել դրանցից մեկը։ Վկայագրի չեղարկումը գրում է գրառում, որը սերվերը համարում է վերջնական, և այն հետարկելը նշանակում է ձեռքով խմբագրել թողարկողի տվյալների բազան։ Ակտիվ թունելը գցելը կառավարման հրաման է, որը վստահության մեջ ոչինչ չի փոխում։ Ընտրեք լծակը՝ հարցնելով, թե արդյոք բանալին դեռ վստահելի է, այլ ոչ թե՝ թե որքան հրատապ է թվում հարցումը։
Հավատը. չեղարկվածն ու կասեցվածը նույնն են
Կապալառուին մեկ շաբաթ կասեցնում են, և առաջին արձագանքը չեղարկումն է, որովհետև չեղարկումը հնչում է որպես ինչ-որ բան անջատելը։ Դա կոկիկ է թվում, տևում է տասը վայրկյան, և որպես վերադարձի միակ ճանապարհ թողնում տվյալների բազայի խմբագրումը։ Արձագանքը հասկանալի է, և այն ավելի մոտ է անձնագիր այրելուն, քան դուռ փակելուն։ Կասեցված սարքը և վտանգված բանալին տարբեր վերաբերմունք են պահանջում, և դրանցից միայն մեկն է էժան հետարկել։
Տարբերությունը վկայականի մասին է, ոչ թե մարդու։ Բանալին, որը դեռ ճիշտ ձեռքերում է, կարելի է կասեցնել և շարունակել առանց վստահության որևէ կորստի։ Բանալին, որը գուցե պատճենվել է, երբեք չպետք է վերականգնվի, որովհետև վերականգնումը պնդում է, թե պատճենը գոյություն չունի։
Գրեք պատասխանը նախքան համակարգերից որևէ մեկին դիպչելը։ Եթե չեք կարող ասել՝ բանալին բացահայտվե՞լ է, ապա պահպանողական պատասխանը փոխարինումն է։
Գցեք ակտիվ նստաշրջանը կառավարման միջերեսով
OpenVPN առաջարկում է կառավարման միջերես, որը կարող է թվարկել նստաշրջանները և սպանել դրանցից մեկը ընդհանուր անունով։ Միացրեք այն localhost-ում, հեռու պահեք հանրային միջերեսից, և ուղարկեք սպանելու հրամանը, երբ նստաշրջանը պետք է հիմա անհետանա։ Հրամանը փակում է միայն այդ թունելը, և մյուս բոլոր հաճախորդները շարունակում են աշխատել։
Սա պատասխան է ակտիվ խնդրին, ոչ թե կասեցման քաղաքականություն։ Նույն պրոֆիլը կարող է նորից միանալ մեկ րոպեում, որովհետև նրա վկայականում ոչինչ չի փոխվել։ Օգտագործեք այն, երբ նստաշրջանը պետք է հեռանա, և տևական որոշումը դեռ կայացվում է։
Հաստատեք, որ նստաշրջանը միացված է եղել նախքան այն սպանելը, որպեսզի չհետապնդեք հաճախորդի, որը երբեք չի միացել։ Ստորև տրված կարգավիճակի հրամանը տպում է, թե ինչն է հիմա միացված։
printf 'status 2\nquit\n' | nc 127.0.0.1 7506
printf 'kill kiosk-14\nquit\n' | nc 127.0.0.1 7506Եթե սպանելը հաղորդում է, որ այդպիսի հաճախորդ չկա, ապա վկայագրի ընդհանուր անունը այն տողը չէ, որ դուք մուտքագրել եք։ Կարդացեք կարգավիճակի ելքը՝ պրոֆիլի ֆայլի անվան փոխարեն։
Ինչ է իրականում կարգավորում CRL-ը
Սերվերը չի դիմում վկայագրի վրա պահված չեղարկման դրոշին։ Այն կարդում է crl-verify-ում նշված վկայագրերի չեղարկման ցանկը ամեն նոր միացման ժամանակ և մերժում է այն վկայագիրը, որի հերթական համարը հայտնվում է այդ ցանկում։ Դրանից բխում են երկու հետևանք, և երկուսն էլ գործառնական նշանակություն ունեն։ Ֆայլը պետք է ընթեռնելի լինի այն հաշվի համար, որին սերվերը զիջում է իր արտոնությունները, և արդեն միացած հաճախորդը շարունակում է աշխատել մինչև նորից միանալը։
Այդ երկրորդ հետևանքը զարմացնում է մարդկանց միջադեպերի ժամանակ։ Վկայագրի չեղարկումը չի փակում թունելը, որն այն հիմա օգտագործում է։ Եթե նստաշրջանը պետք է ավարտվի անմիջապես, զուգակցեք չեղարկումը կառավարման սպանության հետ, և երկու գործողությունները դիտարկեք որպես առանձին քայլեր ուղեցույցում։
Ուսումնասիրեք ցանկը՝ տեսնելու, թե սերվերն ինչ կկիրառի իրականում, փոխանակ վստահելու վերջին պատճենած ֆայլի ժամանակի դրոշմանիշին։ Կարևոր մասը հերթական համարների քանակն է։
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | sed -n '1,14p'
ls -l /etc/openvpn/server/crl.pemԱռանց գրառումների ցանկը և ճիշտ գրառումներով ցանկը նույն տեսքն ունեն գրացուցակի ցանկում, դրա համար արժե տպել հերթական համարների քանակը։ Թույլտվությունների տողը նույնքան կարևոր է, որովհետև այն ֆայլը, որը դեմոնը չի կարող կարդալ, առաջացնում է ձախողում, որը նման է մերժված հաճախորդի։
Գրառման վերականգնում, զգուշությամբ
Վկայագիրը վերականգնելը նշանակում է շրջել գրառումը թողարկման տվյալների բազայում և հրապարակել նոր ցանկ։ easy-rsa 3-ը պահում է այդ բազան որպես index.txt PKI գրացուցակում, մինչդեռ ավելի հին դասավորություններն օգտագործում էին այլ կարգավորում։ Տողը սկսվում է կարգավիճակի տառով և ժամկետի ավարտի ամսաթվով։ Չեղարկված տողը մտցնում է չեղարկման ժամանակի դրոշմանիշ նախքան հերթական համարով, վկայագրի ֆայլի անվանմամբ և տարբերակիչ անվանմամբ շարունակելը։ Տողը հետ դնելը նշանակում է ջնջել այդ դրոշմանիշը և շրջել տառը, մինչդեռ մնացած ամեն ինչ թողնել անփոփոխ։
Նախ կրկնօրինակեք ֆայլը, և փոփոխությունը կատարեք սկրիպտով, ոչ թե տպելով տեքստային խմբագրում։ Տառասխալը, որը փոխում է, թե տողը քանի դաշտ է կրում, կոտրում է թողարկումը յուրաքանչյուր հետո ավելացված վկայագրի համար։ Հենց դա է փոփոխությունը ավտոմատացնելու և ֆայլը դիպչելուց առաջ պատճենելու պատճառը։
Նույն անվան երկրորդ չեղարկումը նույնպես հաճախ ձախողվում է, որովհետև առաջին անցումը տեղափոխել է այդ վկայագիրն ու նրա բանալին այն գրացուցակներից, որտեղ գործիքը սպասում է գտնել դրանք։ Այնուհետև գործիքը չի գտնում այն, ինչ խնդրվել էր չեղարկել, և սխալի հաղորդագրությունը միշտ չէ, որ հստակ բացատրում է պատճառը։
cp /etc/easy-rsa/pki/index.txt /root/index.txt.$(date +%F-%H%M)
grep -c '^R' /etc/easy-rsa/pki/index.txt
easyrsa gen-crlՀրապարակեք նոր ցանկը, ուղղեք դրա սեփականատիրությունը, և ստիպեք սերվերին կարդալ այն։ Վերաբեռնումը բավական է շատ տեղադրումներում, բայց հաստատումը պետք է գա թարմ միացումից, քանի որ գոյություն ունեցող նստաշրջանը ոչինչ նորից չի ստուգել։
Ստուգեք, թե որ լծակին է արժանի դեպքը
Տվեք միակ հարցը, որը որոշում է ամբողջ ուղեցույցը. արդյոք մասնավոր բանալին դեռ միայն այնտեղ է, որտեղ պետք է լինի։ Եթե այո, նստաշրջանի սպանությունը և փաստաթղթավորված դադարը ծածկում են դեպքը և մշտական գրառում չեն թողնում։ Եթե ոչ, միակ ապահով պատասխանը նոր բանալին է, իսկ հին վկայագիրը մնում է չեղարկված։
Այնուհետև ստուգեք արդյունքը միացման փորձով, ոչ թե կոնֆիգուրացիայի տարբերությամբ։ Տարբերությունը ձեզ ասում է, թե ինչ էիք մտադիր, և միացումը ասում է, թե ինչ է կիրառում սերվերը։
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | grep -c 'Serial Number'
printf 'status 2\nquit\n' | nc 127.0.0.1 7506Երբ վերականգնված հաճախորդը միանում է և հայտնվում կարգավիճակի ելքում, գրառման խմբագրումը աշխատել է։ Երբ չեղարկված հաճախորդը մերժվում է, և մատյանը նշում է CRL-ը, չեղարկումը աշխատել է։ Դրանց միջև ամեն ինչ թույլտվությունների կամ վերաբեռնման խնդիր է, և արժե այն ուղղել մինչև հաջորդ հարցումը գալը։