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

ორი ამოცანა, გამიჯნული

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

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

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

მიეცით თითოეულ თანატოლს მხოლოდ საკუთარი მისამართი

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

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

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

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

iifname "wg0" oifname "wg0" ip saddr 10.66.10.0/24 ip daddr 10.66.10.0/24 accept
iifname "wg0" oifname "wg0" ip saddr 10.66.20.0/24 ip daddr 10.66.20.0/24 accept
iifname "wg0" oifname "wg0" drop

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

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

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

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

გამოსცადეთ მატრიცა და არა ფაილების რაოდენობა

ააგეთ მოსალოდნელი შედეგების პატარა მატრიცა და შეამოწმეთ ყოველი უჯრა. A ჯგუფიდან A ჯგუფში უნდა იმუშაოს, B ჯგუფიდან B ჯგუფში უნდა იმუშაოს, ხოლო A-დან B-ში არ უნდა, ორივე მიმართულებით და ორივე მისამართების ოჯახისთვის, თუ მათ მხარს უჭერთ.

nft list ruleset
wg show wg0 allowed-ips
ping -c 2 10.66.10.5
conntrack -L -s 10.66.20.7 2>/dev/null | head

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

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

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