ორი დიზაინი ფარავს თითქმის ყველა უყურადღებო VPN გამართვას: სკრიპტში შენახული საერთო ადამიანური შესვლა, ან ჰოსტზე მიბმული მანქანის სერტიფიკატი. ისინი სხვადასხვა ადგილას ფუჭდება, რაც გამართვის სისწრაფეზე მნიშვნელოვანია. შენახული პაროლი ტყდება, როცა მისი მფლობელი შეცვლის ან წავა; სერტიფიკატი ტყდება, როცა ვადა გაუვა ან როცა ჰოსტი გასაღების გარეშე აღდგება. სამი პირობა განსაზღვრავს, რომელი ხარჯი შეგიძლიათ იტვირთოთ, და არც ერთი დიზაინი არაფერს ზღუდავს, სანამ ავტორიზაციის პოლიტიკა ამას არ გააკეთებს.

დაიწყეთ დავალებიდან, არა ანგარიშიდან

დავალება განსაზღვრავს ზღვარს: რომელი დანიშნულებები, რომელი სერვისები, რომელი საათები, რამდენ ხანს შეიძლება სესია გაგრძელდეს. გვირაბის მარშრუტი ამ ზღვრის მხოლოდ ნახევარია. კარიბჭე წყვეტს, დაშვებულია თუ არა სესია; მის უკან არსებული რესურსი წყვეტს, რა შეიძლება გააკეთოს სესიამ. ჯერ ჩამოწერეთ სია, დასახელებული მფლობელით, რადგან ორივე იდენტობის დიზაინმა უნდა დააკმაყოფილოს ის.

წერისას გამოყავით აუთენტიფიკაცია და ავტორიზაცია. აუთენტიფიკაცია პასუხობს ვინ უკავშირდება; ავტორიზაცია პასუხობს, რას შეიძლება მიაღწიოს სესიამ შემდეგ. RADIUS მეორე ნაწილს ატარებს ატრიბუტებად, როგორიცაა Filter-Id, Framed-IP-Address, Session-Timeout და Class, და კარიბჭე უერთებს მათ, როგორც კი შესვლა წარმატდება. დიზაინი, რომელიც ცვლის შესვლას და ავტორიზაციას უცვლელად ტოვებს, არაფერი შეზღუდა.

საერთო ადამიანური შესვლა: პაროლი ხდება ზღვარი

ადამიანური ანგარიშის ხელახლა გამოყენება ყველაზე სწრაფი გზაა და ყველაზე ცუდად ბერდება. მოწმობა პაროლია, ამიტომ ის სკრიპტში, გარემოს ფაილსა და დამგეგმავის კონფიგურაციაში ხვდება, და ყველა ასლს როტაცია სჭირდება. როცა მფლობელი მას პარასკევს შეცვლის, დავალება შემდეგ გაშვებაზე ფუჭდება და არავინ უყურებს.

MFA არის ის ადგილი, სადაც ეს დიზაინი ჩვეულებრივ ინგრევა. სკრიპტი ვერ უპასუხებს push მოთხოვნას, ამიტომ ანგარიში პოლიტიკიდან გამოირიცხება, და სწორედ ის ანგარიშია, რომელსაც თავდამსხმელი აირჩევდა. გამონაკლისები, სანდო მდებარეობის გვერდის ავლები და ანგარიშის მიხედვით გათავისუფლებები მრავლდება, და არც ერთი მათგანი არ ჩანს მოიჯარის პარამეტრების მკითხველ შემდეგ ადამიანს.

მიკუთვნება მეორე ხარჯია. კარიბჭის ჟურნალის ყველა სესია ერთსა და იმავე მომხმარებლის სახელს ატარებს, ამიტომ ღამის სინქრონიზაცია ვერ გაირჩევა იმ ადამიანის მუშაობისგან, ვინც დაწერა, და დავალების გაუქმება ნიშნავს იმ ადამიანის გაუქმებას.

მანქანის სერტიფიკატი: ჰოსტზე მიბმული იდენტობა

სერტიფიკატი კითხვას ცვლის იმიდან, თუ რა იცის ანგარიშმა, იმაზე, თუ რა არის ჰოსტი. EAP-TLS-ით კლიენტი წარადგენს სერტიფიკატს და ამტკიცებს შესაბამისი კერძო გასაღების ფლობას; პოლიტიკის სერვერი სუბიექტს ან კომპიუტერის ანგარიშს ჯგუფზე ასახავს და ამ ჯგუფის პოლიტიკას იყენებს. არავითარი მოთხოვნა, არავითარი საერთო საიდუმლო ტექსტურ ფაილში.

შექმნილი ზღვარი უფრო ვიწროა, ვიდრე ადამიანები ელიან. სერტიფიკატი აუთენტიფიცირებს ჰოსტს და არა დავალებას, და ყველას, ვისაც აქვს root ან ლოკალური ადმინისტრატორის უფლებები, შეუძლია გამოიყენოს ეს გასაღები იმ ჰოსტზე. შეინახეთ გასაღები იქ, სადაც პლატფორმა იცავს მას: არაექსპორტირებადი Windows-ის სერტიფიკატების საცავში, TPM-ით მხარდაჭერილი სადაც პროფილი იძლევა საშუალებას, ან root-ის საკუთრებაში არსებული 0600 ფაილი Linux-ზე. ჰოსტის კომპრომეტაცია მოწმობის კომპრომეტაციაა.

ვადის გასვლა განმეორებადი უკმარისობაა. კვირას ვადაგასული სერტიფიკატი კვირას აჩერებს დავალებას, და კარიბჭე ჩვეულებრივ ზოგად აუთენტიფიკაციის შეცდომას აცნობებს თარიღის დასახელების ნაცვლად. შეამოწმეთ თარიღები დავალების ჰოსტიდან runbook-ის ნაწილად:

openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts

გაუქმებას სჭირდება გზა, რომელსაც კარიბჭე ამოწმებს. OpenVPN კითხულობს CRL-ს crl-verify ოფციით, და strongSwan დამოკიდებულია CRL-ზე ან OCSP-ზე იმის მიხედვით, თუ როგორ არის აწყობილი კავშირის პროფილი. თუ არც ერთი არ არის მიერთებული, ჰოსტის მოცილება ნიშნავს სერტიფიკატის ვადის გასვლის ლოდინს.

სამი პირობა, რომლებიც მათ შორის წყვეტს

შედარება აწარმოეთ თქვენს პლატფორმასთან და არა საცნობარო დიზაინთან.

პირველი პირობა: შეუძლია კარიბჭეს მანქანის იდენტობის ავტორიზაცია? თუ ის მხოლოდ RADIUS მომხმარებლის სახელს ასახავს კატალოგის მომხმარებელზე, სერტიფიკატი აუთენტიფიცირებს ჰოსტს და შემდეგ ავტორიზაციაზე ჩერდება. მეორე პირობა: სჭირდება დავალებას რესურსზე წვდომა, რომელსაც მხოლოდ მომხმარებლის ანგარიში ატარებს, მაგალითად ასახული საზიარო ან ადგილის ლიცენზია? მაშინ მანქანის იდენტობა ვერ ჩაანაცვლებს, და პატიოსანი პასუხია გამოყოფილი მომხმარებლის ანგარიში შეზღუდული პოლიტიკით. მესამე პირობა: ვის შეუძლია მოწმობის როტაცია ციკლში ადამიანის გარეშე? ავტომატური რეგისტრაცია სერტიფიკატებს იაფს ხდის შესანარჩუნებლად; ერთი ადამიანისთვის ცნობილი პაროლი — არა.

ConstraintMachine certificateDedicated user account with stored secret
Unattended loginPrivate key proof, no promptOnly if the account is exempted from MFA
Resource expects a user identityWorks only when the resource accepts computer accountsMatches the access a person would have
RotationRe-enrollment, often automatedSecret change plus redeploy of every copy
Revocation speedTied to CRL or OCSP refreshDisable the account, immediate

ცხრილი წაიკითხეთ როგორც ხარჯების სია და არა როგორც რეიტინგი. შენახული საიდუმლოს სვეტი იმარჯვებს გაუქმების სისწრაფესა და რესურსებთან თავსებადობაში, რომლებსაც მხოლოდ მომხმარებლის ანგარიშები ესმით; სერტიფიკატის სვეტი იმარჯვებს როტაციასა და იმაში, რომ MFA არ დასუსტდეს სკრიპტის მუშაობისთვის.

ზღვარი ჩასვით პოლიტიკაში, აუთენტიფიკაციის შემდეგ

რომელი იდენტობაც არ უნდა აირჩიოთ, ნებართვის ზღვარი ეკუთვნის იმ პოლიტიკას, რომელიც აუთენტიფიკაციის შემდეგ მოქმედებს. NPS-ში ქსელური პოლიტიკები რიგით ფასდება და პირველი პოლიტიკა, რომელიც ყველა პირობას ემთხვევა, იყენებს თავის პარამეტრებს, ამიტომ ვიწრო პოლიტიკის ზემოთ მოთავსებული ფართო პოლიტიკა განსაზღვრავს შედეგს, მიუხედავად იმისა, თუ რას წარადგენს კლიენტი. Microsoft პირობისა და პარამეტრების მოდელს თავის NPS პოლიტიკების მიმოხილვაში.

მიეცით დავალებას საკუთარი ჯგუფი ან პოლიტიკის პირობა, დაფუძნებული იმაზე, რასაც მანქანის იდენტობა ატარებს: სერტიფიკატის შაბლონი, გამომძახებელი სადგურის იდენტიფიკატორი ან გამოყოფილი პულიდან მისამართი. შემდეგ შეზღუდეთ სესია ატრიბუტებით: Filter-Id იმ როლისთვის, რომელზეც თქვენი კარიბჭე ასახავს მას, მოკლე Session-Timeout, რათა ჩარჩენილი დავალება ხელახლა აუთენტიფიცირდეს დღეების განმავლობაში სესიის შენახვის ნაცვლად, და Framed-IP-Address პულიდან, რომელზეც მეორე მხარეს firewall-ს აყენებთ. აპლიკაციის ავტორიზაცია ცალკე რჩება: გვირაბი მონაცემთა ბაზის სერვერამდე არ არის მის შიგნით ცხრილის წაკითხვის ნებართვა.

შეამოწმეთ უარყოფები, შემდეგ დაგეგმეთ მოცილება

მომუშავე წვდომა არაფერს ამტკიცებს მინიმალური უფლების შესახებ. ნაცვლად ამისა შეამოწმეთ უარყოფები: დაუკავშირდით დავალების იდენტობით და სცადეთ სიის გარეთ მდებარე დანიშნულებამდე მისვლა, გახსენით მეორე პარალელური სესია, თუ კარიბჭემ მხოლოდ ერთი უნდა დაუშვას, და გაიმეორეთ შესვლა მოწმობის გაუქმების შემდეგ.

შემდეგ დაადასტურეთ იგივე სესია ორ ადგილას. კარიბჭის ჟურნალი აჩვენებს აუთენტიფიცირებულ იდენტობას; პოლიტიკის სერვერის ჟურნალი აჩვენებს, რომელი პოლიტიკა დაემთხვა და რომელი ატრიბუტები დააბრუნა. OpenVPN-ში სერვერი იწერს სერტიფიკატის საერთო სახელს, და strongSwan-ის ipsec statusall ბეჭდავს დამყარებულ გვირაბს გამოყენებული იდენტობით. თუ ორი ჟურნალი იდენტობაზე არ თანხმდება, პოლიტიკა ემთხვევა რაღაც სხვას, ვიდრე თქვენ ვარაუდობთ.

მოცილება დიზაინის ნაწილია და არა დალაგების სპრინტის. ჩამოწერეთ ყველაფერი, რაც უნდა წაიშალოს (სერტიფიკატი ან ანგარიში, ჯგუფის წევრობა, ქსელური პოლიტიკა, პულის ჩანაწერი, firewall-ის წესი სამიზნეზე) და შეასრულეთ ერთხელ, სანამ დავალების ხელახლა აწყობა ადვილია.

თუ დღეს იწყებთ, იმუშავეთ ამ თანმიმდევრობით: ჩამოწერეთ რესურსების სია, აირჩიეთ იდენტობა სამი პირობით, ჩასვით ზღვარი პოლიტიკაში და ივარჯიშეთ ერთ უარყოფაზე, სანამ დავალება ამუშავდება.

დაკავშირებული სტატიები