თქვენი VPN ბრძანება პრივილეგიების გარეშე მუშაობს; სერვისი — არა
პაროლის მოთხოვნის არარსებობა არაფერს ამბობს იმაზე, თუ ვინ ცვლის მარშრუტებს. იპოვეთ სერვისი, მისი გამჟღავნებული ინტერფეისი და პოლიტიკა, რომელიც წყვეტს, ვის შეუძლია მოთხოვნა.
VPN ბრძანება თქვენი მომხმარებლის სახელით მუშაობს, პაროლი არ ჩნდება და გვირაბი ადის. ეს მიმდევრობა პრივილეგიების გარეშე ოპერაციად აღიქმება და ჩვეულებრივ ასე არ არის. ქსელურ ცვლილებებს ცალკე სერვისი ასრულებს და საინტერესო კითხვაა, რას გააკეთებს ეს სერვისი იმ გამომძახებლისთვის, რომელიც არ გადაუმოწმებია. პაროლის მოთხოვნების დათვლა ამ საზღვრის შესახებ არაფერს გეუბნებათ.
ინტერფეისი, მექანიზმი და შემოწმება
ინტერფეისი იღებს მოთხოვნებს: დაკავშირება, გაწყვეტა, პროფილის არჩევა. მექანიზმი ფლობს ქსელურ ოპერაციებს: ინტერფეისების შექმნა, მარშრუტების შეცვლა, ფილტრების გამოყენება. ავტორიზაციის შემოწმება წყვეტს, შეიძლება თუ არა ამ გამომძახებელმა ამ მოქმედების მოთხოვნა. ეს სამი შეიძლება განაწილდეს ბინარულ ფაილზე, დამხმარეზე და სისტემურ სერვისზე და მომხმარებელი მხოლოდ პირველს ხედავს.
როლები შეიძლება ცხოვრობდნენ ერთ ბინარულ ფაილში, ორ პროცესში ან კლიენტსა და სისტემურ სერვისში და მომხმარებლის მიერ დანახული ბრძანება იშვიათად ამხელს, რომელში. სისტემური უჯრის ხატულა და სისტემური დემონი შეიძლება ერთ აპლიკაციად გამოიყურებოდეს, სანამ ძალიან განსხვავებული უფლებამოსილებით მუშაობენ. დაყენების დროის პრივილეგია და მოთხოვნის დროის პრივილეგია ასევე სხვადასხვა რამეა. root-ად მომუშავე ინსტალატორს შეუძლია დატოვოს სერვისი, რომელიც შემდგომ მოთხოვნებს უსმენს, პაკეტების მენეჯერის დასრულებიდან დიდი ხნის შემდეგ. იმ სერვისს აქვს უფლებამოსილება და არა თქვენ მიერ აკრეფილ ბრძანებას.
დელეგირება ჩვეულებრივი დიზაინია
პრივილეგირებული ქსელური სამუშაოს სერვისისთვის მინდობა გონივრული არქიტექტურაა. ის ჩვეულებრივ აპლიკაციებს პრივილეგიების გარეშე ტოვებს და ცენტრალიზებს ოპერაციებს, რომლებიც ყურადღებას მოითხოვს. დიზაინი იხდის თავს მხოლოდ მაშინ, როცა სერვისი ასევე ამოწმებს, ვინ ითხოვს და რისთვის. ამ შემოწმების გარეშე ეს მხოლოდ უფრო ფართო კარია.
NetworkManager არის კონკრეტული მაგალითი Linux-ზე. მისი კონფიგურაციის სახელმძღვანელო ხსნის, როგორ ანიჭებს PolicyKit ნებართვას არა root მოთხოვნებს ნაგულისხმევ კონფიგურაციაში. ეს აჩვენებს დელეგირებულ ავტორიზაციას რეალურ პროდუქტში. ეს არ ამტკიცებს, რომ ყველა კომერციული კლიენტი იყენებს NetworkManager-ს და არ აღწერს რომელიმე კონკრეტული მომწოდებლის სოკეტის გზას ან პოლიტიკას.
ნიმუში არის დელეგირება, რომლის უკან პოლიტიკა დგას. მაგალითი ამ ნიმუშის ერთი განხორციელებაა და არა უნივერსალური.
წაიკითხეთ საზღვარი და არა მოთხოვნა
იპოვეთ სერვისი, მისი კონფიგურაციის მფლობელი და ის ლოკალური ინტერფეისი, რომელსაც წინა ნაწილი იყენებს. შემდეგ ჰკითხეთ, რომელი მომხმარებლები შეიძლება ითხოვდნენ რომელ ოპერაციებს. ერთი შენახული პროფილის აწევა და დაწევა არ არის იგივე ნებართვა, რაც ოპერატორის მიერ არასდროს განხილული კონფიგურაციის ჩატვირთვა. სხვაობა მთელი უსაფრთხოების კითხვაა.
დაიწყეთ სერვისების მენეჯერით და კლიენტის საკუთარი ხედვით თავის ნებართვებზე. ქვემოთ მოცემული ბრძანებები აჩვენებენ, მუშაობს თუ არა დემონი, რისი მოთხოვნა შეუძლია გამომძახებელს მისგან და რას ამჟღავნებს დემონი თავის გაშვების საქაღალდეში.
systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager
ჰკითხეთ ასევე, რაზე მოქმედებს ოპერაცია. პირადად მოჩვენებულ მენიუს ელემენტს შეუძლია მთელი მანქანის მარშრუტები და DNS შეცვალოს, რაც ნიშნავს, რომ მას შეუძლია სხვა მომხმარებლების სესიების დარღვევა. ზემოქმედების რადიუსი იმავე განხილვას ეკუთვნის, რასაც ნებართვა, და ჩვეულებრივ სწორედ ის წყვეტს, სჭირდება თუ არა სერვისს უფრო ვიწრო როლი.
შეასწორეთ ნებართვები მხარდაჭერილი გზით
დაცული მართვის სოკეტის ყველასთვის ჩაწერადად გახდომა ან ანგარიშის ფართო ადმინისტრაციულ ჯგუფში დამატება აშორებს ნებართვის შეცდომას და ქმნის უფრო დიდს. შეცდომა ერთადერთი იყო, რაც გეუბნებოდათ, რომ ეს საზღვარი არსებობს. გამოიყენეთ დოკუმენტირებული წევრობის ან ავტორიზაციის პროცესი, მის მიერ მოთხოვნილი სესიის განახლების ჩათვლით. ჯგუფის წევრობა ხშირად მხოლოდ ახალ შესვლის სესიებზე ვრცელდება, ამიტომ ცვლილება შეიძლება ისე გამოიყურებოდეს, თითქოს არაფერს აკეთებს შემდეგ შესვლამდე.
თუ პროდუქტი ოპერაციისთვის უფრო ვიწრო როლს გვთავაზობს, უპირატესობა მიანიჭეთ მას ზოგად მინიჭებასთან შედარებით. დაწერეთ არჩეული როლი და მისი მფლობელი სერვისის სახელის გვერდით.
როგორ გამოიყურება კარგი გაყოფა
ჩვეულებრივი აპლიკაციები პრივილეგიების გარეშე რჩება, სერვისი მხოლოდ იმ კონფიგურაციას ასრულებს, რისთვისაც შეიქმნა და ყოველი გამომძახებელი მოწმდება პოლიტიკის წინააღმდეგ, რომლის მფლობელიც ვინმეა. ეს დასაცავი დიზაინია. ის ასევე აუდიტირებადია, რადგან პოლიტიკას თან ახლავს სახელი. ამაზე დიდი ყველაფერი იმსახურებს წერილობით გამონაკლისს და არა ჩუმ ნებართვის ცვლილებას.
მარცხის რეჟიმია სერვისი, რომელიც ნებისმიერი ლოკალური მომხმარებლის ნებისმიერ მოთხოვნას ასრულებს, რადგან ინტერფეისი მოსახერხებელია. მომხმარებლის მხრიდან ის იდენტურად გამოიყურება და გაცილებით დიდ უფლებამოსილებას ატარებს. გამოსცადეთ ერთი უარყოფილი მოთხოვნა და არა მხოლოდ წარმატებული. უარი, რომელიც პოლიტიკიდან მოდის, არის მტკიცებულება, რომ პოლიტიკა არსებობს.