უნდა გამოიყენოს თქვენმა OpenVPN კლიენტმა nobind თუ ფიქსირებული პორტი?
nobind საშუალებას აძლევს ბირთვს აირჩიოს წყაროს პორტი გარეთ დაკავშირებული კლიენტისთვის. სამი პირობა წყვეტს, გსურთ ეს, თუ ამის ნაცვლად დამაგრებული ლოკალური პორტი.
ორი პროფილი, რომლებიც ერთი ხაზით განსხვავდებიან, განსხვავებულად იქცევიან იმ მომენტში, როცა იმავე ჰოსტზე მეორე კლიენტი იწყება. ერთი ატარებს nobind და იღებს ნებისმიერ ლოკალურ პორტს, რომელსაც ბირთვი მისცემს; მეორე იტოვებს 1194-ს, და მეორე ინსტანცია იღუპება უკვე გამოყენებული მისამართით. ეს ხაზი წყვეტს, ვინ ირჩევს წყაროს პორტს, რაც თავის მხრივ წყვეტს, შეიძლება თუ არა პროფილი არსებობდეს მანქანაზე სხვა რამესთან ერთად. სამი კითხვა წყვეტს ამას, და პირველი პასუხობს პროფილების უმეტესობას, სანამ დანარჩენ ორამდე მიხვდებით.
რას გამოტოვებს nobind სინამდვილეში
ნაგულისხმევად კლიენტი ზარამდე აკავშირებს ლოკალურ სოკეტს, და ლოკალური პორტი 1194-ია, თუ პროფილი სხვას არ ამბობს. nobind აშორებს ამ დაცვას, ამიტომ სტეკი კავშირის დროს გამოუყენებელ პორტს ანიჭებს. ეს გამონაკლისია და არა ნაგულისხმევი, და ხაზის გარეშე კლიენტი 1194-ს ინახავს, სწორედ ამიტომ ეჯახება დაუმაგრებელი მეორე ინსტანცია. მიწოდებული კლიენტური პროფილების უმეტესობა ამ მიზეზით ატარებს ამ მითითებას, და ის, რომ ნიმუშის ფაილი რაღაცას აკეთებს, არ ნიშნავს, რომ მექანიზმი ამას ნაგულისხმევად აკეთებს.
რაც არ იცვლება, შორეული მხარეა. სერვერი კვლავ იქ უსმენს, სადაც პროფილი ამბობს, რომ უსმენს, და კონფიგურაციაში დანიშნულების პორტი კვლავ დანიშნულების პორტია. დინამიკური წყაროს პორტი ცვლის თქვენივე სოკეტის დაბრუნების მისამართს და არაფერს სერვერისაზე.
ის არაფერს მალავს. თქვენი საჯარო მისამართი არის ის, რაც გზამ მასში გარდაქმნა, პაკეტი კვლავ გადის ლოკალურ ქსელს, და ვინც ამ ქსელს მართავს, კვლავ ხედავს დინებას. nobind არც კონფიდენციალურობის თვისებაა და არც ფაირვოლის გვერდის ავლა.
სამი პირობა, რომლებიც ამას წყვეტს
ერთი კითხვა წყვეტს დანარჩენ ორს, ამიტომ უპასუხეთ მას, სანამ რამეს შეასწორებთ. თუ პარტნიორი გარეთ უკავშირდება, დანარჩენი კითხვები მხოლოდ უკვე მიღებულ გადაწყვეტილებას აზუსტებს. თუ ის შიდა კავშირებს იღებს, ლოკალური პორტის არც ერთი კორექტირება მას ხელმისაწვდომს არ გახდის.
ეს პარტნიორი იწყებს კავშირს? თუ გარეთ უკავშირდება, დინამიკური წყაროს პორტი უვნებელია და ჩვეულებრივ სასურველი, რადგან პასუხი იმავე დინებით ბრუნდება. თუ შიდა კავშირებს ელოდება, დინამიკური პორტი მას მიუწვდომელს ხდის, თუ წინ რაღაც პორტს არ გამოაქვეყნებს. ეს ერთი პასუხი ყოფს ყველა კლიენტურ პროფილს ყველა სერვერულისაგან.
გზა წყაროს პორტით ფილტრავს? ერთი ცნობილი პორტისთვის დაწერილი მკაცრი წესი მოითხოვს აშკარა ლოკალურ პორტს, და პროფილმა უნდა ჩაწეროს, რომელ წესს აკმაყოფილებს. ქსელების უმეტესობა მხოლოდ დანიშნულებით ფილტრავს, ამიტომ ეს პირობა პირველზე იშვიათია. სადაც ვრცელდება, ის დინამიკური პორტის უპირატესობას აღემატება.
რამდენიმე ინსტანცია იზიარებს ჰოსტს? ერთი ფიქსირებული პორტი ვერ მოემსახურება ორ მათგანს, და გადატვირთული ინსტანცია შეიძლება 1194 ჯერ კიდევ დახურვის მდგომარეობაში იპოვოს. დინამიკური პორტები ამ კონფლიქტს სხვა არაფრის შეცვლის გარეშე აშორებს. თუ ამას დარწმუნებით ვერ უპასუხებთ, ჩათვალეთ რომ კი და მიეცით ბირთვს არჩევის საშუალება.
სად არის დამაგრებული პორტი სწორი პასუხი
ზოგიერთი ქსელი წყაროს პორტითაც და დანიშნულებითაც ფილტრავს, ამიტომ ოპერატორმა შეიძლება დაწეროს წესი, რომელიც მხოლოდ ერთი ცნობილი პორტიდან ტრაფიკს გაატარებს. ლოკალური პორტის დამაგრება მაშინ სწორია, და პროფილმა უნდა ატაროს კომენტარი, რომელიც ასახელებს შესრულებულ წესს. დამაგრება სერვერის პორტთან სიმეტრიისთვის არ არის მიზეზი, რადგან ამ ორ რიცხვს ერთმანეთთან არაფერი აქვს საერთო. თუ დამაგრება მხოლოდ იმიტომ არსებობს, რომ შაბლონში იყო, წაშალეთ იგი.
სხვაგვარად დამაგრებული პორტი უბედურებას ყიდულობს: ერთ მანქანაზე ორი კლიენტი ვერ ინახავს ორივე 1194-ს, და მეორე მარცხდება შეცდომით, რომელიც პორტს მიუთითებს და არა პროფილს. სწრაფად გადატვირთული კონტეინერი იმავე კედელს ეჯახება. შეკეთება ის მითითებაა, რომელიც მიწოდებულ პროფილებს უკვე ჰქონდა.
სერვერი და კლიენტი სიმეტრიული არ არის
OpenVPN 2.6-ის სახელმძღვანელო ათავსებს nobind გვერდით lport, რაც ერთ ხაზში არგუმენტია: ერთი ვარიანტი ამბობს, რომ ბირთვი ირჩევს, მეორე — რომ თქვენ ირჩევთ. დინამიკური ლოკალური პორტი მხოლოდ გარეთ დაკავშირებული პარტნიორისთვის მუშაობს, რადგან პასუხისმგებელი მხარე პორტს წინასწარ ვერ გაიგებს. ამიტომ კლიენტური პროფილის სერვერზე კოპირება ქმნის მსმენელს, რომელსაც ვერავინ მიაღწევს.
რამდენიმე ქსელური ინტერფეისის მქონე ჰოსტზე მისამართი პორტისგან დამოუკიდებელი გადაწყვეტილებაა. კონკრეტული ლოკალური მისამართის მიბმა და კონკრეტული პორტის მიბმა ორი განსხვავებული პარამეტრია, და ორი ზედა კავშირის მქონე სერვერი ჩვეულებრივ ორივეს ამაგრებს. კლიენტი, რომელიც ორივეს ამაგრებს, იმავე სიხისტე აიღო ყოველგვარი სარგებლის გარეშე.
შეჯამება როლებზეა და არა უსაფრთხოებაზე: ვინც გარეთ უკავშირდება, შეიძლება მოქნილი იყოს საკუთარი წყაროს მიმართ, და ვინც პასუხობს, ვერ იქნება. არც ერთი არჩევანი არ ცვლის იმას, რასაც მეორე მხარე თქვენს იდენტობაზე შეიტყობს. ამიტომ ჩნდება მითითება კლიენტურ ნიმუშებში და თითქმის არასდროს სერვერულებში.
შეამოწმეთ ბირთვის მიერ არჩეული პორტი
დაკავშირების შემდეგ წაიკითხეთ სოკეტი და არა კონფიგურაცია, რადგან კონფიგურაცია განზრახვას აცხადებს, სოკეტი კი იმას, რაც მოხდა. ჩასაწერი ფაქტებია ლოკალური პორტი, შორეული ბოლო წერტილი და ის, უსმენს თუ არა ჯერ კიდევ რამე. Linux ჰოსტზე სამივე ერთი ბრძანების მანძილზეა.
ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn
თუ კლიენტი nobind გამოიყენებს, ის აჩვენებს მაღალ ლოკალურ პორტს და კონფიგურირებულ შორეულ პორტს, რაც მოსალოდნელი ფორმაა. სერვერი აჩვენებს მსმენ სოკეტს თავის კონფიგურირებულ პორტზე, და თუ ეს სოკეტი აკლია, პროფილი ან მსმენი არ არის, ან ვერ შეძლო მიბმა. როცა დინება არსებობს, მაგრამ პაკეტები არ ბრუნდება, შეადარეთ არჩეული წყაროს პორტი გზის ნებისმიერ პორტის ფილტრს პროფილის რედაქტირებამდე. შეცვალეთ ერთი რამ, ხელახლა დაუკავშირდით და ხელახლა წაიკითხეთ სოკეტი.