ZeroTier ლოკალურ ქსელამდე: UFW მარშრუტის წესები, და არა პორტის ნებართვა
პორტის დაშვება კარიბჭეზე არ არის იგივე, რაც მის უკან მდგარ ჰოსტზე გადაცემა. დააყენეთ მართული მარშრუტი, ჩართეთ ტრანზიტი და აირჩიეთ დაბრუნების გზა.
ოფისის ლოკალურ ქსელში პრინტერთან მისვლა ZeroTier-ის წევრის მეშვეობით ერთ წესს ჰგავს, სინამდვილეში კი ეს სამი გადაწყვეტილებაა სამ სხვადასხვა ადგილას. გადაფარვამ უნდა იცოდეს, სად არის ლოკალური ქსელი, Linux-ის ჰოსტი მზად უნდა იყოს პაკეტების გადასაცემად, ხოლო ლოკალურმა ქსელმა უნდა იცოდეს, როგორ გააბრუნოს პასუხი. კარიბჭეზე პორტის გამხსნელი შემომავალი წესი არც ერთ მათგანს არ ეხება. ეს არასწორი ხელსაწყოა სწორ ჰოსტზე.
სამი საქმე, სამი მფლობელი
მართული მარშრუტი ZeroTier-ის ქსელის კონფიგურაციას ეკუთვნის. ის წევრებს აცნობს, რომ პრეფიქსი ხელმისაწვდომია კონკრეტული წევრის მისამართით.
გადაცემა Linux-ის ბირთვს და მისი ქსელური დაცვის პოლიტიკის მფლობელს ეკუთვნის. ის წყვეტს, გადაფარვაზე მოსული პაკეტი კვლავ გავა თუ არა ფიზიკური ინტერფეისიდან. ჰოსტი, რომელიც გადაცემას არ აკეთებს, პაკეტს მიღების შემდეგ ჩუმად გადააგდებს. გამომგზავნი ხედავს დროის ამოწურვას და სერვისის ჟურნალში არაფერი ჩნდება.
დაბრუნების გზა ლოკალურ ქსელს ეკუთვნის. მის ჰოსტებმა და მარშრუტიზატორმა უნდა იცოდეს, რომ გადაფარვის პრეფიქსი ხელმისაწვდომია თქვენი კარიბჭის ლოკალური ქსელის მისამართით, თორემ რაღაცამ უნდა თარგმნას ტრაფიკი, რომ ეს კითხვა საერთოდ არ წარმოიშვას.
თითოეული მათგანი შეიძლება სწორი იყოს, სანამ სხვები ვერ ახერხებენ, და სწორედ ამიტომ კარიბჭის მხოლოდ პინგვის ტესტი მის უკან მდგარი სერვისის შესახებ არაფერს ამტკიცებს.
მიმართეთ მართული მარშრუტი წევრისკენ
დაამატეთ მარშრუტი სასურველი ლოკალური პრეფიქსისთვის კარიბჭის გადაფარვის მისამართით და არა მისი ლოკალური მისამართით. გადაფარვის მისამართია ის, რომელზეც სხვა წევრებს შეუძლიათ მისვლა; ლოკალურ მისამართს მნიშვნელობა მხოლოდ კაბელზე აქვს.
წევრებმა უნდა მიიღონ მართული მარშრუტები, რომ ეს გადაწყვეტა იმუშაოს, და მათ საკუთარ ლოკალურ ქსელებში არ უნდა იყოს უკვე გამოყენებული ის პრეფიქსი, რომელსაც აცხადებთ. სახლში 192.168.60.0/24-ზე მდგარი დისტანციური ლეპტოპიც ვერ შეძლებს 192.168.60.0/24-ის გადაფარვის გავლით მარშრუტიზაციას.
შეინახეთ გამოცხადებული პრეფიქსი იმდენად ვიწრო, რამდენსაც ამოცანა იძლევა. უფრო დიდი აგრეგატის გამოცხადებამ უპირატესობაზე გავლენისთვის შეიძლება თქვენი არმფლობელი მისამართების სივრცეც მოითხოვოს, და წარმოქმნილი კონფლიქტი იმ მოწყობილობებზე ჩნდება, რომლებიც ორივე ქსელს უკავშირდება. ამან შეიძლება წევრი აიძულოს, უპირატესობა მისცეს გზას, რომელიც არსად მიდის. შეინახეთ მარშრუტი პატიოსნად და დანარჩენი პოლიტიკამ გააკეთოს.
ჩაწერეთ პრეფიქსი და წევრის მისამართი იმავე ჩანაწერში, სადაც ქსელური დაცვის წესებია, რადგან ყველაზე გავრცელებული ხარვეზი არასწორ წევრზე მიმართული მარშრუტია.
ჩართეთ ტრანზიტი ბირთვში
წაიკითხეთ მოქმედი გადაცემის მნიშვნელობა, სანამ რამეს შეცვლით, შემდეგ კი გახადეთ პარამეტრი მუდმივი იმ მექანიზმით, რომელსაც თქვენი სისტემა უკვე იყენებს, და არა ერთჯერადი ბრძანებით, რომელიც გადატვირთვისას ქრება.
თუ პოლიტიკა UFW-ს ეკუთვნის, მისი მარშრუტის წესები გადაცემას გამოხატავს წყაროს, დანიშნულებისა და ინტერფეისის წყვილისთვის. ესენი განცალკევებულია იმ შემომავალი წესებისგან, რომლებიც სერვისს თავად კარიბჭეზე ხსნიან:
sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose
ინტერფეისის სახელი ამ ჰოსტზე არსებული ნამდვილი გადაფარვის მოწყობილობაა, რომლის წაკითხვაც ip link-ით შეიძლება; ის ყველა ინსტალაციაში ფიქსირებული სტრიქონი არ არის. თუ ჰოსტი ნაგულისხმევად გადასცემს და UFW გზაზე არ არის, მარშრუტის წესი უგულებელყოფილი იქნება და მთავარი ბირთვის პარამეტრებია.
აირჩიეთ, როგორ ბრუნდება პასუხები
წყაროს შენარჩუნებით ლოკალური ქსელის სერვისი ხედავს ნამდვილ გადაფარვის მისამართს და პასუხობს მას. ეს მოითხოვს მარშრუტს ლოკალური ქსელის ჰოსტზე ან მის მარშრუტიზატორზე, რომელიც გადაფარვის პრეფიქსს თქვენს კარიბჭეს მიმართავს, და ეს Linux-ის ყუთის გარეთ ცვლილებაა.
როცა ამ მარშრუტის დამატება შეუძლებელია, შეზღუდული წყაროს თარგმნა მოთხოვნას ისე აჩენს, თითქოს ის ლოკალურ ქსელში მდგარი კარიბჭიდან მოვიდა. მაშინ პასუხები ლოკალურად ბრუნდება და ლოკალური ქსელის მარშრუტიზაციის შეცვლა აღარ სჭირდება, მაგრამ სერვისის ჟურნალებში თავდაპირველი წყარო იკარგება.
შეზღუდეთ თარგმნა გადაფარვის წყაროთი და კონკრეტული ლოკალური დანიშნულებით. ყველაფრის თარგმნა, რაც ლოკალური ინტერფეისიდან გადის, ფართო ვერსიაა, რომელიც მოგვიანებით აოცებს ყველას, ვინც წესებს კითხულობს, და ასევე მალავს ტრაფიკს, რომელიც უნდა დაბლოკილიყო.
არც ერთი ვარიანტი არ იძლევა არამოთხოვნილ წვდომას ლოკალური ქსელიდან უკან თვითნებურ გადაფარვის წევრებზე. თუ ეს სასურველია, ეს ცალკე წესია თავისი განხილვით.
ტესტეთ ნამდვილი წევრიდან
დაუკავშირდით სხვა წევრიდან და არა კარიბჭიდან, და მოითხოვეთ ერთი დაშვებული სერვისი. შემდეგ სცადეთ სერვისი, რომელიც დახურული უნდა დარჩეს, და გაიმეორეთ ორივე ტესტი ხელახალი დაკავშირებისა და კარიბჭის გადატვირთვის შემდეგ.
წევრი, რომელიც იუწყებს ONLINE-ს, ან წარმატებული პინგი კარიბჭის გადაფარვის მისამართზე, არ ამოწმებს მარშრუტს, გადაცემის წესს ან დაბრუნების გზას:
zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered
მეორე ბრძანება გვიჩვენებს, რომელი ინტერფეისით წავა პაკეტი ლოკალური ქსელის ჰოსტთან, ხოლო მესამე იმას, არსებობს თუ არა მარშრუტის წესი იმ ფორმით, რომელიც განიზრახეთ. თუ ორივე სწორად გამოიყურება და სერვისი მაინც დროში ამოიწურება, დარჩენილი ეჭვმიტანილი დაბრუნების გზაა.