კლიენტის წყაროს პორტი და სერვერის მსმენელი VPN ნაკადში
შეადარეთ ორი პორტის ნომერი ერთ გვირაბში: სერვერის ფიქსირებული მსმენელი და კლიენტის ხანმოკლე წყარო, და როგორ დგას მათ შორის მარშრუტიზატორის თარგმანი.
ერთსა და იმავე საუბარში ორი რიცხვი ჩნდება და არც ერთი არ არის არასწორი. სერვერის ჟურნალი აჩვენებს მსმენელს, რომელიც სერვისს სთავაზობს, ლეპტოპი აჩვენებს სოკეტს, რომელმაც დატაგრამა გაგზავნა, ხოლო შუალედურ მარშრუტიზატორს შეუძლია მეორე გასვლისას გადაწეროს. საუბრის ბოლოების შედარება უფრო სასარგებლოა, ვიდრე ციფრების შედარება. ქვემოთ მოცემული შედარება მსმენელს, კლიენტის სოკეტს და თარგმნილ წყაროს ცალ-ცალკე ტოვებს, რადგან ისინი სხვადასხვა კითხვას პასუხობენ.
ორი რიცხვი, რომლებიც საპირისპირო ბოლოებს აღწერენ
სერვერის კონფიგურირებული პორტი ის დანიშნულებაა, სადაც კლიენტი ზარებს. მას პოლიტიკა აფიქსირებს, ის პროფილში ჩანს და სერვერის მხარეს ღია უნდა იყოს. კლიენტის წყაროს პორტი ლოკალურად ირჩევა, ჩვეულებრივ ხანმოკლე დიაპაზონიდან, და არსებობს იმისთვის, რომ პასუხს დაშვების ადგილი ჰქონდეს. ის შეიძლება შეიცვალოს ყოველ ხელახალ დაკავშირებაზე და დიზაინში არაფერია დამოკიდებული მის სტაბილურობაზე.
შუალედურ მარშრუტიზატორს შეუძლია ეს წყარო საკუთარ 'NAT' ასახვაში გადაწეროს. ამიტომ სერვერზე დაკვირვებულ რიცხვს ხშირად არანაირი კავშირი არ აქვს იმასთან, რომელიც ლეპტოპმა აირჩია.
სად იცვლება წყაროს ნომერი გასვლისას
აიღეთ გამოგონილი IPv4 მაგალითი: კლიენტი მთარგმნელი მარშრუტიზატორის უკან, სერვერი ერთი 'UDP' მსმენელით და ერთი დატაგრამა, რომელიც ორივეს კვეთს. ცხრილი ასახელებს თითოეულ ბოლოს და რა ხდება მასთან, ნაცვლად იმისა, რომ პაკეტი სამ დაკვირვების წერტილში გაიმეოროს.
| Endpoint | What stays fixed | What changes on reconnect | Who owns it |
|---|---|---|---|
| Server listener | The service port and the address the profile names | Nothing; the listener does not follow the client | The server operator |
| Client socket | The destination it dials | The local source port, chosen per socket | The client, or its operating system |
| Translated source | Usually the public address of the router | The port, and sometimes the address after a network switch | The NAT device or the upstream carrier |
დანიშნულება ყველა სტრიქონში მუდმივია და იცვლება მხოლოდ წყაროს იდენტობა. UDP NAT-ის მოთხოვნები განასხვავებენ შიდა მისამართსა და პორტს გარე ასახვისგან, და ეს ზუსტად მეორე და მესამე სტრიქონებს შორის სხვაობაა. მარშრუტიზატორს შეუძლია კლიენტის წყაროს პორტი შეინარჩუნოს ან სხვა აირჩიოს; შენარჩუნება არ არის ის, რაც აპლიკაციამ უნდა ჩათვალოს მოცემულად.
წაიკითხეთ სამი ბოლო თავად ჰოსტებიდან
ქვემოთ მოცემული სიები სამი სხვადასხვა მანქანიდან მოდის და ერთად მთელ საუბარს აჩვენებს. გაუშვით პირველი სერვერზე, მეორე კლიენტზე, ხოლო მესამე იქ, სადაც ასახვა არსებობს. ერთი ჟურნალის სტრიქონი არასოდეს აჩვენებს სამივეს.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
პირველი სია ამტკიცებს, რომ სერვერი სერვისის პორტზეა მიბმული და აჩვენებს, რომელი პროცესი ფლობს მას. მეორე აჩვენებს კლიენტის ლოკალურ სოკეტს და დანიშნულებას, სადაც მან დარეკა. მესამე აჩვენებს მარშრუტიზატორის მიერ შექმნილ ასახვას, და ეს არის ერთადერთი ადგილი, სადაც თარგმნილი წყარო ჩნდება. წაიკითხეთ ისინი ამ რიგით და ორი რიცხვი შეწყვეტს წინააღმდეგობრივად გამოჩენას.
რას ცვლის ხელახალი დაკავშირება და რას არა
ზოგი მარშრუტიზატორი კლიენტის წყაროს პორტს ინარჩუნებს, როცა ის თავისუფალია, ზოგი კი ყოველ ჯერზე სხვას ანაწილებს. ორივე ქცევა ნორმალურია და აპლიკაცია, რომელიც პირველს მოითხოვს, მეორეზე გატყდება. ასახვის შეცვლა ხელახალი დაკავშირების ან ქსელის შეცვლის შემდეგ სერვერის ხარვეზი არ არის: კლიენტი ახალ სოკეტს ხსნის, მარშრუტიზატორი გასცემს იმას, რაც აქვს, და სერვერი იმავე მსმენელზე ახალ წყაროს ხედავს. ხარვეზი იქნებოდა იმის მოლოდინი, რომ სერვერი თვითნებურ კლიენტის პორტზე მიმართულ ტრაფიკს მიიღებს.
საზოგადოების OpenVPN კლიენტები ამ ქცევას nobind საშუალებით იღებენ, რაც ოპერაციულ სისტემას აძლევს ლოკალური პორტის არჩევის უფლებას; დისტანციური პორტი კვლავ პროფილიდან მოდის. მკაფიოდ მიბმა განზრახ არჩევანია და არა პროტოკოლის მოთხოვნა. სერვერი ერთ ბოლოს კვლავ სთავაზობს, სანამ კლიენტები საკუთარ ლოკალურ იდენტობებს ირჩევენ.
მონიშნეთ ფენები ცალ-ცალკე ჩანაწერში
გვირაბის შიგნით მეორე საუბარია საკუთარი პორტებით. გვირაბის მიერ გადატანილ HTTPS მოთხოვნას დანიშნულება TCP 443 აქვს, ხოლო გარე დაშიფრული კავშირი იყენებს UDP 1194-ს, ამიტომ გარე წყაროს პორტის შეცვლა შიდა სერვისში არაფერს ცვლის.
გარე ფენაზეც კი პროტოკოლი მნიშვნელოვანია. UDP 1194 და TCP 1194 სხვადასხვა ბოლოა და 'TCP' მსმენელი არასოდეს მიიღებს UDP დატაგრამას მხოლოდ იმიტომ, რომ ნომერი ემთხვევა. განლაგების დოკუმენტირებისას მონიშნეთ სერვერის მსმენელი, კლიენტის სოკეტი და თარგმნილი წყარო სამ სხვადასხვა რამედ და თითოეულს დაამატეთ ტრანსპორტი.
შემდეგ დაე, პოლიტიკამ როლებს მიჰყვეს. სერვერი ხსნის განზრახ ტრანსპორტს თავის მსმენელზე და მაინც ამოწმებს პარტნიორს; კლიენტის firewall უშვებს პასუხებს საკუთარ გამავალ გაცვლაზე შემომავალი სერვისის გამოქვეყნების გარეშე. მდგომარეობის გარეშე ფილტრს დაბრუნების მიმართულება ცალსახად სჭირდება და ეს არის პრაქტიკული მიზეზი, თუ რატომ აქვს განსხვავებას მნიშვნელობა მოწესრიგებული დიაგრამების მიღმა.