OpenVPN-ის შესვლების შეზღუდვა ერთ ჯგუფზე PAM პოლიტიკით
გამოყოფილ PAM სერვისს შეუძლია მხოლოდ VPN ჯგუფის წევრები დაუშვას, სისტემური შესვლის წესებზე ხელის შეუხებლად. მიუთითეთ auth-pam დამატება მასზე და შეამოწმეთ შედეგები.
დატოვეთ ყოველი ანგარიში ჩვეულებრივად შესვლის შესაძლებლობით, მაგრამ VPN-ის გამოყენება მხოლოდ ერთ ჯგუფს დაუშვით. PAM-ს შეუძლია გამოხატოს ეს განსხვავება მეორე პაროლის საცავის გარეშე, და OpenVPN დამატება შეიძლება მიმართული იყოს სერვისზე, რომელიც მხოლოდ თქვენ მიერ განზრახულ შემოწმებებს შეიცავს. ხრიკი იმაშია, რომ ეს სერვისი ააგოთ სისტემური სტეკის შემთხვევით მემკვიდრეობით მიღების გარეშე.
აქედან გზამკვლევი იწყება დამატების სერვისის სახელიდან, აშენებს პოლიტიკას და შემდეგ ამოწმებს სამ მნიშვნელოვან შედეგს: წევრი, ვალიდური პაროლის მქონე გარეშე ადამიანი და ცუდი სერტიფიკატი.
რატომ ცალკე PAM სერვისი
auth-pam დამატება არგუმენტად იღებს სერვისის სახელს. ეს სახელი ირჩევს ფაილს /etc/pam.d-ის ქვეშ და სწორედ ამ ფაილის სტეკი მუშაობს VPN-ის შესვლის დროს. თუ გადასცემთ იმავე სახელს, რომელსაც სისტემური შესვლა იყენებს, მიიღებთ მემკვიდრეობით ამ სტეკის ყოველ გადაწყვეტილებას, მათ შორის მოგვიანებით დაუკავშირებელი მიზეზებით დამატებულებს.
ამის ნაცვლად შექმენით გამოყოფილი სერვისი. დაიწყეთ მომუშავე სტეკით, რომელიც უკვე ამოწმებს განზრახული backend-ის მიმართ, მაგალითად ლოკალური პაროლის ფაილი, SSSD ან დირექტორიის სერვისი, შემდეგ დაამატეთ ვარგისიანობის წესი. ორი სტრიქონის ცარიელ ფაილში კოპირება გავრცელებული შეცდომაა: პაროლის ვადის გასვლა, ანგარიშის დაბლოკვა და სხვა შემოწმებები შეიძლება იყოს იმ სტეკში, რომელიც არ დააკოპირეთ.
სერვისის გამოყოფა ასევე ზღუდავს ზიანის მასშტაბს. მხოლოდ VPN-ის წესს საერთო სტეკში შეუძლია ყველასთვის SSH ან კონსოლის წვდომის უარყოფა, რაც წვდომის ცვლილებას გათიშვად აქცევს.
ჯგუფის წესის დაწერა
ვარგისიანობის შემოწმება ეკუთვნის ანგარიშის ფაზას, სერტიფიკატის დადასტურების შემდეგ. წესი, როგორიცაა account required pam_succeed_if.so user ingroup vpnusers, დამუშავების გაგრძელების უფლებას იძლევა მხოლოდ მაშინ, როცა ავთენტიფიცირებული მომხმარებელი ამ ჯგუფის წევრია.
ეს სტრიქონი ფრაგმენტია, არა სრული სერვისი. ჩასვით ის იქ, სადაც ყოველი მიღებული გზა აღწევს და შეამოწმეთ მის გარშემო არსებული კონტროლის დროშები. sufficient ან ნახტომის კონტროლი სტეკში უფრო ადრე შეიძლება დაასრულოს დამუშავება თქვენი წესის მუშაობამდე, რაც შეზღუდვას წინადადებად აქცევს.
ნუ დაამატებთ use_uid-ს ჩვევის გამო. მის გარეშე მოდული აფასებს ავთენტიფიცირებად მომხმარებელს; მასთან ერთად მოდული აფასებს იმ ანგარიშს, რომლის ქვეშაც OpenVPN პროცესი მუშაობს, რაც ჩვეულებრივ root ან სერვისის ანგარიშია და ამიტომ არ არის შემომსვლელი ადამიანი.
ჯგუფის წევრობა მოდის სისტემის იდენტობის გადაწყვეტიდან, არა თქვენთვის ნაცნობი სახელიდან. დირექტორიის მომხმარებლებისთვის დაადასტურეთ, რომ იგივე backend პასუხობს ამ მომხმარებლის ჯგუფურ მოთხოვნებს, რადგან ნაცნობი სახელის ლოკალური ჯგუფი სხვა ობიექტია, ვიდრე იმავე სახელის დირექტორიის ჯგუფი.
რიგისა და იდენტობის ხაფანგები
განათავსეთ ჯგუფის წესი ავთენტიფიკაციის სტეკის შემდეგ და ყოველი იმ შემოწმების შემდეგ, რომელიც ჯერ კიდევ უნდა მოქმედებდეს, მაგრამ თქვენ მიერ შენახული ანგარიშის შემოწმებებამდე ან მათ გვერდით. PAM მოდულებს აფასებს ფაილის რიგით, და თითოეული სტრიქონის კონტროლის მნიშვნელობა წყვეტს, საბოლოოა თუ არა წარუმატებლობა.
ფრთხილად იყავით გაორმაგებულ სტეკებთან. გავრცელებული ნიმუშია include, რომელიც უკვე შეიცავს ანგარიშის წესს, რასაც მოჰყვება თქვენი ჯგუფის წესი, რაც ორ გადაწყვეტილებას იძლევა იქ, სადაც ერთს ელოდით. წაიკითხეთ ჩასმული ფაილი და არა მხოლოდ რედაქტირებული. ეფექტური რიგის სწრაფად ნახვის გზაა ფაილის ზემოდან ქვემოთ კითხვა და თითოეული კონტროლის მნიშვნელობის ჩაწერა.
უცვლელად დატოვეთ დაშვების სხვა მოთხოვნები. წარმატებული პაროლი არ ცვლის სერტიფიკატის შემოწმებებს, მეორე ფაქტორს ან კავშირის შემდგომ ავტორიზაციას, და ეს პოლიტიკა არც ერთი მათგანის შემცვლელი არ არის. ის მხოლოდ წყვეტს, არის თუ არა ანგარიში VPN წვდომისთვის განსახილველად ვარგისი.
წევრების, გარეშეებისა და არასწორი პაროლების შემოწმება
შეამოწმეთ სამი შემთხვევა, სანამ პოლიტიკას დასრულებულად ჩათვლით. წევრი წარმატებით უკავშირდება. ჯგუფის გარეთ ვალიდური ანგარიში ავთენტიფიცირებს პაროლს, მაგრამ VPN წვდომა ეუარყოფება. არასწორი პაროლი ნებისმიერი ანგარიშისთვის უარყოფილია ავთენტიფიკაციის ეტაპზე და არა ჯგუფის წესით.
ერთად დააკვირდით კლიენტისთვის ხილულ შეცდომას და სერვერის ლოგს, რადგან ორივე მარცხი შეიძლება მსგავსად გამოიყურებოდეს დამაკავშირებელი ადამიანისთვის. განსხვავება მნიშვნელოვანია მხარდაჭერისთვის: სწორი პაროლის მქონე გარეშე ადამიანს ჯგუფის შეცვლა სჭირდება, ხოლო არასწორი პაროლი სერტიფიკატის განულებას მოითხოვს.
PAM-ის რედაქტირებისას ღიად დატოვეთ მეორე სესია და ცვლილების შემდეგ შეამოწმეთ ჩვეულებრივი SSH შესვლაც. გამოყოფილი სერვისის აზრი ისაა, რომ სისტემური შესვლა უნდა დარჩეს ხელშეუხებელი, და ამის გასაგებად ერთადერთი გზა მისი გამოცდაა.
თუ რამე გატყდა, აღადგინეთ წინა სერვისის ფაილი ასლიდან. სასურველი წესი მარტივად ფორმულირდება: წევრობა ანგარიშს VPN წვდომის ვარგისს ხდის, და ყოველი სხვა სავალდებულო შემოწმება კვლავ მოქმედებს.