ქვედა ქსელის ქვექსელი დესკტოპ VPN-ის წინააღმდეგ: გამორიცხეთ ტრანზიტი, არა აპლიკაციები
აპლიკაციის მიხედვით გვერდის ავლა მხოლოდ ლოკალურ გამოსავალს აკლასიფიცირებს. სამუშაო სადგურის უკან მდებარე მოწყობილობებს სჭირდებათ საკუთარი შემავალი, გადამისამართების და დაბრუნების გზის პოლიტიკა.
ერთი მანქანა, ორი სამუშაო, ერთი firewall: Wi-Fi აღმავალი არხი, მის უკან პატარა Ethernet ქვექსელი და დესკტოპ VPN კლიენტი, რომელიც ვარაუდობს, რომ ყველაფერი, რაც მანქანიდან გადის, ლოკალურია. ლოკალურად გაშვებული აპლიკაციები გამოდიან ლოკალური გამოსავლის გზით. სამუშაო სადგურის უკან მდებარე მოწყობილობები Ethernet პორტზე მოდიან და სჭირდებათ გადამისამართების გადაწყვეტილება. პირველი გზისთვის დაწერილი გამონაკლისი არასდროს ხედავს მეორეს, და სწორედ ამიტომ ბრაუზერი გვერდს უვლის გვირაბს, მოწყობილობები კი არა.
ორი პაკეტის გზა, ერთი პოლიტიკა
| Origin | Path | Decision owner |
|---|---|---|
| Application on the workstation | OUTPUT then egress | The VPN app's routing policy |
| Device behind the workstation | PREROUTING then FORWARD | The workstation's own forwarding policy |
პირველი სტრიქონი არის ის, რასაც split-tunneling-ის სახელმძღვანელოების უმეტესობა აღწერს. მეორე არის როუტერის კონფიგურაცია, რომელიც შემთხვევით იმავე მანქანაზე ცხოვრობს. მათი ერთ მენტალურ მოდელში შერწყმა შეცდომაა; ისინი ბირთვს იზიარებენ, პოლიტიკას არა. დახაზეთ ორივე გზა ნებისმიერი წესის რედაქტირებამდე, და დანარჩენი დიზაინი გამომდინარეობს იქიდან, რომელი გზა აკლია.
ცხრილი ასევე ხსნის, რატომ შეიძლება ერთი მანქანა ერთ ტესტს გაიაროს და მეორეზე ჩავარდეს. ბრაუზერი სამუშაო სადგურზე ადასტურებს ლოკალურ გზას; Ethernet პორტში ჩართული ლეპტოპი ადასტურებს გადამისამართების გზას. დაადასტურეთ ცვლილება ორივეთი, თორემ მეორე გამოუცდელი დარჩება, რამდენჯერაც არ უნდა განახლდეს ბრაუზერი.
რას აკლასიფიცირებს სინამდვილეში აპლიკაციის გამონაკლისი
აპლიკაციის მიხედვით გამონაკლისი ჩვეულებრივ მუშაობს ასე: პროცესის ან მომხმარებლის პაკეტებს ნიშნავს, შემდეგ ნიშნიან ტრაფიკს გვირაბის გარეთ მარშრუტიზაციას უკეთებს. ეს ლოკალური გამოსავლის კონსტრუქციაა. ქვედა მოწყობილობის პაკეტს ლოკალური პროცესი არ აქვს, ამიტომ ის არასდროს ემთხვევა სელექტორს, როგორი სელექტორიც არ უნდა იყოს.
როგორი სელექტორიც არ უნდა იყოს, ორი სია ერთი და იგივე სია არ არის, და ეს არის მთელი არსი. Mullvad-ის Linux სახელმძღვანელო აღწერს ნიშნებს, რომლებსაც მისი firewall და მარშრუტიზაციის პოლიტიკა მოიხმარს, და მისი მაგალითები ლოკალურ გამოსავალს მიმართავს; ისინი ქვედა როუტერის მხარდაჭერილი აღწერა არ არის. მათი კოპირება იძლევა მანქანას, რომელიც ფიქრობს, რომ გამონაკლისი აქვს, სანამ ყველაფერს გვირაბში აგზავნის.
დაწერეთ ტრანზიტის ხელშეკრულება
ერთად დაასახელეთ ქვედა წყაროს პრეფიქსი და შემავალი ინტერფეისი, შემდეგ შეზღუდეთ ეს პრეფიქსი შესავალში. შეზღუდვის გარეშე, ნებისმიერ მოწყობილობას, რომელიც პორტს აღწევს, შეუძლია გამორიცხული მისამართი მოითხოვოს და გვერდის ავლით გავიდეს. მოეკიდეთ როგორც ორ კითხვას: შეუძლიათ ამ ჰოსტებს საერთოდ ამ აღმავალი არხის გამოყენება, და შეუძლიათ მიაღწიონ სამუშაო სადგურს ან გვირაბის კერძო დიაპაზონებს? ეს დამატებითი ნებართვებია, არა არხის არჩევის გვერდითი ეფექტი.
დაუშვით გადამისამართება, შემდეგ გაფილტრეთ. Linux-ის კარიბჭეს სჭირდება ჩართული გადამისამართება, წესები, რომლებიც დაგეგმილ ტრაფიკს ორივე მიმართულებით უშვებს, და ან აღმავალი დაბრუნების მარშრუტი, ან განზრახ შეზღუდული წყაროს ტრანსლაცია. მხოლოდ NAT არ ირჩევს აღმავალ არხს და არ აძლევს გავლას ფილტრში; ის მხოლოდ მისამართს გადაწერს ამ გადაწყვეტილებების შემდეგ.
ტრანზიტის კლასიფიკაცია უნდა მოხდეს გადამისამართების მარშრუტის გადაწყვეტილებამდე, რაც ნიშნავს prerouting ეტაპს და არა output-ს. გადაწყვეტილების შემდეგ ჩასმული წესი ჯერ კიდევ შეუძლია პაკეტის შეცვლა, მაგრამ ვერ შეცვლის, საით უკვე გაიგზავნა.
ნიშნები ეკუთვნის აპლიკაციას, რომელიც ფლობს მათ
ნიშნის მნიშვნელობები, ცხრილის ნომრები და ჯაჭვის პრიორიტეტები VPN აპლიკაციის პოლიტიკის ნაწილია, არა მარადიული მუდმივები. ქსელი, რომელიც დამოკიდებულია წესის ჩასმაზე ცხრილში, რომელსაც სხვა პროგრამა თავიდან ქმნის, გატყდება შემდეგ განახლებაზე, ჩვეულებრივ ხელახალი დაკავშირების დროს და არა მოხერხებულ დროს.
accept განაჩენით მეორე საბაზისო ჯაჭვის დამატება სულაც არ აჭარბებს მოგვიანებით ჯაჭვის drop-ს. საბაზისო ჯაჭვებს აქვთ კაუჭები და პრიორიტეტები და რიგითობაში პირველი განაჩენი იმარჯვებს; accept ერთ ჯაჭვში არ აუქმებს drop-ს, რომელსაც სხვა ჯაჭვი ადრე აღწევს. შეხედეთ სრულ წესების კრებულს და მარშრუტიზაციის პოლიტიკის თანმიმდევრობას, და არა ერთ მრიცხველს, რომელიც გაიზარდა. მრიცხველი ადასტურებს, რომ წესი გაეშვა, არასდროს იმას, რომ მისი განაჩენი იქნა გამოყენებული.
ინტეგრაცია, ან ქვექსელის გადატანა
ორი დიზაინი განსხვავდება იმით, თუ ვინ ფლობს გვერდის ავლას. ინტეგრირებული დიზაინი ინახავს ერთ მანქანას და ერთ პოლიტიკას, იმ ფასად, რომ დამოკიდებულია VPN აპლიკაციის ცხრილების სიცოცხლის ციკლზე და ნიშნების კრებულზე, რომელიც მისმა დოკუმენტაციამ შეიძლება შეცვალოს. ქვედა ქსელისთვის გამოყოფილი როუტერი მთლიანად აშორებს ამ დამოკიდებულებას: ქვექსელს აქვს საკუთარი აღმავალი არხი და სამუშაო სადგური რჩება კლიენტად გადამისამართების როლის გარეშე.
აირჩიეთ მეორე, როცა ქვედა ქსელმა VPN განახლებების განმავლობაში უნდა განაგრძოს მუშაობა, ან როცა ვერავინ ტესტავს ინტეგრირებულ პოლიტიკას ყოველი გამოშვების შემდეგ. აირჩიეთ პირველი მხოლოდ მაშინ, როცა ინტეგრაცია დოკუმენტირებულია და ვიღაც არის პასუხისმგებელი.
შეამოწმეთ საზღვარი ოთხ მდგომარეობაში: დაკავშირებული, ხელახლა დაკავშირება, განზრახ დაბლოკილი და გაჩერებული. თითოეულში შეამოწმეთ სახელების გარჩევა და ორივე მისამართის ოჯახი, რადგან DNS-ის გაჟონვადი გვერდის ავლა არ არის ის გამონაკლისი, რომელიც თქვენ დააპროექტეთ. ტესტმა ზუსტი საზღვარი უნდა დაამტკიცოს, და არა მხოლოდ ის, რომ ერთი გვერდი ჩაიტვირთა.