WireGuard-ის ხელის ჩამორთმევა წარმატებით სრულდება, მაგრამ პასუხი არ ბრუნდება
ბოლოდროინდელი ხელის ჩამორთმევა ამტკიცებს, რომ გასაღებები მუშაობს. თვალი ადევნეთ ერთ შიდა მისამართს და წაიკითხეთ გადაცემის მთვლელები, სანამ გვირაბს, firmware-ს ან გასაღებებს დაადანაშაულებთ.
ბოლოდროინდელი ხელის ჩამორთმევები კარგი ამბავია და გაცილებით ნაკლები მტკიცება, ვიდრე წინადადება, რომლის დაწერაც ადამიანს სურს. მხარეებმა ავთენტიფიცირებული ხელის ჩამორთმევის შეტყობინებები გაცვალეს. აპლიკაციის პაკეტმა მაინც უნდა მიაღწიოს თავის შიდა დანიშნულებას და დაბრუნდეს.
ეს უფსკრული ჯანსაღ მართვის სიბრტყესა და ჩუმ მონაცემთა სიბრტყეს შორის აქ მთელი თემაა. იგივე მთვლელების ორი წაკითხვა გეტყვით, მის რომელ მხარეს ხართ.
ხელის ჩამორთმევა ამტკიცებს გასაღებებს და არა მიწოდებას
WireGuard-ის ხელის ჩამორთმევა გასაღებების შეთანხმებაა ავთენტიფიკაციით. ის წარმატებით სრულდება მაშინვე, როცა მხარეებს შეუძლიათ ერთმანეთამდე მისვლა და აქვთ სწორი გასაღებები. მარშრუტიზაცია, firewall-ის პოლიტიკა და თავად დანიშნულება კითხვები, რომლებსაც ხელის ჩამორთმევა არასოდეს სვამს.
ამრიგად, გვირაბი შეიძლება სრულყოფილად იყოს აწყობილი, მაშინ როცა მის შიგნით ყველა პაკეტი იხსნება. არასწორად მარშრუტიზებული შიდა პაკეტი და სხვა გზით წასული პასუხი კლიენტის მხრიდან ერთნაირად გამოიყურება.
ერთი შიდა მისამართი მთელი გამოცდაა
აირჩიეთ ერთი დანიშნულება და დარჩით მასზე. მოპირდაპირე მხარის საკუთარი გვირაბის მისამართი ყველაზე მარტივი შემთხვევაა, ხოლო მის უკან მდგარი ჰოსტი ზუსტად ერთ ნახტომს ამატებს. მათ შორის მონაცვლეობა ცვლილების აღნიშვნის გარეშე იძლევა შედეგებს, რომელთა შედარებასაც ვერავინ შეძლებს.
შემდეგ შეხედეთ მარშრუტს, რომელსაც კლიენტი ირჩევს. უფრო კონკრეტულ ლოკალურ მარშრუტს შეუძლია პაკეტი სხვაგან გაგზავნოს მანამ, სანამ WireGuard-ს საერთოდ ჰკითხავენ, და ეს ხდება ყოველთვის, როცა სახლის LAN ემთხვევა შორეულ დიაპაზონს.
ip route get 10.30.8.10
ip -4 addr show wg0
ip route show table all | grep -w wg0
მისამართი, რომელიც ფიზიკურ ინტერფეისამდე იხსნება, უკვე უპასუხა კითხვას. გვირაბი არაფერს ხსნის. პაკეტი მასში არასოდეს შესულა.
მთვლელები მტკიცებულებაა და არა განაჩენი
wg show იტყობინება თითოეული მხარისთვის გაგზავნილ და მიღებულ ბაიტებს და ეს ორი რიცხვი დამოუკიდებლად მოძრაობს. აიღეთ წაკითხვა, შეასრულეთ ერთი ნებადართული მოთხოვნა, შემდეგ იმავე წუთში აიღეთ სხვა წაკითხვა.
wg show wg0 transfer
wg show wg0 latest-handshakes
ping -c 4 10.30.8.10
wg show wg0 transfer
გაგზავნის ზრდა მიღების უცვლელი ფონზე უპასუხო მოთხოვნის ხელმოწერაა. ის არ ამბობს, გაფილტრდა თუ არა მოთხოვნა, გამორთული იყო თუ არა დანიშნულება, ან სხვა მარშრუტით წავიდა თუ არა პასუხი. ეს სამი გამოძიებაა ერთი სიმპტომით. გამოყავით ისინი, სანამ რომელიმე კონფიგურაციას შეცვლით.
ბაიტების ფიქსირებული რაოდენობა არც წარმატების ზღვარია. მთვლელების მნიშვნელობები ტრაფიკს მიჰყვება და ერთი რიცხვის ჯანმრთელობის მტკიცებად მიღება თავდაჯერებულ სისულელეს წარმოშობს.
მოპირდაპირე მხარე თავად ამოწმებს დაბრუნების პაკეტს
შორეული მხარე შიდა პაკეტს იღებს მხოლოდ მაშინ, როცა წყარო ხვდება ამ მხარის allowedips-ში. გამომგზავნზე არსებული მარშრუტი საკმარისი არ არის. მიმღებზე წყაროს ჩანაწერის არარსებობა ჩუმად ხსნის დაბრუნების ტრაფიკს.
ჰოსტის firewall-ები ამ შემოწმების უკან დგანან. გადაცემის წესი, რომელიც ნებას რთავს გვირაბის ინტერფეისს, მაგრამ არა შიდა ქვექსელს, იღებს ხელის ჩამორთმევას და უარყოფს პაკეტს. კლიენტის მხრიდან ეს ზუსტად მკვდარი მხარის მსგავსად გამოიყურება. ორი ინტერფეისის მქონე ჰოსტს შეუძლია არასწორი წყაროდანაც უპასუხოს, და მაშინ მხარე იშორებს იმ პასუხს, რომელსაც არასოდეს ელოდა.
შეინარჩუნეთ ექსპერიმენტი პატიოსანი
დისტანციური წვდომის პროფილის ტესტირება იმავე სახლის ქსელიდან, რომელსაც ის უნდა მიაღწიოს, ვარჯიშობს განსხვავებულ გზას, ვიდრე განზრახული. გადადით გარე ქსელზე და ჩაწერეთ მისი ლოკალური პრეფიქსი, რათა ორი გაშვება შედარებადი იყოს.
მცირე წარმატებული გაცვლა არც ყველა ბილიკის პრობლემას გამორიცხავს. დიდი პაკეტები შეიძლება ჩავარდეს იქ, სადაც პატარები გადიან, და ზომაზე ან პროტოკოლზე დამთხვევადი ფილტრი დატვირთვის ქვეშ სხვაგვარად მოიქცევა.
შეინარჩუნეთ ხელის ჩამორთმევა როგორც ცნობილი მუშა ეტაპი და გააგრძელეთ იქიდან. შემდეგი სასარგებლო მტკიცებულებაა, სად ჩერდება ერთი შიდა მოთხოვნა და არა გასაღებების ახალი ნაკრები და ვარაუდების კიდევ ერთი წრე.