ორი VPN ნახტომი ზედიზედ: ვინ ხედავს სინამდვილეში თქვენს ტრაფიკს?
თანმიმდევრული ნახტომები გაშიფრავს და ხელახლა შიფრავს პირველ კარიბჭეზე; ჩადგმული ნახტომები მხოლოდ გარე ფენას აშორებს. გაიარეთ ორივე დიზაინი და ნახეთ, რომელი ოპერატორი რას კითხულობს.
ყოველი კლიენტის პროფილი ერთ სერვერს ასახელებს, ამიტომ მომხმარებლის ადგილიდან ერთი გვირაბი და ერთი ადგილია, სადაც დაცვა მთავრდება. რა ხდება იმ პირველი კარიბჭის შემდეგ, ეს დიზაინის გადაწყვეტილებაა, რომელსაც კლიენტი არასოდეს ხედავს, და ორი გავრცელებული დიზაინი შემოწმებისას ძალიან განსხვავებულად იქცევა. თანმიმდევრულ ჯაჭვში პირველი კარიბჭე გაშიფრავს და ხელახლა შიფრავს. ჩადგმულ ჯაჭვში ის აშორებს გარე ფენას და გადასცემს შიდა გვირაბს, რომლის გახსნაც არ შეუძლია. ნახტომების რაოდენობა ორივეში ერთნაირია, ამიტომ განსხვავება უნდა დავხატოთ და არა დავთვალოთ.
დაიწყეთ კლიენტიდან და დაასახელეთ ორივე ბოლო
დაიწყეთ იქ, სადაც მომხმარებელი იწყებს, კავშირის პროფილში. მას აქვს ერთი დისტანციური მისამართი, ერთი ავთენტიფიკაციის მეთოდი და, როცა დიზაინი მხარს უჭერს, მარშრუტების სია. მონიშნეთ ის გარე გვირაბი კლიენტიდან A კარიბჭემდე და მიეცით მაგალითური მისამართები: კლიენტის გვირაბის მისამართი 10.77.0.2, A-ს 10.77.0.1 და A-ს საჯარო ბოლო წერტილი 198.51.100.10, აღებული TEST-NET-2 დოკუმენტაციის დიაპაზონიდან, რათა მაგალითში არაფერი შეეჯახოს რეალურ ჰოსტს.
ამ პროფილში არაფერი ახსენებს B კარიბჭეს და ეს ნაკლი არ არის. მეორე ნახტომი A-ს ეკუთვნის, და კლიენტის ერთადერთი ვალდებულება ტრაფიკის A-მდე მიტანა და დაბრუნებულის მიღებაა. A ამთავრებს გვირაბს, გადასცემს თუ ახალს ხსნის — ეს ის კითხვაა, რომელსაც ამ მიმოხილვის დარჩენილი ნაწილი პასუხობს, და სწორედ ეს განსაზღვრავს, რისი წაკითხვა შეუძლია A-ს.
თანმიმდევრული: A გაშიფრავს, შემდეგ ხელახლა შიფრავს
თანმიმდევრულ დიზაინში A ტრაფიკს ორჯერ ამთავრებს. ის აშორებს დაცვას კლიენტისგან, იღებს აპლიკაციის IP პაკეტს და შემდეგ ამ პაკეტს აგზავნის მეორე გვირაბით, რომელსაც A B-ისკენ ქმნის. ამ ორ ოპერაციას შორის პაკეტი A-ს გადაცემის გზაზე ზის, როგორც ჩვეულებრივი IP პაკეტი, მიმართული კერძო დანიშნულებისკენ.
ეს ორ შედეგს იძლევა, რომელთა პირდაპირ თქმაც ღირს. A შეუძლია შიდა პაკეტზე პოლიტიკის გამოყენება მარშრუტების, ფილტრის წესების და წყაროსა და დანიშნულების ჟურნალირების სახით, და A უნდა ინახავდეს ორ კომპლექტ საიდენტიფიკაციო მონაცემს: ერთს სერვერად კლიენტისთვის და ერთს B-ის კლიენტად. დაცვა ყოველ წამს არსებობს, მაგრამ დაცული ობიექტი A-სთან იდენტობას იცვლის.
აქედან არ გამომდინარეობს, რომ A აპლიკაციის ღია ტექსტს კითხულობს. როცა კლიენტი და სერვისი TLS-ს უშვებენ და ერთმანეთის სერტიფიკატებს ამოწმებენ, A ხედავს TLS ჩანაწერების ნაკადს და არა წაკითხვად მოთხოვნას. იმის დასადგენად, სად მთავრდება ეს დაცვა, სჭირდება სერვისის სერტიფიკატების ჯაჭვის ნახვა და არა გვირაბის სქემის.
ჩადგმული: A მხოლოდ გარე ფენას აშორებს
ჩადგმულ დიზაინში კლიენტი ჯერ შიდა გვირაბს აშენებს B-ისკენ და შემდეგ ამ გვირაბს გარე გვირაბის შიგნით მიაქვს A-მდე. A აშორებს გარე თავსართს, პოულობს შიდა გვირაბს და გადასცემს მას გასაღებების შენახვის გარეშე, ამიტომ შიდა დაცვა კვლავ B-სთან მთავრდება.
მაშინ კლიენტის ზედა არხი ორ ფენას ატარებს, ხოლო A-სა და B-ს შორის გზა ერთს. A ხედავს შიდა გვირაბის გარე მისამართებს, რაც საკმარისია იმის გასაგებად, რომ ტრაფიკი არსებობს და დაახლოებით საით მიდის, და არ არის საკმარისი ტვირთის წასაკითხად. ეს არის მთელი განსხვავება თანმიმდევრული შემთხვევისგან და ვერც ერთი ნახტომის მთვლელი ვერ აჩვენებს მას. რაც A-ს ჯერ კიდევ შეუძლია, არის უარი თქვას იმის გადაცემაზე, რისი წაკითხვაც არ შეუძლია, და ეს ყოველთვის ხელმისაწვდომია იმ კარიბჭის ოპერატორისთვის.
ჩადგმა ამ თვისებისთვის იხდის. ყოველი ფენა თავსართის დანახარჯს ამატებს, ამიტომ MTU-სა და MSS-ის დაგეგმვა აუცილებელი ხდება და არა უბრალოდ მოწესრიგებული, და გზა, რომელიც ერთ ფენაზე მუშაობს, ორზე შეიძლება ჩუმად დაკარგოს დიდი პაკეტები. ყოველ ფენას თავისი ხელახალი დაკავშირებისა და ცოცხლად შენახვის ქცევა სჭირდება, და ერთ ფენაში ჩავარდნა მეორის გავლით ნაწილობრივ შეწყვეტად გამოიყურება.
დახაზეთ დამკვირვებლები და არა მხოლოდ გვირაბები
გვირაბები ნახატის მარტივი ნაწილია. დამკვირვებლები არიან დიზაინის არსი, ამიტომ დაწერეთ ერთი სტრიქონი თითოეული ხედვის წერტილისთვის და შეავსეთ, თუ რისი წაკითხვა შეუძლია თითოეულს სინამდვილეში.
| Vantage point | Serial chain | Nested chain |
|---|---|---|
| Client's access network | Outer tunnel only | Outer tunnel only |
| Operator of A | Inner IP packet between A and B | Outer addresses of the inner tunnel, not its payload |
| Path between A and B | Second tunnel | Second tunnel |
| Operator of B | Inner packet re-originated by A | Payload after the inner layer is removed |
| Service edge | Traffic from the exit address | Traffic from the exit address |
ორი სტრიქონი მუდმივად ერევა ერთმანეთს: A-ს ოპერატორი და კლიენტის გვირაბის მომწოდებელი. ისინი შეიძლება ერთი სუბიექტი იყოს, და ცალკე კარიბჭის სახელები მათ დამოუკიდებელს არ ხდის. დამოუკიდებელ მფლობელობას სჭირდება ცალკე ადმინისტრაციული კონტროლი, ცალკე საიდენტიფიკაციო მონაცემები და ცალკე ჟურნალირება.
მეტამონაცემები ორივე დიზაინში გადარჩება. დრო, პაკეტის ზომები და კავშირების რაოდენობა დაკვირვებადი რჩება ყოველ ნახტომზე, ამიტომ ორი ნახტომი სიგნალის მოცილების ნაცვლად კორელაციის ღირებულებას ზრდის. დიზაინი, რომელიც უხილავობას გვპირდება, ამ სიას უნდა შევადაროთ სანამ ვინმე მას დაეყრდნობა.
გაიარეთ წარუმატებლობის გზები, სანამ აირჩევთ
გაამტვრიეთ ნივთები განზრახ კლიენტის მხრიდან, იმ თანმიმდევრობით, რომლითაც მომხმარებელი შეხვდება მათ. დაიწყეთ ინტერფეისითა და მისი MTU-ით, რადგან ჩადგმა პაკეტის ზომაზე ბევრად უფრო ადრე ვარდება, ვიდრე ავთენტიფიკაციაზე.
ip -4 addr show dev tun0
ip link show dev tun0 | grep mtu
ping -M do -s 1380 -c 2 10.77.1.1
შემდეგ დაადასტურეთ დაცვის ბოლო წერტილები და ნუ ჩათვლით მათ თავისთავად. სთხოვეთ სერვისს მისი სერტიფიკატი ნებისმიერი აქტიური გვირაბის შიგნიდან და შეადარეთ კლიენტის მიერ დანახული ჯაჭვი იმ ჯაჭვს, რომელსაც სერვისი რეალურად წარმოადგენს. კარიბჭე, რომელიც ხელახლა ხელს აწერს ან ჩარევს, ცვლის ამ სერტიფიკატს, და შემოწმება ერთი ბრძანებით ხილული ხდება.
openssl s_client -connect intranet.example.com:443 -brief < /dev/null
დაასრულეთ ხელახალი დაკავშირების მატრიცით: კლიენტის გვირაბი ვარდება, B-ის გვირაბი ვარდება, A-სა და B-ს შორის გზა იცვლება. ჩაინიშნეთ რა ბრუნდება და რა არა, და ხომ არ ვარდება შიდა კავშირი ოდესმე მისი განკუთვნილი გადამზიდის გარეთ არსებულ მარშრუტზე. ჩაწერეთ მისამართები, რომლებიც გამოიყენა ყოველმა გამოცდამ, რადგან სხვა წვდომის ქსელში გამეორება სხვა კითხვას პასუხობს. გაიმეორეთ MTU-ის შემოწმებაც ყოველი ხელახალი დაკავშირების შემდეგ, რადგან შეცვლილმა გზამ შეიძლება გამოსაყენებელი ზომა შეამციროს ერთი კონფიგურაციის სტრიქონის გაუნძრევლად.
აირჩიეთ თანმიმდევრული, როცა A-მ შიდა პაკეტზე პოლიტიკა უნდა გამოიყენოს, ან როცა კლიენტს ორი დაწყობილი გვირაბის გაშვება არ შეუძლია. აირჩიეთ ჩადგმა, როცა შიდა ტვირთი A-სთან წაუკითხავი უნდა დარჩეს. ჩაწერეთ არჩევანი მისი დამკვირვებლებითა და MTU რიცხვებით, და შემდეგ ადამიანს ერთ კითხვაზე პასუხის გასაცემად მთელი სურათის ხელახლა დახატვა არ მოუწევს.