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

სახელის დამთხვევა ინტერფეისზე დიდხანს ცოცხლობს

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

სახელი დამთხვევის გასაღებია და არა მტკიცებულება იმისა, თუ ვინ არის მეორე მხარეს. პარტნიორის ავთენტიფიკაცია VPN-ის საქმედ რჩება.

წესების დამატებამდე წაიკითხეთ ჯაჭვი

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

nft list ruleset
nft -c -f /etc/nftables.conf

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

მარშრუტებს, თარგმანსა და დინებებს სხვა მფლობელები ჰყავთ

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

conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0

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

მიიღეთ ცივი გაშვება, დანაკარგი და აღდგენა

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

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

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