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

მიჰყევით ერთ პაკეტს სერვერის გავლით

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

Forwarding pathWho decidesWhat the host firewall sees
Kernel routing between clientsHost routing table and forward rulesEvery inner packet, with interface names
Peer forwarding inside the server processThe VPN daemon's own peer tableOnly the outer encrypted transport

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

მთვლელის გამოცდა, რომელიც წყვეტს რომელი გზა შესრულდა

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

sudo nft list ruleset
sudo nft add rule inet filter forward iifname "tun0" oifname "tun0" counter accept
sudo nft list chain inet filter forward

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

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

კომუტატორი წვდომის სია არ არის

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

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

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

გადამისამართების წერტილის არჩევა

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

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

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

რა უნდა შემოწმდეს წესების შეცვლამდე

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

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

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