ქსელური ფარის ჟურნალში არის ერთი სტრიქონი, რომელსაც არ ელოდებოდით: ACK პაკეტი, conntrack-ის მდგომარეობა NEW, წყაროს მისამართი, რომელიც თქვენი არ არის, დანიშნულების პორტი ღიაა. ცდუნება ისაა, რომ ეს წაიკითხოთ როგორც ახალი შემომავალი კავშირი, რომელიც არავის დაუშვია. სინამდვილეში სტრიქონი უფრო ვიწრო რამეს ამბობს: როცა ის პაკეტი ამ hook-ს მიაღწია, ტრეკერს შესაბამისი მდგომარეობა არ ჰქონდა და პაკეტს ACK მიჰქონდა. ეს ორი ფაქტია ორ სხვადასხვა რამეზე და არც ერთი მათგანი არ არის ხელის ჩამორთმევის სრული ჩანაწერი. ეს არის ის თანმიმდევრობა, რომელსაც გავდივარ დასკვნამდე მისვლამდე.

დაიწყეთ პაკეტით და არა განაჩენით

გამოაცალკევეთ დაკვირვებები სანამ განმარტავთ. TCP დროშები აღწერს ამ პაკეტს, ტრეკერის მდგომარეობა აღწერს რა იცოდა მან ამ hook-ზე, ხოლო თქვენი ჩანაწერი მხოლოდ იმ ფანჯარას აღწერს, რომელიც ჩაწერეთ.

ამ სამის შერევა არის ის გზა, რომლითაც ACK იქცევა „პროვაიდერმა ვინმე შემოუშვა“-დ.

რას ნიშნავს NEW სინამდვილეში hook-ზე

iptables-ის conntrack შესაბამისობა ადასტურებს NEW-ს როგორც პაკეტს, რომელიც იწყებს კავშირს, ან როგორც კავშირთან დაკავშირებულ პაკეტს, რომელსაც ჯერ არ უნახავს ტრაფიკი ორივე მიმართულებით. ESTABLISHED ნიშნავს, რომ ტრეკერმა პაკეტები ორივე მიმართულებით ნახა. არც ერთი განსაზღვრება არ ამბობს, რომ პაკეტი SYN იყო, და არც იმას, რომ ის ისტორიის გარეშე მოვიდა.

ტრეკერი, რომელიც იწყებს ნაკადის შუიდან დაკვირვებას, მომდევნო პაკეტს აკლასიფიცირებს იმის მიხედვით, რაც იცის და ეს შეიძლება არაფერი იყოს. ეს ნათქვამია ტრეკერის მეხსიერებაზე და არა დაშორებული ჰოსტის განზრახვაზე.

ფხვიერი თვალთვალი ხსნის ACK-ის უმეტეს სიურპრიზებს

ბირთვი აღრიცხავს nf_conntrack_tcp_loose, რაც ტრეკერს საშუალებას აძლევს აიღოს TCP კავშირები, რომელთა დასაწყისი მან არ ნახა. პარამეტრის ნაგულისხმევი მნიშვნელობით, ნაკადის შუიდან მოსული ACK შეიძლება მიღებულ იქნას როგორც დამკვიდრებული ნაკადი. გამორთეთ ის და იგივე პაკეტი უფრო სავარაუდოდ INVALID-ად კლასიფიცირდება და არა NEW-ად. ორივე შედეგი აღწერს ტრეკერის წესებს და არა აპლიკაციის ისტორიას.

ამიტომ შეამოწმეთ ეს პარამეტრი სანამ ეტიკეტზე თეორიას ააშენებთ.

გამორიცხეთ მოსაწყენი მიზეზები ამ თანმიმდევრობით

NEW-on-ACK მოვლენების უმეტესობა, რომელთაც ვადევნე თვალი, ერთ-ერთი ამით დასრულდა და ყველა მათგანი იაფად საშემოწმებელია:

  • conntrack-ის ცხრილი გასუფთავდა, ან ტრეკერი ხელახლა გაეშვა.
  • ჰოსტი გადაიტვირთა, ან ნაკადი სხვა namespace-ში ან მოწყობილობაზე გადავიდა.
  • ასიმეტრიულმა მარშრუტიზაციამ SYN გაიტანა გზაზე, რომელსაც არ იწერთ.
  • NAT-მა tuple გადაწერა, ამიტომ ჩანაწერი აღარ ემთხვევა იმას, რაც წაიკითხეთ.
  • ჩაწერა გვიან დაიწყო და დასაწყისი ვერასოდეს ნახა.

თითოეული მათგანი აშორებს ადრინდელ პაკეტებს ტრეკერის ხედიდან და გვიანდელს ხელუხლებლად ტოვებს. გადატვირთვა ან ცხრილის გასუფთავება ყველაზე ადვილი დასადასტურებელია uptime-იდან და ჟურნალებიდან. ასიმეტრიული მარშრუტიზაცია ჩანს როგორც ცალმხრივი ჩაწერა. NAT მზაკვარია, რადგან ტრეკერის შენახული tuple არ არის ის tuple, რომელიც ჟურნალშია დაბეჭდილი.

ჩამოწერეთ, რომელი მათგანი გამორიცხეთ და როგორ, სანამ გააგრძელებთ.

წაიკითხეთ tuple, ინტერფეისი და hook

conntrack-ის ჩანაწერი გასაღებდება მისამართებით, პორტებით და პროტოკოლით, ამიტომ ნებისმიერი თარგმანი ცვლის, რომელი ჩანაწერი ემთხვევა. ჩაწერეთ ასევე ინტერფეისი და hook, რადგან არასწორ ინტერფეისზე ან სხვა ჯაჭვის შემდეგ ნანახი პაკეტი გეუბნებათ, რომ გზა არ არის ის, რაც დიაგრამაზეა. როცა მოვლენა VPN-ს ეხება, გადაწყვიტეთ, შიდა პაკეტს უყურებთ თუ გარე გადამტანს. შემდეგ შეადარეთ იმას, რაც კარიბჭემ იმავე ხუთნაწილიან tuple-ზე ჩაწერა.

ერთი ნაკადის ორი ურთიერთსაწინააღმდეგო ხედი უფრო ინფორმატიულია, ვიდრე რომელიმე მათგანი ცალკე.

როდის ღირს ესკალაცია

მაშინ მოახდინეთ ესკალაცია, როცა შეგიძლიათ აჩვენოთ მისაწვდომი სერვისი, რომელიც არ უნდა იყოს მისაწვდომი, ნაკადთან, მისი დაშვების წესთან და ორივე მხრიდან მტკიცებულებებთან ერთად. ნუ მოახსენებთ პროვაიდერის ხარვეზს ერთი მდგომარეობის ეტიკეტის ან ერთი ნაწილობრივი ჩანაწერის საფუძველზე, რადგან ეს მოხსენება დაიხურება იმავე განმარტებით, რომელიც ახლახან წაიკითხეთ. თუ სერვისი ნამდვილად ღიაა, ამ საზღვრის მფლობელია სწორი ადამიანი მის გამოსასწორებლად, და ბაგზე უფრო სავარაუდო მიზეზია დელეგირებული პორტის რუკა ან განზრახ არჩეული მსმენელი.

შემდეგ დახურეთ ის ხილვადობის ხარვეზი, რომელმაც ერთ პაკეტს მთელი სესიის სახე მისცა.

დაკავშირებული სტატიები