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

დაადასტურეთ, რას მოითხოვს კარიბჭე შესვლისას

სანამ ბრძანებას ჩაწერთ, ჩამოწერეთ იმ სერტიფიკატების გზა, რომელსაც განლაგება ავალდებულებს. მხოლოდ სერტიფიკატი, პაროლი პლუს ტოკენი და ბრაუზერის მოვლა SAML პროვაიდერის გავლით განსხვავებულად იქცევიან, და ფონური რეჟიმი ვერცერთს ვერ გამოტოვებს. ეს პარამეტრი ცვლის იმას, რაც გაშვების შემდეგ ხდება, არასოდეს იმას, რაც მის დროს.

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

გაუშვით პირველი სესია წინა პლანზე და წაიკითხეთ გამონატანი

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

შემდეგ გაიმეორეთ იგივე გამოძახება ფონური რეჟიმით და PID ფაილის დამატებით, მაგალითად openconnect --background --pid-file /run/openconnect.pid vpn.example.net, და ის პროტოკოლი და ავთენტიფიკაციის პარამეტრები, რომლებსაც თქვენი კარიბჭე მოითხოვს, იმავე ხაზზე დატოვეთ. OpenConnect-ის სახელმძღვანელო ამ პარამეტრს აღწერს როგორც ფონში გაგრძელებას გაშვების დასრულების შემდეგ, და სწორედ ამიტომ ინტერაქტიული ეტაპი პირველი უნდა დასრულდეს.

გახადეთ მოქმედი პროცესი საპოვნელი და შესაჩერებელი

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

გაუგზავნეთ სიგნალი დადასტურებულ PID-ს, შემდეგ დაადასტურეთ, რომ გვირაბის ინტერფეისი ნამდვილად გაქრა და არ დაეყრდნოთ გასვლის სტატუსს. თუ კლიენტს ინტერფეისის კონფიგურაციისთვის გაზრდილი უფლებები სჭირდება, სიგნალი იმ ანგარიშიდან უნდა მოვიდეს, რომელსაც მისი გაგზავნის უფლება აქვს.

ნუ დააწყობთ ფონურ რეჟიმს ზედამხედველის ქვეშ

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

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

სესიის cookie-ს მონაცემებად მოექეცით

OpenConnect აღრიცხავს ცალკე ავთენტიფიკაციის ეტაპს --authenticate-ის მეშვეობით, და მიღებული მასალა შეიძლება დაბრუნდეს --cookie-on-stdin-ით. ეს წყვილი ინტეგრაციის სამუშაოსთვისაა, და რასაც ის აწარმოებს, ისეთივე მგრძნობიარეა, როგორც მისი შემქმნელი პაროლი.

შეინახეთ მნიშვნელობა shell-ის ისტორიის, ჟურნალების და თქვენ მიერ გახსნილი ნებისმიერი ბილეთის მიღმა. გადაცემის სკრიპტმა ასევე უნდა შეინარჩუნოს cookie-სთან ერთად კლიენტის მიერ მიღებული დადასტურებული ბოლო წერტილის ინფორმაცია; თუ დაკარგავთ, მოგვიანებით გაშვებამ შეიძლება დაუკავშირდეს ჰოსტს, რომელიც არასოდეს დაგიმოწმებიათ, რაც უფრო უარესია, ვიდრე უბრალოდ წარუმატებელი კავშირი.

გაიარეთ სია ტერმინალის დახურვამდე

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

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

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