რას აკეთებს TUN და რა უნდა გააკეთოს VPN პროტოკოლმა ჯერ კიდევ
TUN გადააადგილებს IP პაკეტებს ბირთვსა და პროგრამას შორის. ტრანსპორტი, აუთენტიფიკაცია და დაშიფვრა ეკუთვნის იმ პროტოკოლს, რომელზეც ეს პროგრამა საუბრობს.
tun0-ისა და VPN პროტოკოლის ერთ რამედ მიჩნევა ხალხს არასწორ ჟურნალთან მიჰყავს. ინტერფეისი ლოკალური საზღვარია, სადაც მომხმარებლის სივრცეში მყოფი პროგრამა ბირთვთან IP პაკეტებს ცვლის. პროტოკოლი არის ის, რასაც ეს პროგრამა პაკეტებით აკეთებს მათი მიღების შემდეგ: ტრანსპორტი, აუთენტიფიკაცია, დაშიფვრა და პარტნიორი. მოწყობილობის შექმნა არცერთ მათგანს არ ირჩევს.
ორი კომპონენტი, ერთი პაკეტის გზა
ბირთვი IP პაკეტს მოწყობილობაში წერს, პროგრამა კი მას ფაილის დესკრიპტორიდან კითხულობს. საპირისპირო მიმართულებით პროგრამა პაკეტს უკან წერს და ბირთვი მას ისე მარშრუტიზებს, თითქოს ის რეალურ ინტერფეისზე მოვიდა. TUN IP-ს ატარებს, TAP კი Ethernet კადრებს. ამ საზღვარზე პაკეტის წაკითხვა კადრულ ჩარჩოს აჩვენებს და მოწყობილობა სწორედ ამისთვისაა.
ამ საზღვრის მიღმა ყველაფერი პროგრამის საქმეა. ორ პროგრამას შეუძლია ერთი და იგივე ინტერფეისის ცნება გამოიყენოს და პაკეტებით სრულიად სხვადასხვა რამ გააკეთოს. თავად მოწყობილობას არ აქვს აზრი იმაზე, რა მოხდება შემდეგ. ფაილის დესკრიპტორი ერთადერთი სახელურია, რომელიც პროგრამას ბირთვის მხრიდან აქვს.
შექმენით მოწყობილობა, შემდეგ დააკვირდით საზღვარს
საზღვრის გამოცდისას მოწყობილობა განზრახ შექმენით. მუდმივი მოწყობილობა იმ პროცესს გადაურჩება, რომელმაც ის შექმნა, რაც სასარგებლოა ექსპერიმენტებისთვის და შემდეგ ხშირი დაბნეულობის წყაროა. VPN-ის დადანაშაულებამდე შეამოწმეთ დროშები და მფლობელი.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9ბმულის დეტალები აჩვენებს მოწყობილობის ტიპსა და მიმაგრებულ მფლობელს. თუ არც ერთი პროცესი არ უჭირავს ღიად, მასში ჩაწერილი პაკეტები არსად მიდის. მოწყობილობა მიმაგრებული პროცესის გარეშე შეიძლება ბმულების სიაში ჯანმრთელად გამოიყურებოდეს, თუმცა არაფერს გაატარებს.
რასაც ინტერფეისის სახელი ვერ დაპირდება
ინტერფეისის სახელი არაფერს ამბობს დაშიფვრაზე ან აუთენტიფიკაციაზე. პროგრამას შეუძლია პაკეტები TLS-ში, საკუთარ პროტოკოლში, IPsec-ში ან საერთოდ არსად გაახვიოს. TAP-ის ნაცვლად TUN-ის არჩევა საზღვარზე კადრულ ჩარჩოს ცვლის და არა უსაფრთხოების დიზაინს. ჩარჩოს არჩევანი რეალურია და ის უსაფრთხოების კითხვაზე გაცილებით მცირეა.
გამოვლენა იმავე გზით მუშაობს: დამკვირვებელი მავთულზე გარე პროტოკოლს ხედავს და არა იარლიყს, რომელიც იტყვის, რომელი ლოკალური მოწყობილობა წარმოქმნა ის. სხვა რამედ მოჩვენებული გვირაბი ამას გარე პროტოკოლის გამო აკეთებს და არა ინტერფეისის სახელის. დამკვირვებელი ვერ ხედავს, რომელმა ლოკალურმა მოწყობილობამ წარმოქმნა პაკეტი, მხოლოდ იმას ხედავს, როგორ გამოიყურება იგი. პროდუქტების შედარებისას ეს ორი კითხვა ცალკე დაიტოვეთ, რადგან ერთი პასუხი არასოდეს გულისხმობს მეორეს.
შეარჩიეთ შესწორება წარუმატებელი ეტაპის მიხედვით
როცა რაღაც ფუჭდება, გაყავით წარუმატებლობის ეტაპები. დაკარგული მოწყობილობა, ნებართვის შეცდომა და უარყოფილი შესვლა სხვადასხვა მტკიცებულებასა და სხვადასხვა შესწორებას იძლევა. ჯერ ლოკალური მდგომარეობა წაიკითხეთ, შემდეგ თავად პროგრამის ჟურნალი, შემდეგ პარტნიორის ხედვა. სამივე წაიკითხეთ, სანამ რამეს შეცვლით.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'თუ მოწყობილობა არსებობს და პროცესი უჭირავს მას, ლოკალური საზღვარი მუშაობს და პრობლემა უფრო შორსაა. თუ მოწყობილობა არ არის, რწმუნებულების ნებისმიერი შემოწმება არ დაეხმარება. ეტაპი, რომელსაც შეგიძლიათ დაარქვათ სახელი, არის ეტაპი, რომლის გამოცდაც შეგიძლიათ. TUN/TAP-ის დოკუმენტაცია აღწერს საზღვარსა და მოწყობილობის მოდელს.