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

რას აკონტროლებს სახელის ფილტრი სინამდვილეში

address=/metrics.example/ პარამეტრი, ბოლო დახრილი ხაზის შემდეგ არაფრით, აიძულებს გადამწყვეტს ამ სახელისა და მისი ქვედომენებისთვის NXDOMAIN დააბრუნოს. მისამართის ცარიელი დატოვება მთავარი ნაწილია: ეს თავიდან გვაშორებს კლიენტების უკავშირო შემცვლელ სერვერზე გაგზავნას ან loopback მისამართის რეალურ დანიშნულებად წარმოჩენას. dnsmasq-ის სახელმძღვანელო ამ ფორმას უარყოფით პასუხად აღწერს და არა გადამისამართებად.

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

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

რით განსხვავდება კლიენტის მხარეს არსებული ბლოკერი

ბრაუზერის გაფართოება მოთხოვნას გასვლამდე ხედავს, ამიტომ შეუძლია URL-ის გზის შედარება, კონკრეტული მოთხოვნის გაუქმება და იმ ელემენტის დამალვა, რომელიც შედეგს აჩვენებდა. მას შეუძლია example.com/article-ის დაშვება და example.com/ads/-ის უარყოფა, რასაც ვერც ერთი DNS პასუხი ვერ გამოხატავს. გზის დონის ეს ხედვა სწორედ ის შესაძლებლობაა, რომელიც გადამწყვეტს უბრალოდ არ აქვს. ამიტომაც ერთი ხელსაწყოსთვის აგებული ფილტრის სია მეორეში იშვიათად იქცევა ისევე.

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

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

გადამწყვეტის გზა წყვეტს, მოქმედებს თუ არა რომელიმე ეს

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

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

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

შედეგის გამოცხადებამდე ორივე მიმართულება შეამოწმეთ

გამოიყენეთ განზრახ დაბლოკილი დოკუმენტაციის სახელი, ნებადართული საჯარო სახელი და სერვისისთვის საჭირო პირადი სახელი:

$ dig +short metrics.example @10.40.0.53
$ dig +short example.com @10.40.0.53
$ dig +short intranet.corp.internal @10.40.0.53

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

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

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