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

წყვეტს რიგი და არა წესის არსებობა

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

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

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

ჩასვით ფართო ნებართვის ზემოთ

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

sudo ufw --dry-run route insert 1 deny in on tun0 proto tcp from 10.88.0.55/32 to 192.0.2.88/32

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

ამ წესში დანიშნულების პორტი არ არის, ამიტომ ის უარყოფს ამ მისამართზე ყველა TCP პორტს და არა მხოლოდ HTTPS-ს. თუ განზრახვა ერთი სერვისია, დაასახელეთ პორტი; პოლიტიკაზე ფართო წესი მომავალი ინციდენტია, რომელიც თავის პირველ მკითხველს ელოდება.

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

დადგენილი ნაკადები გადაურჩებიან ახალ წესს

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

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

გახსოვდეთ საზღვრებიც. ეს წესი არაფერს ამბობს ICMP-ზე, UDP-ზე ან IPv6-ზე, ამიტომ წარმატებული ping არ არის უარყოფის ჩავარდნის მტკიცებულება. ერთი IPv4 მისამართი არც ვებსაიტია: სახელი შეიძლება რამდენიმე მისამართში გადაიქცეს, და დაფარულია მხოლოდ თქვენ მიერ დასახელებული.

გამოსცადეთ ახალი ნაკადით

წაიკითხეთ ნუმერირებული მომხმარებლის წესები და ეფექტური ნედლი ხედი, შემდეგ გახსენით ახალი კავშირი არჩეული კლიენტიდან:

sudo ufw status numbered
sudo ufw show raw
# from 10.88.0.55, a new TCP connection to 192.0.2.88 should fail

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

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

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

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