SSH-ի երկու գործոնով վավերացում

«Secure shell» SSH-ը ցանցային արձանագրություն է՝ հոսթինգների միջև անվտանգ կապ հաստատելու համար, ստանդարտ 22 պորտի միջոցով (որն ավելի լավ է փոխել): SSH հաճախորդները և SSH սերվերները հասանելի են օպերացիոն համակարգերի մեծ մասի համար: Գրեթե ցանկացած այլ ցանցային արձանագրություն աշխատում է SSH-ի ներսում, այսինքն՝ դուք կարող եք հեռակա աշխատել մեկ այլ համակարգչի վրա, փոխանցել աուդիո կամ վիդեո հոսք գաղտնագրված ալիքով և այլն: Բացի այդ, SOCKS վստահված անձի միջոցով հեռավոր հյուրընկալողի վրա դուք կարող եք միանալ այլ հոսթներին այս հեռավոր հոսթի անունից:

Նույնականացումն իրականացվում է գաղտնաբառի միջոցով, սակայն մշակողները և համակարգի ադմինիստրատորները ավանդաբար օգտագործում են SSH ստեղները: Խնդիրն այն է, որ անձնական բանալին կարող է գողանալ: Անցաբառի ավելացումը տեսականորեն պաշտպանում է մասնավոր բանալին գողանալուց, սակայն գործնականում բանալիները փոխանցելիս և քեշավորելիս դրանք դեռ կարող է օգտագործվել առանց հաստատման. Երկու գործոնով նույնականացումը լուծում է այս խնդիրը:

Ինչպես իրականացնել երկգործոն նույնականացում

Մեղրախորիսխի մշակողները վերջերս հրապարակեցին մանրամասն հրահանգներ, ինչպես իրականացնել համապատասխան ենթակառուցվածք հաճախորդի և սերվերի վրա:

Հրահանգները ենթադրում են, որ դուք ունեք որոշակի հիմնական հոսթ բաց ինտերնետի համար (բաստիոն): Դուք ցանկանում եք միանալ այս հոսթին նոութբուքներից կամ համակարգչից ինտերնետի միջոցով և մուտք գործել բոլոր մյուս սարքերը, որոնք գտնվում են դրա հետևում: 2FA-ն ապահովում է, որ հարձակվողը չի կարող անել նույնը, նույնիսկ եթե նրանք մուտք ունենան դեպի ձեր նոութբուքը, օրինակ՝ չարամիտ ծրագրեր տեղադրելով:

Առաջին տարբերակը OTP-ն է

OTP - մեկանգամյա թվային գաղտնաբառեր, որոնք այս դեպքում կօգտագործվեն բանալիի հետ միասին SSH նույնականացման համար: Մշակողները գրում են, որ սա իդեալական տարբերակ չէ, քանի որ հարձակվողը կարող է կեղծ բաստիոն բարձրացնել, խափանել ձեր OTP-ն և օգտագործել այն։ Բայց դա ավելի լավ է, քան ոչինչ:

Այս դեպքում, սերվերի կողմից, հետևյալ տողերը գրված են Chef config-ում.

  • metadata.rb
  • attributes/default.rb (տեսանյութ) attributes.rb)
  • files/sshd
  • recipes/default.rb (պատճենից recipe.rb)
  • templates/default/users.oath.erb

Ցանկացած OTP հավելված տեղադրված է հաճախորդի կողմից՝ տեղադրված է Google Authenticator, Authy, Duo, Lastpass: brew install oath-toolkit կամ apt install oathtool openssl, ապա ստեղծվում է պատահական base16 տող (բանալին): Այն փոխարկվում է Base32 ձևաչափի, որն օգտագործում են բջջային իսկորոշիչները և ներմուծվում անմիջապես հավելվածում:

Արդյունքում, դուք կարող եք միանալ Bastion-ին և տեսնել, որ այն այժմ պահանջում է ոչ միայն անցաբառ, այլ նաև վավերացման համար OTP կոդ.

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

Երկրորդ տարբերակը ապարատային վավերացումն է

Այս դեպքում օգտվողից չի պահանջվում ամեն անգամ մուտքագրել OTP կոդը, քանի որ երկրորդ գործոնը դառնում է ապարատային սարքը կամ կենսաչափությունը:

Այստեղ Chef-ի կոնֆիգուրացիան մի փոքր ավելի բարդ է, և հաճախորդի կոնֆիգուրացիան կախված է ՕՀ-ից: Բայց բոլոր քայլերն ավարտելուց հետո MacOS-ի հաճախորդները կարող են հաստատել նույնականացումը SSH-ում՝ օգտագործելով անցաբառը և մատը դնելով սենսորի վրա (երկրորդ գործոն):

iOS-ի և Android-ի սեփականատերերը հաստատում են մուտքը սեղմելով ձեր սմարթֆոնի մեկ կոճակը. Սա Krypt.co-ի հատուկ տեխնոլոգիա է, որը նույնիսկ ավելի ապահով է, քան OTP-ն:

Linux/ChromeOS-ում կա YubiKey USB նշանների հետ աշխատելու տարբերակ: Իհարկե, հարձակվողը կարող է գողանալ ձեր նշանը, բայց նա դեռ չգիտի անցաբառը:

Source: www.habr.com

Добавить комментарий